Журнал регистрации в клиент-серверной 1С: в какой папке лежит и почему не в SQL

· 9 мин

Содержание

Журнал регистрации 1С 8.3 при базе на SQL хранится не в базе данных MS SQL или PostgreSQL, а в файлах на сервере 1С:Предприятия. По умолчанию это папка C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\1Cv8Log\ на Windows и /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID базы>/1Cv8Log/ на Linux. В таблицах СУБД записей журнала нет.

Путаница понятна: данные базы лежат в SQL, значит, и журнал вроде бы должен быть там. Но журнал ведёт рабочий процесс кластера 1С, и пишет он его в каталог кластера. У файловой базы всё проще: та же папка 1Cv8Log лежит рядом с файлом 1Cv8.1CD.

Где физически лежат файлы журнала на сервере 1С

Каталог зависит от двух вещей: где хранятся данные кластера (srvinfo) и какой номер порта у менеджера кластера. Для стандартной установки порт 1541, поэтому папка называется reg_1541. Если кластер подняли на другом порту, например 2541, папка будет reg_2541.

Типичные пути:

СерверПуть к журналу
Windows, служба по умолчаниюC:\Program Files\1cv8\srvinfo\reg_1541\<GUID>\1Cv8Log\
Windows, каталог данных перенесён<путь из параметра -d службы>\reg_1541\<GUID>\1Cv8Log\
Linux/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID>/1Cv8Log/
Файловая база<каталог базы>\1Cv8Log\

📌 Каталог данных кластера задаётся при запуске агента сервера ключом -d. На Windows его видно в свойствах службы «Агент сервера 1С:Предприятия 8.3», в строке «Исполняемый файл». Если там стоит -d "D:\srvinfo", журналы ищите на диске D.

Как узнать GUID нужной базы

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

  1. Через rac. Выполните rac cluster list, скопируйте идентификатор кластера, затем rac infobase summary list --cluster=<id кластера>. В выводе у каждой базы есть поле infobase (это GUID) и name.
  2. Через файл реестра кластера. Откройте в блокноте reg_1541\1CV8Clst.lst и найдите поиском имя базы — рядом будет её GUID.
  3. По дате изменения. Если база одна активная, её папка с журналом обновляется прямо сейчас. Способ грубый, но для сервера с 2–3 базами работает.

Открывайте 1CV8Clst.lst только на чтение и не сохраняйте. Это реестр кластера, испорченный файл обернётся неработающим кластером.

Почему журнала нет в таблицах MS SQL и PostgreSQL

В базе на СУБД хранятся данные справочников, документов, регистров и служебные таблицы платформы: конфигурация, параметры, пользователи. Таблицы с событиями журнала регистрации в типовой схеме платформа не создаёт. Встроенной настройки «писать журнал в SQL» тоже нет.

Отсюда практические следствия:

  • 🗄️ резервная копия .bak из MS SQL или дамп PostgreSQL журнал не содержит;
  • 📦 выгрузка .dt из Конфигуратора тоже его не переносит;
  • 🔁 при переносе базы на другой сервер история событий остаётся на старом, если не скопировать папку 1Cv8Log вручную;
  • 🔍 трассировка SQL Profiler или журнал PostgreSQL показывают запросы к СУБД, а не события 1С — это разные журналы.

Если журнал всё-таки нужен в SQL, например для отчётов по аудиту, его выгружают внешними средствами. Есть открытые утилиты, которые читают файлы 1Cv8Log и складывают записи в MS SQL, ClickHouse или Elasticsearch. Это отдельная доработка, а не настройка платформы.

Чем журнал регистрации отличается от технологического журнала

Оба называют «логами 1С», но устроены по-разному:

Журнал регистрацииТехнологический журнал
Что пишетДействия пользователей, ошибки, изменения данныхВызовы сервера, запросы к СУБД, блокировки, исключения
Где включаетсяВ Конфигураторе или программноФайлом logcfg.xml в каталоге conf платформы
Где лежитsrvinfo\reg_1541\<GUID>\1Cv8LogВ каталоге, указанном в logcfg.xml
Кому нуженБухгалтеру, администратору базы, аудиторуАдминистратору сервера, специалисту по производительности

