Добрый день. Интегрировал 1с управление торговлей 11 и малый бизнес. В общем задача следующая:
- При экспорте товаров из 1с УТ мне нужно чтобы из торговых предложений бралась максимальная цена и записывалась в базовую цену. Написал такой скрипт:
[CODE]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);
}
}
[/CODE]Этот скрипт работает, но когда я добавляю его в init.php - перестаёт работать. Вполне вероятно, что где то я путаю там объявление AddEventHandler. Подскажите как решить данную задачу. Повторюсь - скрипт должен выполняться тогда, когда я делаю экспорт из 1с. Требуется решить именно эту задачу. Другие методы не подходят к сожалению. Буду очень благодарен за помощь!