Деактивируем по внешнему коду или ID раздела по событию, которое срабатывает при внесении изменений в раздел.
Добавим в /local/php_interface/init.php следующий код:
AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate", Array("MyClass", "OnBeforeIBlockSectionUpdateHandler"));
class MyClass
{ function OnBeforeIBlockSectionUpdateHandler(&$arFields) {
$resSection = CIBlockSection::GetList(array(),array('ID'=>$arFields['ID'],'IBLOCK_ID'=>$arFields['IBLOCK_ID']),false);
if($arFields["XML_ID"]=="5028c742-873b-45f9-a277-a4070da74c6f" || $arFields['ID']==530) { $arFields["ACTIVE"]="N"; }
}
}
Вот и все. Теперь при любых правках разделов каталога или его синхронизации с 1C статус раздела с ID 530 или XML_ID 5028c742-873b-45f9-a277-a4070da74c6f будет менятся на неактивный.
P.S. Кроме ID и XML_ID можно проверять совпадение по:
- наименованию раздела - NAME
- ID пользователя, который вносит изменение - MODIFIED_BY
- ID информационного блока - IBLOCK_ID