При переносе информационной базы 1С из файлового режима в клиент-серверный (на СУБД MS SQL Server или PostgreSQL) специалисты часто сталкиваются с ситуацией, когда журнал регистрации в новой базе начинается «с чистого листа». Данные журнала регистрации не хранятся внутри базы данных СУБД, а ведутся в виде отдельных файлов на сервере. Если не перенести папку с логами вручную, старая история действий пользователей останется в каталоге файловой базы.
Разберем по шагам все возможные способы решения этой проблемы — от быстрого просмотра старого журнала до полного объединения записей.
Выясним причину, почему журнал не переносится автоматически. В современных платформах «1С:Предприятие 8.3» журнал регистрации хранится в файле формата 1Cv8.lgd (база данных SQLite). В файловом варианте этот файл находится в подкаталоге 1Cv8Log папки информационной базы.
Когда выгружается файл информационной базы .dt и загружается на сервер 1С, выгружаются только данные самой конфигурации и информационных таблиц. Файл 1Cv8.lgd в архив .dt не входит. Поэтому сервер 1С при первом запуске клиент-серверной базы создает абсолютно новый файл журнала с чистой историей.
Рассмотрим самый быстрый и безопасный способ просмотреть архивные записи, если журнал нужен эпизодически для расследования инцидентов. Нам не требуется останавливать сервер или подменять рабочие файлы.
1Cv8.lgd, находящемуся в папке 1Cv8Log предыдущей файловой базы.Преимущество метода: полная безопасность для текущей клиент-серверной базы и отсутствие простоя системы.
Если каталоги старой файловой базы сохранились в исходном виде, можно запустить ее через список баз 1С. Поскольку каталог 1Cv8Log лежит внутри папки файловой базы, при входе в режим «1С:Предприятие» через раздел меню Администрирование > Журнал регистрации будет доступна вся история до момента переноса на SQL.
Проанализируем вариант полного замещения текущего журнала прошлым файлом. Этот способ подходит, если с момента переезда прошло мало времени (например, пару дней) и текущие новые записи журнала не представляют ценности.
Важное предупреждение: при прямой замене файла текущие записи, созданные после переезда на SQL, будут полностью утеряны!
Разберем порядок действий по шагам:
1Cv8.lgd.C:\Program Files\1cv8\srvinfo\reg_1541\ (или аналогичный каталог, заданный при установке сервера).1CV8Clst.lst текстовым редактором и найдем идентификатор (GUID) нужной базы данных (например, f93bcebd-42d4-22a9-acca-dd54f003e44d).1Cv8Log.1Cv8.lgd в надежное место (резервная копия).1Cv8.lgd из файловой базы в текущую папку 1Cv8Log на сервере.Если необходимо объединить историю событий «до» и «после» переноса в один общий файл, используем встроенную функцию платформы СкопироватьЖурналРегистрации().
Прямой перенос записей средствами 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С.