анонс товара заносить значения свойств элемента при импорте товара из 1с. Пытаюсь вывести хотя бы одно свойство. У свойства тип список, не множественное.
                  
                  
                  
                  
                  
                  Мой код работает крайне странно и рандомно. У каких то элементов анонс заносится правильно, в соответствии со значением свойства, у каких то нет. Но значение свойства заносятся всем элементам импорта - и парадокс в том, что иногда заносятся в анонс даже такие значения свойств, которых даже нет в файле импорта, но они заведены на сайте. Т.е. происходит какой-то лютый рандом.
                  
                  
                  Код:
                  
                  
                  <?
                  
                  
                  AddEventHandler("iblock", "OnStartIBlockElementUpdate", Array("AHandlers", "ChangeElementName1CImport"));
                  
                  
                  AddEventHandler("iblock", "OnStartIBlockElementAdd", Array("AHandlers", "ChangeElementName1CImport"));
                  
                  
                  class AHandlers {
                  
                  
                     function ChangeElementName1CImport(&$arFields) {        
                  
                  
                        
                  
                  
                     $arSelect = Array("ID", "IBLOCK_ID", "NAME", "PROPERTY_SVOISTVO");
                  
                  
                  $arFilter = Array("IBLOCK_ID"=>16, "ACTIVE"=>"Y");
                  
                  
                  $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
                  
                  
                  while($ob = $res->Fetch())
                  
                  
                  {
                  
                  
                      $PROPERTY_VALUE = $ob['PROPERTY_SVOISTVO_VALUE'];  // значение свойства
                  
                  
                  $arFields['PREVIEW_TEXT'] = $PROPERTY_VALUE;      
                  
                  
                  }
                  
                  
                        }
                  
                  
                     }
                  
                  
                  ?>
                  
                  
                
Подскажите пожалуйста, где ошибка?
Почему же рандом-то? Происходит ровно то, что вы запрограммировали. Ваш код звучит так: выбрать из БАЗЫ значение свойства для первого попавшегося элемента и записать в превью обрабатываемого. Если вы свойство хотите копировать в превью - работайте только с $arFields - т.е. данными, пришедшими на вход обработчика.
Обсуждают сегодня