Журнал регистрации в 1С 8.3: что пишет, где хранится и как читать

· 10 мин

Содержание

Журнал регистрации в 1С 8.3 нужен, чтобы ответить на три вопроса: кто, когда и что сделал в базе. Открывается он в пользовательском режиме через Администрирование → Обслуживание → Журнал регистрации, а в Конфигураторе — через Администрирование → Журнал регистрации. Уровень детализации задаётся там же, в Конфигураторе: Администрирование → Настройка журнала регистрации.

Частое заблуждение — считать журнал «логом ошибок», который можно отключить ради скорости. На деле это единственный штатный след действий пользователей: без него не выяснить, кто удалил документ или перепровёл закрытый месяц. Отключать его не нужно. Нужно правильно настроить уровень, разбивку на периоды и регулярно сокращать.

Что фиксирует журнал регистрации и зачем он нужен

Платформа пишет в журнал события двух типов: системные (их генерирует сама 1С) и прикладные (их пишет код конфигурации через ЗаписьЖурналаРегистрации()).

Основные группы системных событий:

  • 🔐 Сеанс — начало и завершение работы, аутентификация, ошибка аутентификации.
  • 📝 Данные — добавление, изменение, удаление объектов, проведение и отмена проведения документов.
  • 👤 Пользователи — создание, изменение и удаление пользователей информационной базы.
  • ⚙️ Информационная база — изменение конфигурации, обновление конфигурации базы данных, выгрузка и загрузка .dt.
  • 🔄 Транзакция — фиксация и отмена транзакций.

Прикладные события добавляют типовые конфигурации на БСП: обновление информационной базы, ошибки регламентных заданий, обмен данными, отправка отчётности, работа с ЭДО. По имени события видно, какая подсистема его записала.

У каждой записи есть набор полей, по которым потом строится отбор:

ПолеЧто в нём
ДатаВремя события на сервере
ПользовательИмя пользователя ИБ
КомпьютерИмя машины, с которой работал пользователь
ПриложениеТонкий клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение
СобытиеТип события, например Данные.Изменение
УровеньОшибка, предупреждение, информация, примечание
Метаданные и данныеКакой объект затронут и ссылка на него
КомментарийТекст ошибки или пояснение от конфигурации
Статус транзакцииЗафиксирована, отменена, не завершена
СеансНомер сеанса — связывает все действия одного входа

Последнее поле недооценивают. Номер сеанса позволяет собрать в одну цепочку всё, что сделал пользователь от входа до выхода.

Журнал регистрации и технологический журнал — разные вещи. Журнал регистрации описывает действия пользователей и прикладные ошибки. Технологический журнал (настраивается файлом logcfg.xml) пишет внутренние события платформы: запросы к СУБД, блокировки, исключения рабочих процессов. Для «кто удалил документ» нужен первый, для «почему тормозит запрос» — второй.

Как настроить уровень журналирования

Уровень задаётся в Конфигураторе: Администрирование → Настройка журнала регистрации. Доступно пять вариантов:

УровеньЧто попадает в журналКогда выбирать
Не регистрироватьНичегоПочти никогда, только для тестовых копий
Регистрировать ошибкиТолько ошибкиСлабый сервер, база без требований к аудиту
Регистрировать ошибки и предупрежденияОшибки и предупрежденияКомпромисс, если журнал растёт слишком быстро
Регистрировать ошибки, предупреждения и информациюПлюс изменения данных, входы и выходыРабочий вариант для большинства баз
Регистрировать всёПлюс примечанияОтладка, расследование инцидента

Уровни вложены: каждый следующий включает предыдущие. Изменения данных (Данные.Добавление, Данные.Изменение, Данные.Удаление) пишутся на уровне «Информация». Если выставить «только ошибки», вы перестанете видеть, кто правил документы.

Пошагово в Конфигураторе

  1. Откройте базу в режиме Конфигуратора под пользователем с правами администратора.
  2. Выберите Администрирование → Настройка журнала регистрации.
  3. В блоке уровней отметьте нужный вариант. Для рабочей базы — «ошибки, предупреждения и информация».
  4. В поле разделения на периоды выберите разбивку: по дням, неделям или месяцам.
  5. Нажмите «ОК». Настройка применяется сразу, перезапуск пользователей не нужен.

Уровень можно менять и программно: метод УстановитьИспользованиеЖурналаРегистрации() принимает массив уровней, а ПолучитьИспользованиеЖурналаРегистрации() возвращает текущие. Это удобно, когда нужно включить «всё» на время расследования и вернуть обратно из обработки.

Баланс между подробностью и нагрузкой

