Кто, когда и что менял в базе: разбираем журнал регистрации 1С 8.3
Содержание
Журнал регистрации 1С хранит историю работы с базой: кто входил, с какого компьютера, какие документы создавал, менял, проводил и удалял, какие ошибки возникали. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) он открывается по пути Администрирование → Обслуживание → Протоколы работы программы → Журнал регистрации, в Конфигураторе — Администрирование → Журнал регистрации.
Частое заблуждение: «журнал хранит старые версии документов, из него можно вернуть удалённое». Нет. Журнал фиксирует сам факт события и представление объекта («Реализация 00БП-000123 от 12.03»), но не содержимое табличных частей и не суммы до изменения. Для отката значений нужны версионирование объектов или резервная копия. Журнал отвечает на вопрос «кто и когда», а не «что было раньше».
Зачем администратору и бухгалтеру журнал событий базы
Журнал регистрации — встроенный механизм платформы 1С:Предприятие 8.3. Он работает в любой конфигурации, даже в самописной: писать события умеет сама платформа, конфигурация лишь добавляет свои.
Типичные задачи, которые без него не решить:
- 🔍 найти, кто удалил или перепровёл документ закрытого периода;
- 👤 проверить, заходил ли сотрудник в базу после увольнения и с какого компьютера;
- 🧯 разобрать сбой: какая ошибка выпала, у кого и в какой момент;
- 🔄 проверить, отработали ли регламентные задания и обмены ночью;
- 🛠 узнать, кто и когда обновлял конфигурацию или менял структуру базы.
Журнал ведётся отдельно для каждой информационной базы. Две базы на одном сервере не делят общий журнал.
Какие события фиксирует журнал регистрации
Каждая запись имеет уровень важности. Платформа различает четыре уровня:
| Уровень | Что попадает | Пример |
|---|---|---|
| Ошибка | Исключения, сбои, неудачные операции | Ошибка при проведении, ошибка аутентификации |
| Предупреждение | Нештатные, но не фатальные ситуации | Предупреждения обменов и регламентных заданий |
| Информация | Обычные действия пользователей | Начало и завершение сеанса, запись документа |
| Примечание | Мелкие служебные события | Подробности транзакций и служебных операций |
По видам события делятся на группы. Названия в списке выглядят как «Группа. Действие»:
- 🔐 Сеанс — начало, завершение, аутентификация, ошибка аутентификации;
- 📄 Данные — добавление, изменение, удаление, проведение, отмена проведения;
- 👥 Пользователи — создание, изменение и удаление пользователей информационной базы;
- 🧱 Информационная база — изменение конфигурации, изменение структуры базы данных, обновление;
- 🔁 Транзакция — начало, фиксация, отмена;
- ⚙️ События конфигурации — то, что пишет программный код: обмены, регламентные задания, обновление версии программы, интернет-поддержка.
Пометка на удаление записывается как изменение данных, а не как удаление. Удаление — это окончательное удаление объекта, обычно через обработку удаления помеченных.
Из каких полей состоит запись
Каждая строка журнала содержит набор полей. Больше всего пользы дают эти:
- Дата — время события на сервере;
- Пользователь и Компьютер — кто и откуда;
- Приложение — тонкий клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение;
- Событие — вид события из списка выше;
- Метаданные — тип объекта (например, «Документ. Реализация товаров и услуг»);
- Данные и Представление данных — ссылка на конкретный объект;
- Комментарий — текст ошибки или пояснение;
- Сеанс и Транзакция — номер сеанса и статус транзакции.
Статус транзакции важен при расследовании. Если запись «Данные. Изменение» стоит со статусом «Отменена», изменение откатилось и в базе его нет.
Где хранится журнал регистрации: файлы и форматы
Физически журнал — набор файлов в папке 1Cv8Log. Где она лежит, зависит от варианта работы.
| Вариант базы | Расположение папки |
|---|---|
| Файловая | <каталог базы>\1Cv8Log, рядом с 1Cv8.1CD |
| Клиент-серверная | <каталог кластера>\reg_1541\<идентификатор базы>\1Cv8Log на рабочем сервере |
Для серверной базы каталог по умолчанию на Windows — C:\Program Files\1cv8\srvinfo\reg_1541\. Если служба агента сервера запущена с другим параметром -d, каталог будет там, где он указан. Порт в имени папки соответствует порту менеджера кластера.
Как найти папку нужной серверной базы
Внутри reg_1541 лежат папки с именами-GUID, по одной на базу. Чтобы понять, какая из них ваша:
- Откройте файл
1CV8Clst.lstв каталогеreg_1541текстовым редактором, только для чтения. - Найдите имя базы. Рядом с ним стоит её идентификатор.
- Откройте папку с этим идентификатором, внутри будет
1Cv8Log.
Второй способ — через утилиту rac: команда rac infobase summary list --cluster=<id кластера> выводит имена баз и их идентификаторы. Идентификатор кластера даёт rac cluster list.
Не редактируйте 1CV8Clst.lst. Это реестр кластера, ошибка в нём ломает доступ ко всем базам сервера.
Два формата хранения
В платформе 8.3 журнал может храниться в одном из двух форматов. Определить формат легко по файлам в папке:
- SQLite-формат — один файл
1Cv8.lgd. Быстрее ищет по отбору, но при большом объёме файл становится тяжёлым и хуже переносит обрывы записи; - Последовательный формат — файл
1Cv8.lgfсо справочными данными и набор файлов*.lgpс самими событиями. Файлы.lgpтекстовые, их удобно архивировать и разбирать сторонними инструментами.
Как настроить уровень регистрации событий
Сколько событий попадает в журнал, задаёт уровень регистрации. Настройка открывается в Конфигураторе: Администрирование → Настройка журнала регистрации.
Доступные варианты:
- Не регистрировать.
- Регистрировать ошибки.
- Регистрировать ошибки и предупреждения.
- Регистрировать ошибки, предупреждения и информацию.
- Регистрировать все события.
Для рабочей бухгалтерской базы разумно держать «все события» или хотя бы уровень с информацией. Без уровня «Информация» вы не увидите, кто записывал и проводил документы, — останутся только ошибки.
Режим «Не регистрировать» лишает вас истории изменений. Если позже понадобится найти, кто удалил документ, ответа не будет. Экономить место лучше сокращением старых записей, а не отключением журнала.
Разделение журнала по периодам
В том же окне настроек есть параметр разделения журнала по периодам: по годам, месяцам, неделям, дням или часам. Он работает для последовательного формата: каждый период пишется в свой файл .lgp.
Зачем это нужно:
- старые файлы можно переносить в архив целиком, не трогая текущий;
- просмотр за конкретный месяц открывается быстрее;
- порча одного файла не затрагивает остальные периоды.
Для баз с десятками пользователей обычно хватает разделения по месяцам. Для нагруженных баз с обменами — по неделям или дням.
Свои события из кода конфигурации
Разработчик может записать в журнал любое событие методом ЗаписьЖурналаРегистрации. Это удобно для логирования обменов, загрузок и собственных обработок:
ЗаписьЖурналаРегистрации(
"Загрузка выписок",
УровеньЖурналаРегистрации.Ошибка,
Метаданные.Документы.ПоступлениеНаРасчетныйСчет,
,
"Не найден контрагент по ИНН 7701234567");
Имя события («Загрузка выписок») потом появится в отборе по событиям. Давайте событиям понятные и постоянные имена, иначе через полгода их не найти среди сотен системных.
Как читать журнал и находить причины сбоев
Открывать журнал на рабочей базе лучше в пользовательском режиме: форма БСП показывает представления объектов по-русски и умеет быстро переходить к документу. Нужны права администратора или роль с доступом к журналу.
Пошагово: кто удалил или изменил документ
- Откройте журнал регистрации из раздела
Администрирование. - Задайте период: день, когда документ точно был, и день, когда он пропал или изменился.
- Откройте отбор и в поле событий оставьте нужные: «Данные. Удаление», «Данные. Изменение», «Данные. Отмена проведения».
- В поле метаданных выберите тип объекта, например документ поступления.
- Примените отбор и найдите строку с номером документа в колонке представления данных.
- Посмотрите пользователя, компьютер, приложение и статус транзакции.
Если в колонке «Приложение» стоит фоновое задание или COM-соединение, документ менял не человек, а обмен, регламентное задание или внешняя программа. Тогда ищите рядом по времени записи этого обмена.
Пошагово: разбор ошибки пользователя
- Уточните у пользователя примерное время и текст ошибки.
- Установите отбор по уровню «Ошибка» и по имени пользователя.
- Откройте запись двойным щелчком. Полный текст ошибки — в поле комментария, там же бывает стек вызовов модуля.
- Посмотрите записи того же сеанса за пару минут до ошибки: обычно видно, какую операцию выполнял человек.
Типовые сценарии расследований
| Задача | Отбор по событию | Что смотреть |
|---|---|---|
| Кто заходил в базу | Сеанс. Начало, Сеанс. Аутентификация | Пользователь, компьютер, приложение |
| Подбор паролей | Сеанс. Ошибка аутентификации | Компьютер и частота попыток |
| Кто обновлял программу | Информационная база. Изменение конфигурации | Пользователь, дата |
| Изменения закрытого периода | Данные. Изменение, Данные. Проведение | Метаданные, представление данных |
| Ночной обмен не прошёл | Уровень «Ошибка», приложение «Фоновое задание» | Комментарий |
Выгрузка в файл для внешнего анализа
Для аудита или передачи подрядчику журнал выгружают в XML методом ВыгрузитьЖурналРегистрации. Отбор задаётся структурой:
Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДата()) - 7 * 86400);
Отбор.Вставить("ДатаОкончания", КонецДня(ТекущаяДата()));
Отбор.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);
ВыгрузитьЖурналРегистрации("D:\Logs\errors_week.xml", Отбор);
Код выгружает ошибки за последние восемь дней: текущий и семь предыдущих. Выполнять его нужно на сервере или в толстом клиенте с правами администратора. Путь к файлу указывайте на том компьютере, где выполняется код.
Как сократить и обслуживать журнал регистрации
За пару лет журнал рабочей базы легко вырастает до нескольких гигабайт. Большой журнал медленно открывается, раздувает резервные копии, а файл 1Cv8.lgd в SQLite-формате начинает тормозить запись событий.
Сокращение журнала в Конфигураторе
- Сделайте резервную копию папки
1Cv8Log. - Откройте Конфигуратор, далее
Администрирование → Настройка журнала регистрации. - Нажмите «Сократить».
- Укажите дату: события раньше неё будут удалены. Например, оставьте последние 12 месяцев.
- Включите сохранение удаляемых событий в файл, если журнал может понадобиться для проверок.
- Подтвердите. На больших журналах операция идёт от нескольких минут до часа.
Сохранённый файл держите в архиве вместе с резервными копиями базы. Открыть его можно потом в Конфигураторе при просмотре журнала.
Ручной перенос папки журнала
Если журнал повреждён или так велик, что Конфигуратор не справляется с сокращением, папку переносят целиком:
- Предупредите пользователей: все сеансы этой базы будут завершены. Делайте это вне рабочего времени.
- Для файловой базы — дождитесь выхода всех пользователей. Для серверной — завершите сеансы базы через консоль кластера; если файлы журнала остаются занятыми, остановите службу агента сервера 1С. Остановка службы обрывает работу во всех базах сервера.
- Переименуйте
1Cv8Log, например в1Cv8Log_old, и перенесите в архив. - Запустите базу: платформа создаст пустой журнал.
Старую папку можно открыть позже, подложив её копию в каталог тестовой базы.
Что проверять регулярно
Сколько хранить, решает компания. Ориентир: не меньше периода, за который могут прийти с проверкой или за который бухгалтерия пересматривает отчётность. Для многих это один-три года.
Журнал регистрации и технологический журнал: в чём разница
Их часто путают. Это разные механизмы с разными задачами.
| Журнал регистрации | Технологический журнал | |
|---|---|---|
| Кто включает | Работает по умолчанию | Администратор, через файл logcfg.xml |
| Что пишет | Действия пользователей и ошибки | Вызовы сервера, запросы к СУБД, блокировки, исключения процессов |
| Для кого | Бухгалтер, администратор базы | Администратор сервера, эксперт по производительности |
| Где смотреть | В интерфейсе 1С | Текстовые файлы .log, сторонние анализаторы |
Журнал регистрации ответит, кто провёл документ. Технологический журнал ответит, почему проведение шло 40 секунд и на какой блокировке зависло. Для медленной работы базы смотрите второй.