Документация для разработчиков
Темная тема

EventHistory

API


EventHistory - сервис записи истории элемента.

В CRM записывается история действий с элементом (сделкой, предложением, смарт-процессом) - его просмотр, удаление, изменение. Например, в истории может содержаться информация о том, какое поле было отредактировано, его старое и новое значение.

Найти историю можно во вкладке "История" детальной карточки элемента.

Чтобы обеспечить запись истории действий со смарт-процессами и предложениями, был написан сервис \Bitrix\Crm\Service\EventHistory и вспомогательные классы.

Объект класса EventHistory - это сервис, получаемый через контейнер. Его задача состоит в том, чтобы зарегистрировать какое-либо событие, связанное с элементом. Чаще всего это его изменение, просмотр и т.п.

Соответственно, класс имеет семейство публичных методов register*, которые вызываются, чтобы зарегистрировать какое-либо событие. Например, registerUpdate вызывается, чтобы зарегистрировать обновление элемента. Все эти методы возвращают объект \Bitrix\Main\Result, в котором будут находиться ошибки, если что-то пошло не так.

Все методы register* принимают на вход объект класса EventHistory\TrackedObject, который получается через фабрику. EventHistory\TrackedObject подготавливает данные для записи события. Готовые данные передаются в виде объекта EventHistory\EventHistoryData.

Примеры


Зарегистрировать просмотр элемента
use Bitrix\Crm\Service\Container;

$factory = Container::getInstance()->getFactory(\CCrmOwnerType::Quote);

$item = $factory->getItem(1);

$trackedObject = $factory->getTrackedObject($item);

/** @var \Bitrix\Main\Result $result */
$result = Container::getInstance()->getEventHistory()->registerView($trackedObject);
© «Битрикс», 2001-2024, «1С-Битрикс», 2024