Каждая запись — это операция записи на диск сервера. В базе на 50 пользователей с активным проведением журнал на уровне «Информация» может прирастать на сотни мегабайт в месяц. Сам по себе объём не опасен, проблемы начинаются при чтении: открыть журнал за год без отбора — значит ждать минуты.

Практичное правило: оставить «Информацию», разбить журнал по месяцам и раз в квартал сокращать старые периоды с сохранением в архив. Уровень «Всё» включать только на время разбора и не забывать выключать.

Анализ записей: как найти причину ошибки или виновника изменения

Журнал без отбора бесполезен: в нём десятки тысяч строк. Всё начинается с кнопки «Установить отбор» (значок воронки в командной панели формы журнала).

Типовые сценарии отбора

Кто удалил или изменил документ.

  1. Откройте нужный документ или найдите его в списке.
  2. В журнале задайте отбор по полю «Данные» — укажите ссылку на документ.
  3. Добавьте отбор по событиям Данные.Изменение, Данные.Удаление, Данные.Проведение.
  4. Сортируйте по дате. Последняя запись покажет пользователя и компьютер.

Удалённый объект уже не выбрать ссылкой. В этом случае отбирайте по метаданным (например, «Документ. Реализация (акт, накладная, УПД)») и по событию Данные.Удаление за нужный интервал.

💡 Во многих типовых конфигурациях из карточки объекта есть переход в журнал по этому объекту — ищите его в меню «Ещё» формы документа. Отбор тогда подставится автоматически.

Почему не отработало регламентное задание. Отбор: уровень «Ошибка», приложение «Фоновое задание», интервал — сутки, когда задание должно было выполниться. В комментарии будет полный текст исключения со стеком вызовов модулей.

Кто подбирает пароли. Событие Сеанс.Ошибка аутентификации, интервал — неделя. Группа записей с одного компьютера за несколько минут — повод разобраться.

Почему у пользователя «вылетает» программа. Отбор по пользователю и уровню «Ошибка». Смотрите комментарий последней записи перед завершением сеанса.

Как читать запись об ошибке

Двойной щелчок по строке открывает карточку события. Главное в ней — поле «Комментарий». Там дословный текст, который видел пользователь, например Недостаточно прав для просмотра данных или Ошибка при вызове метода контекста (Записать), и место в модуле, где возникло исключение.

Связка «Сеанс + Транзакция» помогает понять, откатилось ли действие. Если статус транзакции «Отменена», данные в базе не изменились, хотя событие изменения в журнале есть.

Время в журнале — это время сервера, а не компьютера пользователя. Если сервер в другом часовом поясе, при поиске «что было в 15:00» делайте поправку.

Отчёт для регулярного анализа

В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) есть отчёт «Анализ журнала регистрации». Найти его проще всего через Администрирование → Обслуживание или поиском по названию в разделе. У отчёта несколько вариантов:

  • 📊 «Активность пользователей» — кто сколько работал и с какими объектами;
  • ⏱ «Продолжительность работы регламентных заданий» — какие задания идут дольше нормы;
  • 🚨 «Контроль журнала регистрации» — сводка ошибок и предупреждений за период.

Последний вариант удобно поставить в рассылку отчётов и получать на почту каждое утро.

Где хранится журнал регистрации и как его сокращать

Журнал хранится в файлах, а не в базе данных СУБД. Это значит, что при выгрузке в .dt он не переносится, а при копировании базы на другой сервер остаётся на старом.

Вариант базыГде искать
ФайловаяПодкаталог 1Cv8Log в каталоге базы
Клиент-серверная<каталог кластера>\reg_1541\<идентификатор базы>\1Cv8Log на сервере 1С

Для серверной установки на Windows каталог кластера по умолчанию — C:\Program Files\1cv8\srvinfo. Идентификатор базы — это GUID, его видно в свойствах базы в консоли администрирования.

Два формата хранения

Платформа 8.3 поддерживает два формата:

  • 📄 Последовательный — файл 1Cv8.lgf (справочники пользователей, компьютеров, событий) и файлы *.lgp с записями по периодам. Быстро пишется, легко архивировать по файлам.
  • 🗄 SQLite — один или несколько файлов *.lgd. Удобен для выборок, но на больших объёмах медленнее и сильнее нагружает диск при записи.

Формат определяется тем, какой файл лежит в каталоге 1Cv8Log. Чтобы перейти на последовательный формат, администраторы останавливают работу с базой, переносят содержимое 1Cv8Log в архив и кладут туда пустой файл 1Cv8.lgf. Перед этим завершите все сеансы и сохраните старый каталог: удалённый журнал не восстановить. Для серверной базы на время операции нужно остановить службу агента сервера 1С — у всех пользователей кластера оборвутся сеансы, поэтому делайте это в нерабочее время.

