Журнал регистрации 1С — это ключевой инструмент для администрирования информационной базы, позволяющий фиксировать действия пользователей, ошибки системы и выполнение регламентных операций. Разберем основные вопросы, связанные с физическим хранением журнала, его сохранением при архивации информационной базы и способами ускорения поиска по большим объемам логов.
Проанализируем механику работы выгрузки данных платформы. При выполнении операции выгрузки информационной базы в файл (формат .dt) журнал регистрации не попадает в файл выгрузки. Это обусловлено тем, что лог хранятся отдельно от данных информационной базы в файловой системе сервера или локального ПК.
Тем не менее, при обычной загрузке или обновлении конфигурации существующий журнал регистрации не очищается:
1Cv8Log в папке с информационной базой. Файлы с расширениями .lgp или .lgd содержат историю событий. Если не удалять папку 1Cv8Log вручную, при загрузке новой конфигурации или разворачивании базы данные логов сохраняются.C:\Program Files\1cv8\srvinfo\reg_1541\GUID_базы\1Cv8Log). При загрузке файла .dt в существующую базу журнал остается на месте.Важный момент: Если восстанавливать базу из резервной копии СУБД (MS SQL, PostgreSQL) или пересоздавать информационную базу на сервере приложений, кластер 1С генерирует новый GUID базы. В этом случае создается новая папка логов, и прежний журнал регистрации перестанет отображаться в интерфейсе 1С, хотя physically останется в старой папке на сервере.
Рассмотрим структуру файлов журнала регистрации в зависимости от используемого формата:
.lgp / .lgf): Данные разбиваются на отдельные файлы по периодам (дни, месяцы). Это обеспечивает высокую надежность при внезапных сбоях и позволяет удобно архивировать старые периоды.1Cv8.lgd): Единый файл базы данных SQLite. При незапланированном отключении питания или сбое ОС файл .lgd может повредиться, что приведет к ошибкам чтения логов.На крупных базах (с объемом СУБД в сотни гигабайт и сотнями одновременных пользователей) стандартный поиск по журналу регистрации через интерфейс 1С может работать медленно. Разберем практические способы ускорения поиска и работы с логами:
Администрирование -> Настройка журнала регистрации -> Сократить.srvinfo или подкаталога 1Cv8Log на высокоскоростные накопители значительно ускоряет фильтрацию и чтение данных..lgp файлов во внешние колоночные СУБД или поисковые движки, где фильтрация данных происходит мгновенно.Разработчики 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 и удаляет те папки, которые больше не числятся в списке активных баз.