Кто, когда и что менял в базе: разбираем журнал регистрации 1С 8.3

· 10 мин

Содержание

Журнал регистрации 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, по одной на базу. Чтобы понять, какая из них ваша:

  1. Откройте файл 1CV8Clst.lst в каталоге reg_1541 текстовым редактором, только для чтения.
  2. Найдите имя базы. Рядом с ним стоит её идентификатор.
  3. Откройте папку с этим идентификатором, внутри будет 1Cv8Log.

Второй способ — через утилиту rac: команда rac infobase summary list --cluster=<id кластера> выводит имена баз и их идентификаторы. Идентификатор кластера даёт rac cluster list.

Не редактируйте 1CV8Clst.lst. Это реестр кластера, ошибка в нём ломает доступ ко всем базам сервера.

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

В платформе 8.3 журнал может храниться в одном из двух форматов. Определить формат легко по файлам в папке:

  • SQLite-формат — один файл 1Cv8.lgd. Быстрее ищет по отбору, но при большом объёме файл становится тяжёлым и хуже переносит обрывы записи;
  • Последовательный формат — файл 1Cv8.lgf со справочными данными и набор файлов *.lgp с самими событиями. Файлы .lgp текстовые, их удобно архивировать и разбирать сторонними инструментами.

Как настроить уровень регистрации событий

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

Доступные варианты:

  1. Не регистрировать.
  2. Регистрировать ошибки.
  3. Регистрировать ошибки и предупреждения.
  4. Регистрировать ошибки, предупреждения и информацию.
  5. Регистрировать все события.

Для рабочей бухгалтерской базы разумно держать «все события» или хотя бы уровень с информацией. Без уровня «Информация» вы не увидите, кто записывал и проводил документы, — останутся только ошибки.

Режим «Не регистрировать» лишает вас истории изменений. Если позже понадобится найти, кто удалил документ, ответа не будет. Экономить место лучше сокращением старых записей, а не отключением журнала.

Разделение журнала по периодам

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

Зачем это нужно:

  • старые файлы можно переносить в архив целиком, не трогая текущий;
  • просмотр за конкретный месяц открывается быстрее;
  • порча одного файла не затрагивает остальные периоды.

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

Свои события из кода конфигурации

Разработчик может записать в журнал любое событие методом ЗаписьЖурналаРегистрации. Это удобно для логирования обменов, загрузок и собственных обработок:

ЗаписьЖурналаРегистрации(
    "Загрузка выписок",
    УровеньЖурналаРегистрации.Ошибка,
    Метаданные.Документы.ПоступлениеНаРасчетныйСчет,
    ,
    "Не найден контрагент по ИНН 7701234567");

Имя события («Загрузка выписок») потом появится в отборе по событиям. Давайте событиям понятные и постоянные имена, иначе через полгода их не найти среди сотен системных.

Как читать журнал и находить причины сбоев

Открывать журнал на рабочей базе лучше в пользовательском режиме: форма БСП показывает представления объектов по-русски и умеет быстро переходить к документу. Нужны права администратора или роль с доступом к журналу.

Пошагово: кто удалил или изменил документ

  1. Откройте журнал регистрации из раздела Администрирование.
  2. Задайте период: день, когда документ точно был, и день, когда он пропал или изменился.
  3. Откройте отбор и в поле событий оставьте нужные: «Данные. Удаление», «Данные. Изменение», «Данные. Отмена проведения».
  4. В поле метаданных выберите тип объекта, например документ поступления.
  5. Примените отбор и найдите строку с номером документа в колонке представления данных.
  6. Посмотрите пользователя, компьютер, приложение и статус транзакции.

Если в колонке «Приложение» стоит фоновое задание или COM-соединение, документ менял не человек, а обмен, регламентное задание или внешняя программа. Тогда ищите рядом по времени записи этого обмена.

Пошагово: разбор ошибки пользователя

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

Типовые сценарии расследований

ЗадачаОтбор по событиюЧто смотреть
Кто заходил в базуСеанс. Начало, Сеанс. АутентификацияПользователь, компьютер, приложение
Подбор паролейСеанс. Ошибка аутентификацииКомпьютер и частота попыток
Кто обновлял программуИнформационная база. Изменение конфигурацииПользователь, дата
Изменения закрытого периодаДанные. Изменение, Данные. ПроведениеМетаданные, представление данных
Ночной обмен не прошёлУровень «Ошибка», приложение «Фоновое задание»Комментарий
Диагностика: выберите симптом

Выгрузка в файл для внешнего анализа

Для аудита или передачи подрядчику журнал выгружают в XML методом ВыгрузитьЖурналРегистрации. Отбор задаётся структурой:

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

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

Как сократить и обслуживать журнал регистрации

За пару лет журнал рабочей базы легко вырастает до нескольких гигабайт. Большой журнал медленно открывается, раздувает резервные копии, а файл 1Cv8.lgd в SQLite-формате начинает тормозить запись событий.

Сокращение журнала в Конфигураторе

  1. Сделайте резервную копию папки 1Cv8Log.
  2. Откройте Конфигуратор, далее Администрирование → Настройка журнала регистрации.
  3. Нажмите «Сократить».
  4. Укажите дату: события раньше неё будут удалены. Например, оставьте последние 12 месяцев.
  5. Включите сохранение удаляемых событий в файл, если журнал может понадобиться для проверок.
  6. Подтвердите. На больших журналах операция идёт от нескольких минут до часа.

Сохранённый файл держите в архиве вместе с резервными копиями базы. Открыть его можно потом в Конфигураторе при просмотре журнала.

Ручной перенос папки журнала

Если журнал повреждён или так велик, что Конфигуратор не справляется с сокращением, папку переносят целиком:

  1. Предупредите пользователей: все сеансы этой базы будут завершены. Делайте это вне рабочего времени.
  2. Для файловой базы — дождитесь выхода всех пользователей. Для серверной — завершите сеансы базы через консоль кластера; если файлы журнала остаются занятыми, остановите службу агента сервера 1С. Остановка службы обрывает работу во всех базах сервера.
  3. Переименуйте 1Cv8Log, например в 1Cv8Log_old, и перенесите в архив.
  4. Запустите базу: платформа создаст пустой журнал.

Старую папку можно открыть позже, подложив её копию в каталог тестовой базы.

Что проверять регулярно

Обслуживание журнала регистрации
Выполнено: 0 / 6

Сколько хранить, решает компания. Ориентир: не меньше периода, за который могут прийти с проверкой или за который бухгалтерия пересматривает отчётность. Для многих это один-три года.

Журнал регистрации и технологический журнал: в чём разница

Их часто путают. Это разные механизмы с разными задачами.

Журнал регистрацииТехнологический журнал
Кто включаетРаботает по умолчаниюАдминистратор, через файл logcfg.xml
Что пишетДействия пользователей и ошибкиВызовы сервера, запросы к СУБД, блокировки, исключения процессов
Для когоБухгалтер, администратор базыАдминистратор сервера, эксперт по производительности
Где смотретьВ интерфейсе 1СТекстовые файлы .log, сторонние анализаторы

Журнал регистрации ответит, кто провёл документ. Технологический журнал ответит, почему проведение шло 40 секунд и на какой блокировке зависло. Для медленной работы базы смотрите второй.

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

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