О лишних запросах
Совершенство достигается не тогда, когда уже нечего прибавить, но когда уже ничего нельзя отнять  Антуан де Сент-Экзюпери Оптимизация процесса интеграции 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');          ...