Откуда пришло изменение
К каждой записи журнала сохраняется стек вызова — цепочка файлов и строк, по которой код дошёл до изменения сущности.
Это ответ на вопрос «кто это сделал», когда пользователь ни при чём: изменение пришло из обмена,
из агента, из стороннего модуля или из собственного кода в init.php.
Как читать стек
Читают сверху вниз: первая строка — место, где сущность сохранена, дальше — кто это вызвал. Свои служебные вызовы модуль из стека убирает, чтобы не мешали: записи о работе самого журнала, ORM Битрикса и системы событий отфильтрованы.
Пути показываются относительно корня сайта — так их можно сразу открыть в редакторе файлов админки. Модуль поддерживает переход к нужной строке: адрес файла с номером строки открывает редактор и ставит курсор на эту строку.
Глубина стека
Сколько шагов сохранять, задаётся настройкой «Лимит трассировки стека» (по умолчанию 100 шагов, 0 — без ограничения). Глубокий стек полезнее для разбора, но занимает место в базе: он хранится вместе с записью.
Разумный порядок: держать 100 в обычной работе, поднимать временно, когда ищут источник конкретной поломки.
Когда стек пустой
Ноль в настройке означает «без ограничения», а не «не сохранять», поэтому пустой стек говорит о другом: весь путь вызова оказался служебным и был отфильтрован. Так выглядят изменения, сделанные самим ядром — например, при установке модуля или обновлении системы.