анонс товара заносить значения свойств элемента при импорте товара из 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 - т.е. данными, пришедшими на вход обработчика.
Обсуждают сегодня