Обучаю битриксу программистов, интеграторов. Подробнee ⇒

Обработчик, чтобы не менялись коды, названия и структура в инфоблоке



Если у вас отличный инфоблок с товарами на сайте, прописаны коды, названия, и не хочется чтобы при обмене с 1С это сломалось
Особенно если это поисковиками проиндексировано

Зачастую это бывает, когда товары велись на стороне сайта, а потом стали выгружаться из 1С

структуру разделов можно настроить в дереве групп
но бывает лень, а остатки и цены надо, чтобы из 1с обновлялись

чтобы у разделов НЕ обновились коды, имя, родительский раздел
AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate", "MyOnBeforeIBlockSectionUpdate");
function MyOnBeforeIBlockSectionUpdate(&$arFields){    
   if(($_GET['type'] == 'catalog') && ($_GET['mode'] == 'import') && strstr($_GET['filename'], 'import') &&($arFields["IBLOCK_ID"]==10)){        
        unset($arFields["NAME"]);
        unset($arFields["CODE"]);
        unset($arFields["IBLOCK_SECTION_ID"]);
   }
}
чтобы у элементов НЕ обновился символьный код, привязка к разделу, имя
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "MyOnBeforeIBlockElementUpdate");
function MyOnBeforeIBlockElementUpdate(&$arFields){
    if(($_GET['type'] == 'catalog') && ($_GET['mode'] == 'import') && strstr($_GET['filename'], 'import') && ($arFields["IBLOCK_ID"]==10)){
        unset($arFields["IBLOCK_SECTION"]);
        unset($arFields["CODE"]);
        unset($arFields["NAME"]); 

    }
}

В проверке
$arFields["IBLOCK_ID"]==10
10 заменить на ваш ID инфоблока
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!