При миграции информационной базы 1С из файлового режима работы в клиент-серверный вариант администраторы часто сталкиваются с тем, что стандартная выгрузка и загрузка через файл выгрузки данных .dt не переносит историю событий. Журнал регистрации (ЖР) хранится отдельно от таблиц конфигурации и данных СУБД, поэтому его перенос требует выполнения отдельных шагов.
Разберем подробно структуру хранения журнала регистрации, выясним, как сопоставить серверную базу с ее каталогом на диске, и рассмотрим основные способы переноса истории событий.
В платформе 1С:Предприятие 8 журнал регистрации может храниться в двух форматах:
.elf, .log, .eld, разделенных по периодам.1Cv8.lgd (а также сопутствующие временные файлы 1Cv8.lgd-wal, 1Cv8.lgd-shm, 1Cv8.lgd-journal).В файловой информационной базе каталог журнала регистрации 1Cv8Log находится непосредственно внутри папки самой базы (рядом с файлом 1Cv8.1CD).
В серверном варианте журнал располагается в каталоге данных кластера серверов 1С (по умолчанию для 64-разрядной службы Windows путь выглядит как C:\Program Files\1cv8\srvinfo\reg_1541\<GUID_Информационной_Базы>\1Cv8Log\).
Поскольку на сервере каталоги баз именуются уникальными идентификаторами (GUID/UUID), проанализируем способы быстрого определения нужного каталога, чтобы не искать его вручную среди множества папок:
...\srvinfo\reg_1541) и откроем текстовым редактором файл 1CV8Clst.lst. Найдем по имени базы строку Name="Имя_Базы" и скопируем соответствующий параметр ID="...".rac infobase --cluster=<ID_Кластера> summary list для получения списка баз с их UUID.Разберем по шагам наиболее быстрый способ переноса, когда форматы журнала в исходной и целевой базах совпадают.
1C:Enterprise 8.3 Server Agent), чтобы снять файловые блокировки с 1Cv8.lgd.1Cv8Log из папки файловой базы в целевой каталог ...\srvinfo\reg_1541\<GUID_Базы>\1Cv8Log\ на сервере.usr1cv8), необходимо предоставить полные права (чтение, запись, изменение) на папку 1Cv8Log и все вложенные файлы. В ОС Linux скорректируем владельца каталога командой:
chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID_Базы>/1Cv8Log
Если файловая база использовала старый формат журнала (набор файлов .elf), а серверная база настроена на новый формат (1Cv8.lgd), или наоборот, простое копирование не приведет к результату. В этом случае воспользуемся штатной консольной утилитой logconvert, которая находится в каталоге bin установленной платформы 1С.
Рассмотрим синтаксис команд для преобразования журнала:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\logconvert.exe" -d "C:\BaseFolder\1Cv8Log" -v 2
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\logconvert.exe" -d "C:\BaseFolder\1Cv8Log" -v 1
После успешной конвертации полученный файл или структуру файлов переносим в каталог сервера 1С с соблюдением прав доступа учетной записи службы.
В ситуациях, когда требуется выборочно перенести события за определенный период или сохранить архив журнала для работы в отдельной базе без остановки кластера, применим метод встроенного языка СкопироватьЖурналРегистрации().
Посмотрим на пример программной выгрузки событий во внешний файл:
ФильтрСобытий = Новый Структура;
ФильтрСобытий.Вставить("ДатаНачала", НачалоГода(ТекущаяДата()));
ФильтрСобытий.Вставить("ДатаОкончания", КонецДня(ТекущаяДата()));
ИмяФайлаАрхива = "C:\Backups\LogArchive.lgd";
// Выгружаем журнал регистрации во внешний файл формата SQLite
СкопироватьЖурналРегистрации(ИмяФайлаАрхива, ФильтрСобытий);
Полученный файл архива можно открыть в режиме 1С:Предприятия через меню Файл — Открыть для анализа истории действий пользователей без нагрузки на рабочую серверную базу данных.