Журнал регистрации (ЖР) является критически важным инструментом для аудита действий пользователей и анализа ошибок в системе 1С:Предприятие. Однако со временем его объем может достигать сотен гигабайт, что создает нагрузку на дисковую подсистему и замедляет работу конфигуратора. В данной статье мы разберем по шагам, как восстановить журнал после переноса базы, как изменить его местоположение и как правильно выполнить процедуру сокращения (обрезки) старых данных.
Прежде чем приступать к манипуляциям с файлами, нам необходимо выяснить, в каком формате хранится ваш журнал. В современных версиях платформы 8.3 существует два основных формата:
.lgf содержит описание структуры, а данные распределены по файлам .lgp, именованным по периодам. Этот формат прост в копировании, но работает медленно на больших объемах.VACUUM).Проверить формат или сменить его можно в конфигураторе: перейдем в меню Администрирование — Настройка журнала регистрации. Рассмотрим ситуацию, когда база переносится на новый сервер, и нам нужно сохранить историю событий.
Когда мы переносим информационную базу между серверами, файлы журнала регистрации не переносятся автоматически внутри выгрузки .dt. Нам нужно восстановить их вручную. Выясним алгоритм действий:
srvinfo). Внутри него располагается папка reg_1541 (или другой порт кластера), а в ней — папки с именами в виде GUID (уникальных идентификаторов баз).m_cntxt.lst в корне каталога кластера.1Cv8Log. Именно сюда нужно скопировать сохраненный файл 1Cv8.lgd (для нового формата) или файлы .lgf и .lgp (для старого).Часто возникает задача хранить журнал отдельно от самой базы, например, на быстром SSD или, наоборот, на емком сетевом хранилище. Рассмотрим два основных способа решения этой задачи:
Способ 1: Символьные ссылки (Symlink). Это наиболее универсальный метод для системных администраторов. Мы можем обмануть операционную систему, заставив её думать, что папка находится локально, хотя физически она расположена на другом диске или сетевом ресурсе.
В Windows это делается командой в командной строке (от имени администратора):
mklink /D "C:\Program Files\1cv8\srvinfo\reg_1541\GUID-вашей-базы\1Cv8Log" "D:\Logs\1Cv8Log"
В Linux используется аналогичная команда ln -s. Перед созданием ссылки убедимся, что служба 1С остановлена, а целевая папка имеет соответствующие права доступа для пользователя, от имени которого запускается сервер 1С.
Способ 2: Использование файла conf.cfg. Мы можем изменить местоположение всего каталога srvinfo для кластера. В файле conf.cfg (находится в папке conf установленной платформы) добавим параметр:
conf.cfg: ConfLocation=D:\1C_Data
Если журнал вырос до 5 Гб или 50 Гб, его необходимо «обрезать», чтобы повысить стабильность системы. Разберем, как оставить данные только за последний год, удалив предыдущие 4 года.
.lgf) станет вашим архивом.Если вы используете новый формат журнала, важно помнить одну техническую деталь: при удалении записей физический размер файла 1Cv8.lgd на диске не уменьшается автоматически. SQLite просто помечает страницы как пустые для будущих записей.
Чтобы реально уменьшить файл, необходимо выполнить команду VACUUM. Это можно сделать с помощью сторонних утилит для работы с SQLite, предварительно остановив сервер 1С. Однако в большинстве случаев достаточно того, что файл перестанет расти, пока новые записи не заполнят освободившееся пространство.
Для продвинутых задач автоматизации мы можем использовать встроенный язык 1С. Рассмотрим метод СкопироватьЖурналРегистрации(). Он позволяет программно отобрать нужные записи и сохранить их во внешний файл или обработать алгоритмом.
Пример программного обращения к журналу:
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ДатаНачала", НачалоГода(ТекущаяДата()));
ПараметрыОтбора.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);
ВыгрузитьЖурналРегистрации("C:\Backup\errors.xml", ПараметрыОтбора);
Выясним причину, по которой стоит использовать программную выгрузку: это позволяет настроить автоматические уведомления администратору о критических ошибках в Slack, Telegram или по почте, не заходя в конфигуратор ежедневно.
В завершение проанализируем настройки детализации. Если ваша база работает интенсивно, а журнал регистрации не является объектом пристального внимания безопасности, рекомендуется установить уровень детализации «Регистрировать ошибки». Это значительно снизит нагрузку на сервер и замедлит рост файлов журнала по сравнению с режимом «Регистрировать все».
Регулярно (раз в месяц или квартал) проводите регламентное сокращение журнала. Это позволит держать размер базы в узде и обеспечит быстрый поиск информации в случае возникновения нештатных ситуаций.