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);