Если ищете, кто удалил документ, — вам журнал регистрации. Если ищете, почему тормозит проведение, — технологический журнал.

Форматы файлов: lgd и lgf/lgp

В папке 1Cv8Log встречаются файлы двух форматов.

  • 🆕 Новый формат — файл 1Cv8.lgd или набор файлов с датами в имени вида 20251001000000.lgd. Это база SQLite. Появился в 8.3.5 и используется по умолчанию для новых баз.
  • 📜 Старый, последовательный формат — файл 1Cv8.lgf (справочники пользователей, компьютеров, событий) и файлы *.lgp с самими записями за периоды. Обычный текст в кодировке UTF-8, читается любым редактором.

Базы, созданные давно и обновлённые на 8.3, часто так и живут на старом формате. Платформа сама понимает формат по тому, какой файл лежит в папке.

Сравнение по делу:

Признакlgd (SQLite)lgf + lgp
Скорость отбора в окне журналаВыше на больших объёмахПадает с ростом файлов
Чтение сторонними утилитамиЧерез SQLite-клиентКак текст, парсером
Устойчивость к сбою дискаФайл может повредиться целикомОбычно теряется хвост
РазмерОбычно большеКомпактнее

Настройка уровня и разделения журнала регистрации

Сколько событий попадает в журнал, задаётся для каждой базы отдельно. В Конфигураторе: Администрирование → Настройка журнала регистрации.

Доступны уровни:

  1. Не регистрировать.
  2. Регистрировать ошибки.
  3. Регистрировать ошибки и предупреждения.
  4. Регистрировать ошибки, предупреждения и информацию.
  5. Регистрировать все события.

Для рабочей бухгалтерской базы обычно оставляют «все события»: без примечаний и информационных записей не узнать, кто и когда изменил документ. Уровень «Не регистрировать» на рабочей базе оставлять нельзя — при разборе спорной проводки вы не найдёте ничего.

В том же окне задаётся разделение журнала по периодам. При разделении платформа начинает новый файл, например, каждый день или каждый месяц. Это главное средство от разрастания одного файла до десятков гигабайт.

Для баз на 50+ пользователей разумно делить журнал по дням или неделям. Отбор за конкретную дату тогда открывает один небольшой файл, а не весь архив.

Где посмотреть настройку без Конфигуратора

Уровень можно прочитать и сменить из встроенного языка — функциями ПолучитьИспользованиеЖурналаРегистрации() и УстановитьИспользованиеЖурналаРегистрации(). Для этого нужны административные права. Это удобно, когда Конфигуратор занят или базу нельзя открыть монопольно.

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

Как открыть и прочитать журнал регистрации

Штатный способ — через саму 1С:

  • 🖥️ в Конфигураторе: Администрирование → Журнал регистрации;
  • 🧾 в БП 3.0, ЗУП 3.1, УТ 11 в режиме Предприятия: Администрирование → Обслуживание → Журнал регистрации.

В окне журнала ставьте отбор сразу: период, пользователь, событие, метаданные. Без отбора на большом журнале окно может открываться минутами. Отбор «Данные. Удаление» и «Данные. Изменение» по нужному виду документа быстро отвечает на вопрос «кто это сделал».

Чтение файлов напрямую

Иногда база недоступна, а журнал нужен. Тогда работают с файлами:

  1. Скопируйте нужный файл .lgd или пару 1Cv8.lgf + *.lgp в отдельную папку. С живыми файлами на сервере напрямую не работайте — сервер держит их открытыми и продолжает писать.
  2. Файл .lgd откройте любым клиентом SQLite. Записи лежат в таблице EventLog, справочники пользователей и событий — в отдельных таблицах с кодами.
  3. Файлы .lgp открываются как текст. Каждая запись — блок в фигурных скобках, пользователь и событие закодированы числами, расшифровка — в 1Cv8.lgf.

Пример запроса к копии .lgd, который покажет число записей по дням. Дата в журнале хранится в десятитысячных долях секунды от 01.01.0001:

