Задача: При импорте из 1С у товаров обновить все поля кроме привязки к категории.
Пробовал писать свои классы и делать через обработку события добавления элемента. Но никак не получается без того, чтобы не залезть в /bitrix/modules/iblock/classes/mysql/iblockelement.php метод update, и не изменить строку
if(is_set($arFields, "IBLOCK_SECTION" ] ) ;
CIBlockElement::SetElementSection($ID, $arFields["IBLOCK_SECTION" ] ) ;
В надежде на - "Событие вызывается в методе [url=https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/add.php]CIBlockElement::Add[/url] до вставки информационного блока, и может быть использовано для отмены вставки или переопределения некоторых полей.": создаю обработчик события
AddEventHandler('IBlock', 'OnBeforeIBlockElementUpdate', 'customElementUpdate');
function customElementUpdate(&$arFields) {
if ($_SERVER['SCRIPT_NAME'] == '/bitrix/admin/iblock_element_edit.php') return true;
$arFields['IBLOCK_SECTION_ID'] = [некоторое значение];
$arFields['IBLOCK_SECTION'] = [некоторое значение];
}
но эти значения затем всё равно перебиваются. Так как компонент отправляет к CIBlockCMLImport а тот в совю очередь обращается к CIBlockElement передавая ему то, что я передавать бы не хотел - ид_секции.
Как решить данную задачу?