Сообщения

Сообщения за 2013

Себе на память - редактирование пользовательского свойства заказа в событии перед изменением заказа (Битрикс)

Запишу, чтобы не забыть, потому что долго искала: Стояла задача сохранить в отдельное пользовательское свойство заказа идентификатор того пользователя (принадлежащего группам 1 или 6), который самым первым отредактировал данный заказ (кто первый взял заказ в работу - тот до конца его и ведет). public static function OnBeforeOrderUpdateHandler($ID, $arFields) { global $USER; $arGroups = $USER->GetUserGroupArray(); if (in_array(6,$arGroups) || in_array(1,$arGroups)){ $db_vals = CSaleOrderPropsValue::GetList(array("SORT" => "ASC"), array("ORDER_ID" => $ID, "CODE"=>"F_MENEDGER"));   $order_props=array(); if ($arVals = $db_vals->Fetch()){ $order_props=$arVals; }  if (!$order_props['VALUE']) { if ($arProp = CSaleOrderProps::GetByID(10)) { CSaleOrderPropsValue::Add(array( 'ORDER_ID' => $ID, 'ORDER_PROPS_ID' => $arProp['ID&

О лишних запросах

Совершенство достигается не тогда, когда уже нечего прибавить, но когда уже ничего нельзя отнять Антуан де Сент-Экзюпери Оптимизация процесса интеграции 1С Предприятия и 1С Битрикс – это неисчерпаемая тема.  Чего только не увидишь порой в обработчиках событий добавления и обновления элемента инфоблока. Больше всего меня убивает, когда я вижу, что разработчики тянут из базы то, что у них и так уже есть. Пример из жизни (нет, серьезно – это реальный пример): AddEventHandler("iblock", "OnAfterIBlockElementAdd", "BXMUpdateElement_FIELDS"); function BXMUpdateElement_FIELDS(&$arFields) {          $ibe = new CIBlockElement();          $dbr = $ibe->GetList(array(), array('ID'=>$arFields['ID']) );     while($oe = $dbr->GetNextElement())     {         $arP = $oe->GetProperty('CML2_TRAITS');           } …         } А то, что нужно – уже передано в обработчик в $arFields['PROPERTY_VALUES'][92] Зачем

Git обновить текущую ветку из master

Если разработка велась в ветке, и за время этой разработки ветка master сильно изменилась, лучше не вливать ветку сразу в мастер, а сначала влить мастер в ветку – чтобы предварительно протестировать. Для этого нужно переключиться на ту ветку, в которую мы будем вливать мастер, а затем выполнить команду git pull origin master Cкорее всего, после этого возникнут конфликты – гит скажет об этом. Чтобы просмотреть все файлы, в которых произошли конфликты, нужно выполнить команду git status После разрешения конфликтов, нужно сделать коммит, а потом снова выполнить git pull origin master Таким же образом можно периодически вливать в ветку новые изменения из мастера, если нужно, чтобы ветка не сильно «отошла» от основной версии проекта.

Динамическое добавление полей формы на JQuery

<div id="div_inputs"> </div> <script>    var col_inputs=1;                                                   function AddInput(){    $('<label>Метка:</label><input id="inp'+col_inputs+'" type="text" name="name['+col_inputs+']" value="" /><br>').appendTo("#div_inputs");    col_inputs++;    return true;    } </script>   <input type="button" value="Добавить" onclick="AddInput()">