Добрый день. Интегрировал 1с управление торговлей 11 и малый бизнес. В общем задача следующая:
- При экспорте товаров из 1с УТ мне нужно чтобы из торговых предложений бралась максимальная цена и записывалась в базовую цену. Написал такой скрипт:
Этот скрипт работает, но когда я добавляю его в init.php - перестаёт работать. Вполне вероятно, что где то я путаю там объявление AddEventHandler. Подскажите как решить данную задачу. Повторюсь - скрипт должен выполняться тогда, когда я делаю экспорт из 1с. Требуется решить именно эту задачу. Другие методы не подходят к сожалению. Буду очень благодарен за помощь!
- При экспорте товаров из 1с УТ мне нужно чтобы из торговых предложений бралась максимальная цена и записывалась в базовую цену. Написал такой скрипт:
Код |
---|
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "OnBeforeIBlockElementAddHandler"); // Для init.php AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnBeforeIBlockElementAddHandler"); // Для init.php AddEventHandler("catalog", "OnBeforePriceUpdate", "OnBeforeIBlockElementAddHandler"); // Для init.php AddEventHandler("catalog", "OnBeforePriceAdd", "OnBeforeIBlockElementAddHandler"); // Для init.php function OnBeforeIBlockElementAddHandler(&$arFields) { $arSelect5 = Array("ID", "NAME", "PROPERTY_CML2_LINK"); $res5 = CIBlockElement::GetList(Array(), Array("IBLOCK_ID" => 8), false, false, $arSelect5); while($ob5 = $res5->GetNextElement()) { $arFields5 = $ob5->GetFields(); $rsPrices = CPrice::GetList(array(), array('PRODUCT_ID' => $arFields5['ID'], 'CATALOG_GROUP_ID' => 1)); if ($arPrice = $rsPrices->Fetch()) { $price = CurrencyFormat($arPrice["PRICE"], $arPrice["CURRENCY"]); $exit_price[$arFields5["PROPERTY_CML2_LINK_VALUE"]][] = $arPrice["PRICE"]; } } foreach($exit_price as $key_price => $val_price){ $min = min($val_price); $update_main_product[$key_price] = $min; } foreach($update_main_product as $item_k => $item_v){ $PRODUCT_ID = $item_k; $PRICE_TYPE_ID = 1; $arFields = Array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID, "PRICE" => $item_v, "CURRENCY" => "RUB" ); $res = CPrice::GetList( array(), array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID ) ); if ($arr = $res->Fetch()) { CPrice::Update($arr["ID"], $arFields); } else { CPrice::Add($arFields); } } |