Как работает журнал регистрации 1С, сохраняется ли он при выгрузке базы и как оптимизировать поиск?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Сохраняется ли журнал регистрации при выгрузке и загрузке базы 1С?

Проанализируем механику работы выгрузки данных платформы. При выполнении операции выгрузки информационной базы в файл (формат .dt) журнал регистрации не попадает в файл выгрузки. Это обусловлено тем, что лог хранятся отдельно от данных информационной базы в файловой системе сервера или локального ПК.

Тем не менее, при обычной загрузке или обновлении конфигурации существующий журнал регистрации не очищается:

  1. В файловом варианте: Журнал хранится в подкаталоге 1Cv8Log в папке с информационной базой. Файлы с расширениями .lgp или .lgd содержат историю событий. Если не удалять папку 1Cv8Log вручную, при загрузке новой конфигурации или разворачивании базы данные логов сохраняются.
  2. В клиент-серверном варианте: Данные журнала хранятся на сервере приложений 1С в служебных каталогах (например, C:\Program Files\1cv8\srvinfo\reg_1541\GUID_базы\1Cv8Log). При загрузке файла .dt в существующую базу журнал остается на месте.

Важный момент: Если восстанавливать базу из резервной копии СУБД (MS SQL, PostgreSQL) или пересоздавать информационную базу на сервере приложений, кластер 1С генерирует новый GUID базы. В этом случае создается новая папка логов, и прежний журнал регистрации перестанет отображаться в интерфейсе 1С, хотя physically останется в старой папке на сервере.

Как устроено хранение файлов и где находятся логи

Рассмотрим структуру файлов журнала регистрации в зависимости от используемого формата:

  1. Классический текстовый формат (файлы .lgp / .lgf): Данные разбиваются на отдельные файлы по периодам (дни, месяцы). Это обеспечивает высокую надежность при внезапных сбоях и позволяет удобно архивировать старые периоды.
  2. Формат СУБД SQLite (файл 1Cv8.lgd): Единый файл базы данных SQLite. При незапланированном отключении питания или сбое ОС файл .lgd может повредиться, что приведет к ошибкам чтения логов.

Способы оптимизации поиска по журналу регистрации

На крупных базах (с объемом СУБД в сотни гигабайт и сотнями одновременных пользователей) стандартный поиск по журналу регистрации через интерфейс 1С может работать медленно. Разберем практические способы ускорения поиска и работы с логами:

  1. Использование версионирования из БСП: Если цель журнала заключается в отслеживании изменений документов и справочников ("кто и что изменил в документе"), эффективнее включить подсистему «Версионирование объектов» из Библиотеки Стандартных Подсистем (БСП). Данные изменений будут храниться непосредственно в таблицах СУБД.
  2. Сокращение журнала регистрации: Регулярно выгружайте старые записи в файл и удаляйте их из рабочей базы через меню Администрирование -> Настройка журнала регистрации -> Сократить.
  3. Включение асинхронной (фоновой) записи логов: В свойствах информационной базы переведите режим записи журнала в асинхронный режим. Это снизит нагрузку на сервер при массовых транзакциях.
  4. Размещение логов на NVMe / RAM-диске: Перенос папки srvinfo или подкаталога 1Cv8Log на высокоскоростные накопители значительно ускоряет фильтрацию и чтение данных.
  5. Выгрузка логов во внешние системы (ClickHouse / Elasticsearch): Для масштабных проектов со множеством событий организуют выгрузку .lgp файлов во внешние колоночные СУБД или поисковые движки, где фильтрация данных происходит мгновенно.

Программная запись событий в журнал регистрации

Разработчики 1С могут добавлять пользовательские события в журнал с помощью глобального метода ЗаписьЖурналаРегистрации. Рассмотрим пример вызова этой процедуры в коде:


ЗаписьЖурналаРегистрации("Создание записи в регистре сведений", 
    УровеньЖурналаРегистрации.Информация, 
    Метаданные.РегистрыСведений.ЗначениеСуммовыхПоказателейМероприятияПоГодам, 
    Регистратор, 
    "Запись журнала сформирована программно", 
    РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);

Параметры процедуры ЗаписьЖурналаРегистрации:

  1. Имя события: Строковое наименование события (например, "ИнформационнаяБаза.ОбновлениеИБ").
  2. Уровень: Значение системного перечисления УровеньЖурналаРегистрации (Информация, Предупреждение, Ошибка, Примечание).
  3. Объект метаданных: Метаданные объекта, к которому относится событие.
  4. Данные: Ссылка на объект базы данных или конкретное значение.
  5. Комментарий: Текстовое описание детализации события.
  6. Режим транзакции: Позволяет привязать запись к успеху текущей транзакции (Транзакционная) или записать незамедлительно (Независимая).

Очистка неиспользуемых папок журнала регистрации на сервере 1С

При длительной эксплуатации сервера приложений 1С в каталоге srvinfo\reg_1541\ накапливаются папки удаленных информационных баз. Для системных администраторов полезно автоматизировать их очистку. Проанализируем пример скрипта командной строки Windows (BAT), который сверяет существующие папки с реестром активных баз в файле 1CV8Reg.lst:


@echo off
IF NOT EXIST 1CV8Reg.lst GOTO :Err
FOR /D %%i in ("????????-????-????-????-????????????") DO Call:Sub %%i
echo Ok! Unused folders deleted!
pause
GOTO :EOF

:Err
echo Error! File 1CV8Reg.lst doesn't exist in current folder!
pause
GOTO :EOF

:Sub
findstr %~1 1CV8Reg.lst > nul
if errorlevel 1 (echo Remove %~1 ...)
if errorlevel 1 (RD /s /q %~1)
GOTO :EOF

Данный батник запускается непосредственно в папке кластера (например, C:\Program Files\1cv8\srvinfo\reg_1541\). Скрипт проверяет наличие текущего файла конфигурации кластера 1CV8Reg.lst, перебирает каталоги с именами в формате GUID и удаляет те папки, которые больше не числятся в списке активных баз.

← На главную