При работе с 1С:Предприятие 8.3 в клиент-серверном варианте администраторы часто сталкиваются с ситуацией, когда после удаления и повторного создания информационной базы в консоли сервера пропадают все записи журнала регистрации. Это происходит потому, что 1С хранит журнал регистрации отдельно от базы данных MSSQL. В этой статье мы подробно разберем, где искать «потерянные» логи, как идентифицировать нужную базу и как просмотреть историю действий пользователей, если старый журнал перестал отображаться в программе.
Прежде всего, проанализируем ситуацию: в отличие от самой конфигурации и учетных данных, которые хранятся в таблицах SQL-сервера, журнал регистрации (ЖР) представляет собой набор файлов на диске сервера 1С. Рассмотрим структуру папок рабочего каталога кластера. По умолчанию он находится по пути %ProgramFiles%\1cv8\srvinfo. Внутри этой директории располагается папка кластера (например, reg_1541), в которой содержатся подкаталоги с именами в формате GUID (уникальный идентификатор информационной базы).
Выясним причину исчезновения записей: когда вы удаляете базу из списка в консоли администрирования 1С и создаете её заново с тем же именем, сервер присваивает этой базе новый GUID. Соответственно, 1С начинает писать новый лог в новую пустую папку, а старые файлы остаются лежать в каталоге под старым идентификатором. База данных SQL подгружена старая, но связь с файлами журнала на диске потеряна. Для автоматического сопоставления каталогов с базами можно использовать обработку для анализа файла 1CV8Clst.lst и списка баз.
Разберем, как среди множества папок с непонятными именами (GUID) найти ту, которая принадлежала вашей базе до сбоя или замены диска. Рассмотрим по шагам:
1CV8Clst.lst, который находится в корне папки кластера (например, в reg_1541)."Ut11"). Рядом с именем будет указан текущий ID базы.reg_1541. Те папки, идентификаторы которых не значатся в 1CV8Clst.lst как активные, скорее всего, являются «ошметками» удаленных или пересозданных баз.1Cv8Log или по размеру файлов. Старый журнал за несколько лет будет весить значительно больше нового.Существует несколько форматов хранения журнала: старый текстовый (файлы .lgf и .lgp) и новый на базе SQLite (файл .lgd). Выбор метода просмотра зависит от формата.
Способ 1: Использование Конфигуратора (для формата .lgf/.lgp)
Рассмотрим ситуацию, когда у нас есть файлы .lgf (информационный файл) и множество файлов .lgp (данные по периодам). Чтобы просмотреть их:
1Cv8.lgf. Важно: файлы данных .lgp должны находиться в этой же папке, иначе список событий будет пустым.Если файл журнала очень большой (например, более 8 Гб), Конфигуратор может выдать ошибку "Недостаточно памяти". Это происходит потому, что 32-битный процесс не может обработать такой массив данных целиком. В этом случае перейдем к следующему способу.
Способ 2: Подмена файлов в копии информационной базы
Этот метод считается самым надежным, так как позволяет использовать стандартные фильтры 1С в режиме «Предприятие». Проанализируем алгоритм работы:
1C:Enterprise 8.3 Server Agent через оснастку services.msc.1Cv8Log новой базы и удалим её содержимое..lgp, .lgf или .lgd).Если в вашей базе используется современный формат журнала, вы увидите в папке 1Cv8Log один большой файл 1Cv8.lgd. Разберем, как работать с ним, если 1С отказывается его открывать. Посмотрим на структуру файла через внешние утилиты, такие как SQLiteStudio или DB Browser for SQLite. Файл .lgd — это обычная база данных SQLite.
Для продвинутых пользователей рассмотрим пример SQL-запроса для получения данных напрямую из таблицы EventLog. Помните, что время в 1С хранится специфическим образом (количество микросекунд с 0001 года). Выясним, как преобразовать его в читаемый вид:
SELECT
datetime(date / 10000 - 62135596800, 'unixepoch') AS HumanTime,
ConnectID,
Session,
AppID,
EventID,
Comment
FROM EventLog
ORDER BY date DESC
LIMIT 100;
Этот метод позволяет быстро найти записи, если штатные средства 1С «зависают» на больших объемах данных. Для анализа ключевых событий и ошибок доступа в восстановленном логе подойдёт обработка для экспресс-аудита журнала регистрации.
Чтобы в будущем не сталкиваться с потерей истории действий, проанализируем следующие рекомендации:
C переполняется из-за логов, не нужно переустанавливать сервер. Остановите службу 1С, перенесите папку srvinfo на другой диск и создайте связь командой mklink /d в командной строке Windows.Таким образом, мы рассмотрели все основные способы восстановления доступа к историческим данным журнала регистрации 1С. Помните, что главным ключом к решению задачи является понимание связи между GUID базы в кластере и физическим расположением файлов на диске сервера.