Сокращение журнала

В Конфигураторе: Администрирование → Настройка журнала регистрации → Сократить.

  1. Укажите дату: все события раньше неё будут удалены.
  2. Включите сохранение удаляемых событий в файл и задайте путь на другом диске.
  3. Подтвердите. На крупном журнале операция занимает несколько минут.

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

При разбивке по месяцам сокращать проще: старые файлы *.lgp целиком переносятся в архив средствами ОС. Но делайте это при остановленной базе и только для закрытых периодов, текущий файл не трогайте.

Журнал регистрации как инструмент аудита безопасности

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

  • 👁 кто и когда входил в базу, с какого компьютера и под каким именем;
  • 🛠 кто менял конфигурацию (ИнформационнаяБаза.Изменение конфигурации) и обновлял структуру базы;
  • 👥 кто создал пользователя или добавил ему роль «Полные права»;
  • 📤 кто выгружал базу в .dt — по сути, копировал все данные;
  • 📅 кто перепровёл документы в закрытом периоде.

Слабое место одно: журнал лежит в файлах на сервере, и администратор с доступом к диску может его удалить. Поэтому для настоящего аудита журнал регулярно копируют туда, куда у администраторов 1С нет прав на запись, — в отдельное хранилище или внешнюю систему.

Минимальный аудит базы раз в месяц
Выполнено: 0 / 6

Если в базе работает несколько человек под одним пользователем, журнал теряет смысл как аудит: все действия будут записаны на одно имя. Это частая причина, по которой расследование заходит в тупик. Каждому сотруднику — свой пользователь, иначе аудита нет.

Автоматизация анализа и выгрузка во внешние системы мониторинга

Ручной просмотр работает, пока база одна. Когда баз десять, журнал нужно разбирать автоматически.

Средствами самой 1С

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

Пример выгрузки ошибок за последние сутки в таблицу значений:

Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", ТекущаяДатаСеанса() - 86400);
Отбор.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);

Таблица = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(Таблица, Отбор);

Для Каждого Строка Из Таблица Цикл
    Сообщить(Формат(Строка.Дата, "ДФ='dd.MM.yyyy HH:mm'") + " | "
        + Строка.ИмяПользователя + " | " + Строка.Комментарий);
КонецЦикла;

Код выполняется на сервере и требует административных прав. На большом журнале ставьте узкий интервал: выгрузка за месяц без отбора займёт память сервера.

Для собственных событий используйте ЗаписьЖурналаРегистрации(). Давайте событиям понятные имена с группой через точку, например Интеграция.ОшибкаЗагрузкиЗаказов. Тогда отбор по событию сразу покажет все сбои вашей обработки.

Внешние системы

Для серверного парка журнал выгружают в системы сбора логов: Elasticsearch, ClickHouse, Graylog. Есть открытые утилиты, которые читают файлы 1Cv8Log напрямую и отправляют записи дальше, например OneSTools.EventLog. Поверх данных строят дашборды: число ошибок по базам, всплески неудачных входов, длительность регламентных заданий.

СпособПлюсыМинусы
Ручной просмотр с отборомНичего не настраиватьТолько для разовых расследований
Отчёт «Анализ журнала регистрации» + рассылкаШтатно, без доработокТолько для конфигураций на БСП
Регламентное задание с ВыгрузитьЖурналРегистрации()Гибко, уведомления в мессенджерНужен программист и доработка
Выгрузка во внешнюю систему логовВсе базы в одном месте, хранение вне сервераОтдельная инфраструктура

Частые вопросы

Почему журнал регистрации открывается очень долго?
Чаще всего журнал большой и не разбит на периоды. Установите отбор по интервалу до открытия, включите разбивку по месяцам и сократите старые события с сохранением в архив.
Переносится ли журнал при выгрузке базы в .dt?
Нет. Журнал хранится в файлах каталога 1Cv8Log отдельно от данных. Чтобы сохранить историю при переезде, скопируйте этот каталог вручную.
Можно ли узнать, какое поле изменил пользователь?
Штатно журнал фиксирует только факт изменения объекта, без старого и нового значения реквизитов. Для истории значений нужно версионирование объектов в конфигурации на БСП или своя доработка.
Видно ли в журнале, кто открывал документ, но ничего не менял?
Нет, просмотр объектов платформа по умолчанию не регистрирует. Фиксируются входы, изменения данных и ошибки.
Кто может открыть журнал регистрации?
Пользователь с административными правами. Обычный бухгалтер журнал не увидит, если ему не выдана соответствующая роль.