Как отменить деактивацию разделов отсутствующих в выгрузке 1С?
На сайте созданы отдельные разделы для привязки товаров. Этих разделов нет в 1С и не будет. При запуске полной выгрузки, после обмена разделы деактивируются.
В настройках сайта включена опция - Что делать с группами, отсутствующими в файле импорта: ничего.
Пробовал отключить в обработчике (init.php) так же обмен всеравно отключает раздел.
AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate","DoNotDeactivate");
function DoNotDeactivate(&$arFields)
{
if ($_REQUEST['mode']=='import')
{
$arFields['ACTIVE'] == "Y";
}
}
#Отмена отключение по свойству тип UF
AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate","DoNotDeactivate");
AddEventHandler("iblock", "OnAfterIBlockSectionUpdate ","DoNotDeactivate");
function DoNotDeactivate(&$arFields)
{
if ($arFields['UF_TAGS'] == 1) {
unset($arFields['ACTIVE']);
}
}
Ответы (2 шт):
Автор решения: Сергей Савченко
→ Ссылка
в $arFields будет айди раздела сделайте проверку на нево, потому что там другой мод
AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate","DoNotDeactivate");
function DoNotDeactivate(&$arFields)
{
if ($arFields['ID']==123)
{
$arFields['ACTIVE'] == "Y";
}
}
Автор решения: Илья Алисов
→ Ссылка
Можно отключить управление активностью при условии, что это обмен с 1с вот так:
AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate", "skipSectionActivity_If1C");
// не управляем активностью раздела при обмене товарами с 1С
function skipSectionActivity_If1C(&$arParams){
if( $_SERVER["SCRIPT_NAME"] == '/bitrix/admin/1c_exchange.php')
unset($arParams["ACTIVE"]);
}