Как просмотреть и перенести старый журнал регистрации 1С при переезде с файлового режима на SQL?

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

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

Разберем по шагам все возможные способы решения этой проблемы — от быстрого просмотра старого журнала до полного объединения записей.

Причина проблемы и особенности хранения логов

Выясним причину, почему журнал не переносится автоматически. В современных платформах «1С:Предприятие 8.3» журнал регистрации хранится в файле формата 1Cv8.lgd (база данных SQLite). В файловом варианте этот файл находится в подкаталоге 1Cv8Log папки информационной базы.

Когда выгружается файл информационной базы .dt и загружается на сервер 1С, выгружаются только данные самой конфигурации и информационных таблиц. Файл 1Cv8.lgd в архив .dt не входит. Поэтому сервер 1С при первом запуске клиент-серверной базы создает абсолютно новый файл журнала с чистой историей.

Способ 1. Прямое открытие файла журнала через интерфейс 1С

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

  1. Запустим платформу «1С:Предприятие» или «Конфигуратор» в любой базе.
  2. Перейдем в главное меню Файл > Открыть.
  3. В окне выбора файла укажем путь к старому файлу 1Cv8.lgd, находящемуся в папке 1Cv8Log предыдущей файловой базы.
  4. Платформа откроет старый журнал в интерактивном окне с возможностью фильтрации по пользователям, событиям и датам.

Преимущество метода: полная безопасность для текущей клиент-серверной базы и отсутствие простоя системы.

Способ 2. Открытие старой файловой копии базы

Если каталоги старой файловой базы сохранились в исходном виде, можно запустить ее через список баз 1С. Поскольку каталог 1Cv8Log лежит внутри папки файловой базы, при входе в режим «1С:Предприятие» через раздел меню Администрирование > Журнал регистрации будет доступна вся история до момента переноса на SQL.

Способ 3. Подмена файла журнала в каталоге кластера сервера 1С

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

Важное предупреждение: при прямой замене файла текущие записи, созданные после переезда на SQL, будут полностью утеряны!

Разберем порядок действий по шагам:

  1. Остановим службу агента сервера 1С (1C:Enterprise Server Agent) через оснастку «Службы» Windows или командную строку, так как рабочий процесс сервера блокирует файл 1Cv8.lgd.
  2. Перейдем в каталог данных кластера сервера 1С. По умолчанию это путь: C:\Program Files\1cv8\srvinfo\reg_1541\ (или аналогичный каталог, заданный при установке сервера).
  3. Откроем файл 1CV8Clst.lst текстовым редактором и найдем идентификатор (GUID) нужной базы данных (например, f93bcebd-42d4-22a9-acca-dd54f003e44d).
  4. Перейдем в папку с найденным GUID, а внутри нее — в каталог 1Cv8Log.
  5. Сохраним существующий файл 1Cv8.lgd в надежное место (резервная копия).
  6. Скопируем старый файл 1Cv8.lgd из файловой базы в текущую папку 1Cv8Log на сервере.
  7. Запустим службу агента сервера 1С.

Способ 4. Программное объединение журналов регистрации

Если необходимо объединить историю событий «до» и «после» переноса в один общий файл, используем встроенную функцию платформы СкопироватьЖурналРегистрации().

Прямой перенос записей средствами SQL (через внешние утилиты управления SQLite) выполнять не рекомендуется. Внутри формата .lgd все пользователи, компьютеры, разделы и метаданные хранятся через внутренние ID. В новой базе эти идентификаторы формировались заново, поэтому прямое слияние таблиц через INSERT INTO приведет к рассинхронизации данных (события одного пользователя начнут отображаться под именем другого).

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


ИмяФайлаИсточника = "C:\OldBase\1Cv8Log\1Cv8.lgd";
ИмяФайлаПриемника = "C:\Program Files\1cv8\srvinfo\reg_1541\f93bcebd-42d4-22a9-acca-dd54f003e44d\1Cv8Log\1Cv8.lgd";

// Выполняем копирование и слияние записей
СкопироватьЖурналРегистрации(ИмяФайлаИсточника, ИмяФайлаПриемника);

Данный метод корректно сопоставляет внутренние структуры данных и дописывает недостающие события из файла-источника в файл-приемник без потери целостности.

Итоги и рекомендации

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

← На главную