Как восстановить, перенести на другой сервер и сократить журнал регистрации в 1С:Предприятии 8

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

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

Понимание форматов журнала регистрации

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

  1. Старый формат (.lgf, .lgp): Представляет собой набор текстовых файлов. Файл .lgf содержит описание структуры, а данные распределены по файлам .lgp, именованным по периодам. Этот формат прост в копировании, но работает медленно на больших объемах.
  2. Новый формат (.lgd): Это база данных в формате SQLite. Он более производителен, устойчив к сбоям и позволяет выполнять сложные запросы к журналу быстрее. Однако он требует больше внимания при обслуживании (например, выполнение VACUUM).

Проверить формат или сменить его можно в конфигураторе: перейдем в меню Администрирование — Настройка журнала регистрации. Рассмотрим ситуацию, когда база переносится на новый сервер, и нам нужно сохранить историю событий.

Восстановление журнала после переноса базы

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

  1. Остановим службу сервера 1С:Предприятия на целевом сервере. Это необходимо, чтобы избежать конфликтов при записи файлов.
  2. Найдем каталог данных сервера (обычно это srvinfo). Внутри него располагается папка reg_1541 (или другой порт кластера), а в ней — папки с именами в виде GUID (уникальных идентификаторов баз).
  3. Определим нужную папку. Проанализируем ситуацию: GUID базы на новом сервере будет отличаться от старого. Чтобы найти правильный путь, можно заглянуть в файл m_cntxt.lst в корне каталога кластера.
  4. Внутри папки с GUID базы создадим или найдем подкаталог 1Cv8Log. Именно сюда нужно скопировать сохраненный файл 1Cv8.lgd (для нового формата) или файлы .lgf и .lgp (для старого).
  5. Запустим службу сервера. Теперь при открытии журнала регистрации через конфигуратор или в режиме предприятия мы увидим всю старую историю.

Как вынести журнал регистрации на другой сервер или диск

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

  1. Зайдем в конфигуратор под пользователем с административными правами.
  2. Откроем Администрирование — Журнал регистрации.
  3. Нажмем кнопку Сократить.
  4. В появившемся окне укажем дату, «ДО» которой записи будут удалены (например, начало текущего года).
  5. Важный момент: Система предложит «Записать удаляемые записи в файл». Рекомендуем всегда делать это. Созданный файл (в формате .lgf) станет вашим архивом.
  6. Нажмем «ОК» и дождемся завершения процесса. Посмотрим на результат: в основной базе останутся только актуальные данные, а старые будут лежать в отдельном файле, который при необходимости можно открыть через Файл — Открыть.

Особенности работы с SQLite (.lgd)

Если вы используете новый формат журнала, важно помнить одну техническую деталь: при удалении записей физический размер файла 1Cv8.lgd на диске не уменьшается автоматически. SQLite просто помечает страницы как пустые для будущих записей.

Чтобы реально уменьшить файл, необходимо выполнить команду VACUUM. Это можно сделать с помощью сторонних утилит для работы с SQLite, предварительно остановив сервер 1С. Однако в большинстве случаев достаточно того, что файл перестанет расти, пока новые записи не заполнят освободившееся пространство.

Программный доступ и выгрузка данных

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

Пример программного обращения к журналу:


ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ДатаНачала", НачалоГода(ТекущаяДата()));
ПараметрыОтбора.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);

ВыгрузитьЖурналРегистрации("C:\Backup\errors.xml", ПараметрыОтбора);

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

Рекомендации по производительности

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

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

← На главную