Перейти к основному содержимому

Событие перед изменением элемента инфоблока

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 
'rbs.moyskladstocks',
'OnBeforeUpdateItem',
'OnBeforeUpdateItemHandler'
);

function OnBeforeUpdateItemHandler(\Bitrix\Main\Event $event)
{
$eventParams = $event->getParameters();

$entity = $eventParams['entity']; //сущность в МойСклад, которая обрабатывается (четыер варианта значения: product / variant / bundle / service)
$currentItem = $eventParams['currentItem']; //данные о текущем элементе, подробнее ниже

$itemBx = $currentItem['BX']; //текущий элемент инфоблока, доступ к полям через массив
$item = $currentItem['MS']; //этот же товар из МС, доступ к полям через поля объекта

//это массив данных, которые затем передаются в CiblockElement::Update();
$arUpdateItemFields = $eventParams['arUpdateItemFields'];

//можно модифицировать массив '$arUpdateItemFields' и затем его вернуть в качестве успеха события
//например сделаем элемент не активным
//$arUpdateItemFields['ACTIVE'] = 'N';

//Отправляем \Bitrix\Main\EventResult::SUCCESS для записи изменений в элемента инфоблока
return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $arUpdateItemFields);
}