SELECT date(date / 10000 - 62135596800, 'unixepoch') AS day,
       COUNT(*) AS records
FROM EventLog
GROUP BY day
ORDER BY day DESC
LIMIT 30;

Такой запрос быстро показывает, в какие дни журнал внезапно распух — обычно это след регламентного задания, которое пишет тысячи записей.

Выгрузка средствами платформы

Метод ВыгрузитьЖурналРегистрации() выгружает записи с отбором в файл или таблицу значений. На его основе делают обработки для аудита и передачи журнала во внешние системы. Это надёжнее, чем разбирать файлы самому: формат хранения платформа может менять, а метод остаётся.

Очистка и ротация журнала регистрации

Журнал сам не удаляется. За два-три года на активной базе он вырастает до десятков гигабайт и съедает диск сервера.

Варианты очистки:

СпособКогда подходитРиски
Сокращение в КонфигуратореРазовая чистка старых записейДолго на больших журналах
Перенос старых файлов периода в архивЖурнал уже разделён по периодамНужно не трогать текущий файл
Перенос srvinfo на отдельный дискСистемный диск маленькийТребует остановки службы

Сокращение журнала

В Конфигураторе откройте Администрирование → Журнал регистрации, затем в меню действий окна выберите сокращение журнала. Укажите дату: записи до неё будут удалены. В том же диалоге можно сохранить удаляемые события в отдельный файл — используйте это, если журнал нужен для проверок.

Сокращение необратимо. Если в организации идёт налоговая проверка или внутреннее расследование, согласуйте удаление старых записей с главным бухгалтером или службой безопасности.

Ротация через разделение по периодам

Когда журнал разделён по периодам, старые файлы больше не используются. Их можно перенести в архив или удалить скриптом по расписанию. Текущий файл периода не трогайте.

Пример для Windows: перенос файлов .lgd старше 180 дней в архив.

robocopy "C:\Program Files\1cv8\srvinfo\reg_1541\<GUID>\1Cv8Log" "E:\archive\1Cv8Log" *.lgd /MOV /MINAGE:180

Ключ /MINAGE:180 отбирает только файлы, которые не менялись 180 дней, поэтому активный файл в перенос не попадёт.

Перенос каталога кластера на другой диск

Если на диске C не хватает места, переносят весь srvinfo: останавливают службу агента, копируют папку на другой диск и меняют ключ -d в параметрах запуска службы. Остановка службы обрывает все сеансы пользователей, поэтому делайте это вне рабочего времени и после предупреждения.

Перед переносом srvinfo
Выполнено: 0 / 6

Частые проблемы с журналом регистрации

Диагностика: выберите симптом

Отдельно о правах на файлы. Служба агента сервера работает от пользователя, обычно USR1CV8. Если папку srvinfo переносили или копировали, проверьте, что у этого пользователя есть полный доступ к новой папке. Без прав на запись журнал перестаёт пополняться, а база при этом продолжает работать — проблему замечают только при разборе инцидента.

Частые вопросы

Можно ли настроить хранение журнала регистрации в базе SQL?
Штатно нет. Журнал пишется в файлы кластера. В SQL его переносят внешними утилитами или своей обработкой через ВыгрузитьЖурналРегистрации().
Сохраняется ли журнал при восстановлении базы из бэкапа SQL?
Нет. Бэкап СУБД содержит только данные базы. Журнал на сервере 1С остаётся прежним и после восстановления продолжает пополняться.
Можно ли удалить папку 1Cv8Log целиком?
Технически да, при остановленной службе платформа создаст журнал заново. Но вся история событий пропадёт. Лучше сократить журнал или перенести старые файлы периодов в архив.
Почему у одной базы файлы lgd, а у другой lgf и lgp?
Формат определяется при создании журнала. Базы, начавшие жизнь на старых версиях платформы, часто сохраняют последовательный формат. На работу базы это не влияет.
Сколько места занимает журнал регистрации?
Зависит от числа пользователей и уровня записи. На базе с 20–30 пользователями при уровне «все события» за год набегает несколько гигабайт, при активном обмене данными — больше.