Администрирование · 10 мин
Как сделать и настроить журнал событий в 1С
Как включить, настроить и читать журнал регистрации в 1С: уровни протоколирования, фильтры, выгрузка, программная запись событий и типовые ошибки администраторов.
Журнал событий в 1С называется журналом регистрации — это встроенный механизм платформы, который фиксирует действия пользователей, ошибки, вызовы фоновых заданий и изменения данных. Он работает без доработок конфигурации: достаточно выбрать уровень протоколирования и знать, где искать записи. Ниже разобрано, как включить журнал, настроить его состав, находить нужные события и дополнять его собственными записями из кода.
Практическая ценность журнала регистрации проявляется в трёх ситуациях: расследование инцидентов («кто изменил документ»), диагностика ошибок (почему не проводится документ или падает обмен) и аудит доступа (кто и когда входил в базу). Без корректной настройки журнал либо переполняется лишними событиями, либо не содержит нужной информации.
Где находится журнал регистрации и как его открыть
В клиентском приложении журнал регистрации открывается через меню «Все функции — Стандартные — Журнал регистрации» либо через типовой раздел «Администрирование — Обслуживание — Журнал регистрации» (точный путь зависит от конфигурации). В конфигураторе журнал доступен через меню «Администрирование — Журнал регистрации».
Для просмотра журнала пользователю нужны права администратора или специальное право «Журнал регистрации» (ViewEventLog). Обычный пользователь без этих прав журнал не увидит — это осознанное ограничение, поскольку журнал может содержать сведения о данных, к которым у сотрудника нет доступа.
Физически журнал хранится внутри информационной базы: в файловом варианте — в каталоге базы, в клиент-серверном — на сервере СУБД. Прямое редактирование файлов журнала не предусмотрено и может повредить базу, поэтому вся работа ведётся только штатными средствами платформы.
Настройка уровней регистрации событий
Основная настройка выполняется в диалоге «Настройка журнала регистрации»: в клиенте — «Администрирование — Обслуживание — Журнал регистрации — Настройка», в конфигураторе — «Администрирование — Журнал регистрации — Настройка». Там задаётся, какие категории событий записывать.
Платформа предлагает несколько уровней протоколирования: не регистрировать ничего, регистрировать только ошибки, ошибки и предупреждения, ошибки, предупреждения и информацию, а также регистрацию всех событий включая примечания. Дополнительно можно включить запись событий доступа к данным и отказа в доступе — это нужно для аудита безопасности, но заметно увеличивает объём журнала.
Какой уровень выбрать
Изменение настроек применяется сразу и не требует перезапуска сеансов. Однако учтите: события, произошедшие до смены уровня, задним числом не появятся — если инцидент случился при выключенной регистрации, восстановить его из журнала невозможно.
Как искать события: фильтры и отборы
Журнал крупной базы содержит тысячи записей в день, поэтому без фильтров работать с ним бессмысленно. В форме журнала нажмите «Установить отбор» и задайте условия: интервал дат, пользователь, компьютер, приложение (тонкий клиент, веб-клиент, фоновое задание), тип события, важность (ошибка, предупреждение, информация), а также представление данных — например, конкретный документ.
Особенно полезен отбор по событию. Имена событий стандартизированы: «Данные. Добавление», «Данные. Изменение», «Данные. Удаление», «Сеанс. Аутентификация», «Фоновое задание. Ошибка выполнения» и другие. Зная имя события, можно быстро ответить на вопросы вроде «кто удалил документ» или «почему упало регламентное задание».
- 1Откройте журнал регистрации и установите отбор
- 2Укажите интервал дат, в который могло произойти изменение
- 3В поле «Данные» выберите нужный документ через подбор
- 4Добавьте отбор по событию «Данные. Изменение» и «Данные. Удаление»
- 5Снимите отбор по пользователю — виновник заранее неизвестен
- 6В полученном списке смотрите колонки «Пользователь» и «Дата»
- 7Двойной клик по записи откроет детали события с комментарием
Колонка «Комментарий» в деталях события часто содержит ключевую информацию: текст ошибки, имя процедуры, параметры вызова. Именно её читают в первую очередь при диагностике сбоев.
Запись собственных событий из кода
Если стандартных событий недостаточно — например, нужно фиксировать запуск собственной обработки или результат обмена — используйте встроенный метод платформы ЗаписьЖурналаРегистрации(). Он доступен и на сервере, и на клиенте (с передачей на сервер).
Процедура ВыполнитьОбмен() Экспорт
Попытка
// ... логика обмена ...
ЗаписьЖурналаРегистрации("Обмен данными. Загрузка",
УровеньЖурналаРегистрации.Информация, , ,
"Загружено объектов: " + Формат(Счетчик, "ЧГ="));
Исключение
ЗаписьЖурналаРегистрации("Обмен данными. Загрузка",
УровеньЖурналаРегистрации.Ошибка, , ,
ОписаниеОшибки());
КонецПопытки;
КонецПроцедурыПараметры метода: имя события (придумайте осмысленное, с точками-разделителями — так удобнее фильтровать), уровень важности, объект метаданных, данные (ссылка на объект) и комментарий. Четвёртый параметр позволяет привязать запись к конкретному документу или элементу справочника — тогда в журнале по ней можно перейти к объекту.
Собственные события подчиняются общим настройкам уровня: если в настройках выбран режим «только ошибки», записи с уровнем «Информация» сохраняться не будут. Учитывайте это при проектировании логирования критичных процедур.
Выгрузка, сокращение и обслуживание журнала
Журнал регистрации можно выгрузить в файл через пункт «Выгрузить журнал регистрации» в конфигураторе или через метод ВыгрузитьЖурналРегистрации() из кода. Выгрузка полезна для анализа во внешних инструментах, передачи в техподдержку или архивирования перед сокращением.
Со временем журнал разрастается и может замедлять работу базы, особенно файловой. Для очистки используйте диалог «Сократить журнал регистрации» (в конфигураторе или в разделе обслуживания): укажите дату, до которой удалить записи, и при необходимости сохраните удаляемую часть в файл. Сокращение — необратимая операция, поэтому перед ней делайте выгрузку.
В клиент-серверном варианте полезно настроить регламент: периодическое сокращение журнала регламентным заданием или по расписанию администратора. Разумная практика — хранить в активной базе записи за последние недели или месяцы, а более старые переносить в архивные выгрузки.
Проверка результата и типичные ошибки
После настройки убедитесь, что журнал действительно пишет нужные события. Выполните тестовое действие — например, измените любой документ под тестовым пользователем — и найдите соответствующую запись в журнале с отбором по этому пользователю.
Как проверить результат
Событие «Данные. Изменение» присутствует с указанием пользователя и времени
Записи нет — проверьте уровень регистрации в настройках
Событие с вашим именем видно в журнале с заданным уровнем важности
Записи нет — уровень события ниже порога в настройках журнала
Журнал открывается за секунды, записи за старые периоды сокращены
Журнал открывается минутами — требуется сокращение
События «Фоновое задание. Ошибка выполнения» содержат текст ошибки
Задание падает, а записей нет — включён слишком низкий уровень регистрации
Если журнал не пишет события, проверьте по порядку: уровень регистрации в настройках, права текущего пользователя на просмотр журнала и корректность фильтров — часто записи есть, но скрыты забытым отбором.
Что важно запомнить
Журнал регистрации создаётся платформой автоматически: настройте уровень протоколирования под задачу, ищите события фильтрами по дате, пользователю и типу, добавляйте свои записи методом ЗаписьЖурналаРегистрации и регулярно сокращайте журнал с предварительной выгрузкой.
Частые вопросы о журнале событий 1С
Можно ли полностью отключить журнал регистрации?
Да, в настройках есть режим «Не регистрировать». Однако делать это в рабочей базе не рекомендуется: при ошибке или инциденте вы лишитесь единственного штатного источника информации о произошедшем. Если журнал мешает объёмом — лучше снизить уровень до ошибок и настроить регулярное сокращение.
Как узнать, кто удалил документ, если в журнале нет записи?
Если на момент удаления регистрация событий была отключена или уровень не включал информационные события, восстановить факт удаления из журнала нельзя. Косвенно помогают резервные копии базы (сравнение с копией до инцидента) и механизм истории данных, если он был включён для этого типа объектов.
Чем журнал регистрации отличается от истории изменений объектов?
Журнал фиксирует сам факт события — кто, когда и что изменил, — но не хранит старые и новые значения полей. История данных (механизм версионирования платформы) сохраняет сами версии объектов с различиями. Для аудита изменений критичных данных их разумно использовать вместе.
Почему журнал регистрации долго открывается?
Чаще всего из-за большого объёма накопленных записей, особенно в файловых базах и при включённой полной регистрации. Решение — сократить журнал до разумного периода, предварительно выгрузив старую часть, и понизить уровень протоколирования. Также помогает открытие журнала сразу с установленным отбором по датам.
Можно ли записывать в журнал события из внешних систем?
Напрямую внешняя система писать в журнал 1С не может, но можно создать HTTP-сервис или веб-сервис в конфигурации, который принимает сообщения и вызывает ЗаписьЖурналаРегистрации() с указанием источника в имени события. Так внешние интеграции получают единый централизованный лог внутри базы.
Видит ли обычный пользователь журнал регистрации?
Нет, если у него нет права «Журнал регистрации» в роли. Это сделано намеренно: журнал содержит сведения о действиях всех пользователей и может включать представления данных, доступ к которым ограничен. Выдавайте это право только администраторам и сотрудникам, ведущим аудит.