Задача
Кастомизировать данные при выполнении обмена сайта с 1С
Решение
Вариант 1. Обработка на уровне событий добавления и обновления элемента ИБ.
<?php
// Добавляем события
$em = Bitrix\Main\EventManager::getInstance();
$em->addEventHandler('iblock', 'OnBeforeIBlockElementAdd', [
EventHandlers::class,
'on1CUserAddElement'
]);
$em->addEventHandler('iblock', 'OnBeforeIBlockElementUpdate', [
EventHandlers::class,
'on1CUserUpdateElement'
]);
// Добавляем обработчик события
class EventHandlers
{
public static function on1CUserAddElement(array &$arFields)
{
// проверяем, что это нужный ИБ
if ($arFields['IBLOCK_ID'] !== Config::IB_CATALOG) {
return;
}
// проверяем, что это выгрузка, а не правка в админке
if(!isset($_GET['type'], $_GET['mode'], $_GET['filename'])) {
return;
}
// тут выполняем нужные действия
return;
}
public static function on1CUserUpdateElement(array &$arFields)
{
// проверяем, что это нужный ИБ
if ($arFields['IBLOCK_ID'] !== Config::IB_CATALOG) {
return;
}
// проверяем, что это выгрузка, а не правка в админке
if(!isset($_GET['type'], $_GET['mode'], $_GET['filename'])) {
return;
}
// тут выполняем нужные действия
return;
}
}