Журнал регистрации в 1С 8.3: что пишет, где хранится и как читать
Содержание
Журнал регистрации в 1С 8.3 нужен, чтобы ответить на три вопроса: кто, когда и что сделал в базе. Открывается он в пользовательском режиме через Администрирование → Обслуживание → Журнал регистрации, а в Конфигураторе — через Администрирование → Журнал регистрации. Уровень детализации задаётся там же, в Конфигураторе: Администрирование → Настройка журнала регистрации.
Частое заблуждение — считать журнал «логом ошибок», который можно отключить ради скорости. На деле это единственный штатный след действий пользователей: без него не выяснить, кто удалил документ или перепровёл закрытый месяц. Отключать его не нужно. Нужно правильно настроить уровень, разбивку на периоды и регулярно сокращать.
Что фиксирует журнал регистрации и зачем он нужен
Платформа пишет в журнал события двух типов: системные (их генерирует сама 1С) и прикладные (их пишет код конфигурации через ЗаписьЖурналаРегистрации()).
Основные группы системных событий:
- 🔐 Сеанс — начало и завершение работы, аутентификация, ошибка аутентификации.
- 📝 Данные — добавление, изменение, удаление объектов, проведение и отмена проведения документов.
- 👤 Пользователи — создание, изменение и удаление пользователей информационной базы.
- ⚙️ Информационная база — изменение конфигурации, обновление конфигурации
базы данных, выгрузка и загрузка
.dt. - 🔄 Транзакция — фиксация и отмена транзакций.
Прикладные события добавляют типовые конфигурации на БСП: обновление информационной базы, ошибки регламентных заданий, обмен данными, отправка отчётности, работа с ЭДО. По имени события видно, какая подсистема его записала.
У каждой записи есть набор полей, по которым потом строится отбор:
| Поле | Что в нём |
|---|---|
| Дата | Время события на сервере |
| Пользователь | Имя пользователя ИБ |
| Компьютер | Имя машины, с которой работал пользователь |
| Приложение | Тонкий клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение |
| Событие | Тип события, например Данные.Изменение |
| Уровень | Ошибка, предупреждение, информация, примечание |
| Метаданные и данные | Какой объект затронут и ссылка на него |
| Комментарий | Текст ошибки или пояснение от конфигурации |
| Статус транзакции | Зафиксирована, отменена, не завершена |
| Сеанс | Номер сеанса — связывает все действия одного входа |
Последнее поле недооценивают. Номер сеанса позволяет собрать в одну цепочку всё, что сделал пользователь от входа до выхода.
Журнал регистрации и технологический журнал — разные вещи. Журнал регистрации описывает действия пользователей и прикладные ошибки. Технологический журнал (настраивается файлом logcfg.xml) пишет внутренние события платформы: запросы к СУБД, блокировки, исключения рабочих процессов. Для «кто удалил документ» нужен первый, для «почему тормозит запрос» — второй.
Как настроить уровень журналирования
Уровень задаётся в Конфигураторе: Администрирование → Настройка журнала регистрации. Доступно пять вариантов:
| Уровень | Что попадает в журнал | Когда выбирать |
|---|---|---|
| Не регистрировать | Ничего | Почти никогда, только для тестовых копий |
| Регистрировать ошибки | Только ошибки | Слабый сервер, база без требований к аудиту |
| Регистрировать ошибки и предупреждения | Ошибки и предупреждения | Компромисс, если журнал растёт слишком быстро |
| Регистрировать ошибки, предупреждения и информацию | Плюс изменения данных, входы и выходы | Рабочий вариант для большинства баз |
| Регистрировать всё | Плюс примечания | Отладка, расследование инцидента |
Уровни вложены: каждый следующий включает предыдущие. Изменения данных (Данные.Добавление, Данные.Изменение, Данные.Удаление) пишутся на уровне «Информация». Если выставить «только ошибки», вы перестанете видеть, кто правил документы.
Пошагово в Конфигураторе
- Откройте базу в режиме Конфигуратора под пользователем с правами администратора.
- Выберите
Администрирование → Настройка журнала регистрации. - В блоке уровней отметьте нужный вариант. Для рабочей базы — «ошибки, предупреждения и информация».
- В поле разделения на периоды выберите разбивку: по дням, неделям или месяцам.
- Нажмите «ОК». Настройка применяется сразу, перезапуск пользователей не нужен.
Уровень можно менять и программно: метод УстановитьИспользованиеЖурналаРегистрации() принимает массив уровней, а ПолучитьИспользованиеЖурналаРегистрации() возвращает текущие. Это удобно, когда нужно включить «всё» на время расследования и вернуть обратно из обработки.
Баланс между подробностью и нагрузкой
Каждая запись — это операция записи на диск сервера. В базе на 50 пользователей с активным проведением журнал на уровне «Информация» может прирастать на сотни мегабайт в месяц. Сам по себе объём не опасен, проблемы начинаются при чтении: открыть журнал за год без отбора — значит ждать минуты.
Практичное правило: оставить «Информацию», разбить журнал по месяцам и раз в квартал сокращать старые периоды с сохранением в архив. Уровень «Всё» включать только на время разбора и не забывать выключать.
Анализ записей: как найти причину ошибки или виновника изменения
Журнал без отбора бесполезен: в нём десятки тысяч строк. Всё начинается с кнопки «Установить отбор» (значок воронки в командной панели формы журнала).
Типовые сценарии отбора
Кто удалил или изменил документ.
- Откройте нужный документ или найдите его в списке.
- В журнале задайте отбор по полю «Данные» — укажите ссылку на документ.
- Добавьте отбор по событиям
Данные.Изменение,Данные.Удаление,Данные.Проведение. - Сортируйте по дате. Последняя запись покажет пользователя и компьютер.
Удалённый объект уже не выбрать ссылкой. В этом случае отбирайте по метаданным (например, «Документ. Реализация (акт, накладная, УПД)») и по событию Данные.Удаление за нужный интервал.
💡 Во многих типовых конфигурациях из карточки объекта есть переход в журнал по этому объекту — ищите его в меню «Ещё» формы документа. Отбор тогда подставится автоматически.
Почему не отработало регламентное задание. Отбор: уровень «Ошибка», приложение «Фоновое задание», интервал — сутки, когда задание должно было выполниться. В комментарии будет полный текст исключения со стеком вызовов модулей.
Кто подбирает пароли. Событие Сеанс.Ошибка аутентификации, интервал — неделя. Группа записей с одного компьютера за несколько минут — повод разобраться.
Почему у пользователя «вылетает» программа. Отбор по пользователю и уровню «Ошибка». Смотрите комментарий последней записи перед завершением сеанса.
Как читать запись об ошибке
Двойной щелчок по строке открывает карточку события. Главное в ней — поле «Комментарий». Там дословный текст, который видел пользователь, например Недостаточно прав для просмотра данных или Ошибка при вызове метода контекста (Записать), и место в модуле, где возникло исключение.
Связка «Сеанс + Транзакция» помогает понять, откатилось ли действие. Если статус транзакции «Отменена», данные в базе не изменились, хотя событие изменения в журнале есть.
Время в журнале — это время сервера, а не компьютера пользователя. Если сервер в другом часовом поясе, при поиске «что было в 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С — у всех пользователей кластера оборвутся сеансы, поэтому делайте это в нерабочее время.
Сокращение журнала
В Конфигураторе: Администрирование → Настройка журнала регистрации → Сократить.
- Укажите дату: все события раньше неё будут удалены.
- Включите сохранение удаляемых событий в файл и задайте путь на другом диске.
- Подтвердите. На крупном журнале операция занимает несколько минут.
Архивный файл потом открывается из формы журнала командой открытия архивного журнала — его можно читать с теми же отборами.
При разбивке по месяцам сокращать проще: старые файлы *.lgp целиком переносятся в архив средствами ОС. Но делайте это при остановленной базе и только для закрытых периодов, текущий файл не трогайте.
Журнал регистрации как инструмент аудита безопасности
Для службы безопасности и аудиторов журнал — главный источник фактов. Он отвечает на вопросы, которые иначе решаются только догадками:
- 👁 кто и когда входил в базу, с какого компьютера и под каким именем;
- 🛠 кто менял конфигурацию (
ИнформационнаяБаза.Изменение конфигурации) и обновлял структуру базы; - 👥 кто создал пользователя или добавил ему роль «Полные права»;
- 📤 кто выгружал базу в
.dt— по сути, копировал все данные; - 📅 кто перепровёл документы в закрытом периоде.
Слабое место одно: журнал лежит в файлах на сервере, и администратор с доступом к диску может его удалить. Поэтому для настоящего аудита журнал регулярно копируют туда, куда у администраторов 1С нет прав на запись, — в отдельное хранилище или внешнюю систему.
Если в базе работает несколько человек под одним пользователем, журнал теряет смысл как аудит: все действия будут записаны на одно имя. Это частая причина, по которой расследование заходит в тупик. Каждому сотруднику — свой пользователь, иначе аудита нет.
Автоматизация анализа и выгрузка во внешние системы мониторинга
Ручной просмотр работает, пока база одна. Когда баз десять, журнал нужно разбирать автоматически.
Средствами самой 1С
Метод ВыгрузитьЖурналРегистрации() выгружает записи в таблицу значений или в XML-файл с заданным отбором. На его основе пишут регламентное задание, которое раз в час собирает ошибки и отправляет их на почту или в мессенджер.
Пример выгрузки ошибок за последние сутки в таблицу значений:
Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", ТекущаяДатаСеанса() - 86400);
Отбор.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);
Таблица = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(Таблица, Отбор);
Для Каждого Строка Из Таблица Цикл
Сообщить(Формат(Строка.Дата, "ДФ='dd.MM.yyyy HH:mm'") + " | "
+ Строка.ИмяПользователя + " | " + Строка.Комментарий);
КонецЦикла;
Код выполняется на сервере и требует административных прав. На большом журнале ставьте узкий интервал: выгрузка за месяц без отбора займёт память сервера.
Для собственных событий используйте ЗаписьЖурналаРегистрации(). Давайте событиям понятные имена с группой через точку, например Интеграция.ОшибкаЗагрузкиЗаказов. Тогда отбор по событию сразу покажет все сбои вашей обработки.
Внешние системы
Для серверного парка журнал выгружают в системы сбора логов: Elasticsearch, ClickHouse, Graylog. Есть открытые утилиты, которые читают файлы 1Cv8Log напрямую и отправляют записи дальше, например OneSTools.EventLog. Поверх данных строят дашборды: число ошибок по базам, всплески неудачных входов, длительность регламентных заданий.
| Способ | Плюсы | Минусы |
|---|---|---|
| Ручной просмотр с отбором | Ничего не настраивать | Только для разовых расследований |
| Отчёт «Анализ журнала регистрации» + рассылка | Штатно, без доработок | Только для конфигураций на БСП |
Регламентное задание с ВыгрузитьЖурналРегистрации() | Гибко, уведомления в мессенджер | Нужен программист и доработка |
| Выгрузка во внешнюю систему логов | Все базы в одном месте, хранение вне сервера | Отдельная инфраструктура |
Частые вопросы
Почему журнал регистрации открывается очень долго?
Переносится ли журнал при выгрузке базы в .dt?
1Cv8Log отдельно от данных. Чтобы сохранить историю при переезде, скопируйте этот каталог вручную.