Цитата |
---|
RapidHunter пишет: У товара имеется свойство "Вес", которое задается в 1С. Необходимо сделать, чтобы при переносе из 1С значение этого свойства передавалось в поля "Вес" всех торговых предложений этого товара.
Написал такой код для init.php:
Код |
---|
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "SyncWeight");
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "SyncWeight");
function SyncWeight(&$arFields) {
CModule::IncludeModule('iblock');
CModule::IncludeModule('catalog');
$weight = CIBlockPropertyEnum::GetByID( $arFields["PROPERTY_VALUES"][196][0]["VALUE"] );
$weight = $weight["VALUE"];
$arSelect = Array();
$arFilter = Array("IBLOCK_ID"=>13, "PROPERTY_CML2_LINK"=>$arFields['ID']);
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $res->GetNext())
CCatalogProduct::Update($ob["ID"], Array("WEIGHT"=>$weight));
}
|
Код работает при добавлении/редактировании товара вручную, но не работает при обмене с 1С. Выходит, что события OnAfterIBlockElementAdd и OnAfterIBlockElementUpdate вообще не вызываются, если данные редактируются средствами импорта из 1С? Или проблема в чем-то другом? Кто знает, прошу помочь. |
При синхронизации с 1С не работают события "Торгового каталога"