Документация

Своя сущность

Любую сущность ORM Битрикса можно добавить в журнал из админки, не написав ни строки кода: Сервисы → Журналирование сущностей → Сущности → Добавить.

Форма регистрации сущности

Что заполняется

Поле Что в нём
Модуль модуль, которому принадлежит сущность: sale, iblock, свой модуль
ORM Класс класс сущности, например \Bitrix\Catalog\ProductTable
Ссылающийся модуль модуль родительской сущности — для вложенных записей
Ссылающийся ORM Класс класс родителя: к нему привязываются записи
Игнорируемые поля поля, изменения которых в журнал не пишутся
Типы событий для логирования добавление, изменение, удаление, обновления без изменений

Модуль и класс выбираются списком: форма подсказывает установленные модули и их сущности ORM, поэтому имя класса не приходится вспоминать наизусть.

Класс проверяется при сохранении: несуществующий класс, класс не от DataManager и уже зарегистрированный класс форма не примет и скажет, что именно не так.

Ссылающаяся сущность

Пара полей «Ссылающийся модуль» и «Ссылающийся ORM Класс» нужна для вложенных сущностей — тех, что живут внутри другой. Позиция заказа сама по себе мало о чём говорит; привязанная к заказу, она встаёт в журнал рядом с ним, и история заказа читается целиком.

Число полей связи должно совпадать с числом полей первичного ключа родителя — иначе форма покажет ошибку и не сохранит настройку.

Игнорируемые поля

Сюда попадают служебные поля, которые меняются при каждом сохранении и ничего не сообщают: отметки времени пересчёта, счётчики показов, кэшированные значения. Без исключений журнал по такой сущности превращается в поток однотипных записей, в котором не найти настоящее изменение.

Как это работает внутри

Модуль хранит зарегистрированные сущности в своей таблице и собирает для каждой класс-логгер на лету. Поэтому регистрация действует сразу и не требует ни обновления модуля, ни правки файлов.