Найти тему
High-Performance Hosting

Деактивация разделов каталога 1С-Битрикс после синхронизации с 1С или внесения правок

Деактивируем по внешнему коду или ID раздела по событию, которое срабатывает при внесении изменений в раздел.

ID раздела каталога битрикс
ID раздела каталога битрикс
XML_ID раздела каталога битрикс
XML_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