Битрикс: Сохранение привязки элементов инфоблока к разделам при импорте из 1С

Битрикс: Сохранение привязки элементов инфоблока к разделам при импорте из 1С

19.01.2014

Бывает возникает необходимость разместить один товар в нескольких разделах (категориях), 1С-Битрикс позволяет это сделать благодаря свойству элемента инфоблока Привязка к категориям, но тут встает вопрос синхронизации информации о товарах с 1С. При импорте товаров из 1С в Битрикс информация о привязке к разделам затирается. Чтобы этого не происходило необходимо разместить следующий код в файле init.php:

AddEventHandler("iblock", "OnBeforeIBlockElementUpdate","SaveMySection");
function SaveMySection(&$arFields)
{
    if (@$_REQUEST['mode']=='import')//импорт  из 1с?
    {
        $db_old_groups = CIBlockElement::GetElementGroups($arFields['ID'], true);
        while($ar_group = $db_old_groups->Fetch())
        {
            if(!in_array($ar_group['ID'],$arFields['IBLOCK_SECTION']))
            $arFields['IBLOCK_SECTION'][]=$ar_group['ID'];
        }
    }
}

Спасибо Николаю Семенцову. Источник http://www.sns-it.ru/blog/1c/1c-integratsiya-bitrix-odin-tovar-v-neskolkikh-kategoriyakh/


Узнал сам - поделись с друзьями!

Возврат к списку