Журнал регистрации в клиент-серверной 1С: в какой папке лежит и почему не в SQL
Содержание
Журнал регистрации 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 лежит по папке на каждую информационную базу кластера, и названы они идентификаторами, а не именами. Найти свою можно тремя способами:
- Через
rac. Выполнитеrac cluster list, скопируйте идентификатор кластера, затемrac infobase summary list --cluster=<id кластера>. В выводе у каждой базы есть полеinfobase(это GUID) иname. - Через файл реестра кластера. Откройте в блокноте
reg_1541\1CV8Clst.lstи найдите поиском имя базы — рядом будет её GUID. - По дате изменения. Если база одна активная, её папка с журналом обновляется прямо сейчас. Способ грубый, но для сервера с 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-клиент | Как текст, парсером |
| Устойчивость к сбою диска | Файл может повредиться целиком | Обычно теряется хвост |
| Размер | Обычно больше | Компактнее |
Настройка уровня и разделения журнала регистрации
Сколько событий попадает в журнал, задаётся для каждой базы отдельно. В Конфигураторе: Администрирование → Настройка журнала регистрации.
Доступны уровни:
- Не регистрировать.
- Регистрировать ошибки.
- Регистрировать ошибки и предупреждения.
- Регистрировать ошибки, предупреждения и информацию.
- Регистрировать все события.
Для рабочей бухгалтерской базы обычно оставляют «все события»: без примечаний и информационных записей не узнать, кто и когда изменил документ. Уровень «Не регистрировать» на рабочей базе оставлять нельзя — при разборе спорной проводки вы не найдёте ничего.
В том же окне задаётся разделение журнала по периодам. При разделении платформа начинает новый файл, например, каждый день или каждый месяц. Это главное средство от разрастания одного файла до десятков гигабайт.
Для баз на 50+ пользователей разумно делить журнал по дням или неделям. Отбор за конкретную дату тогда открывает один небольшой файл, а не весь архив.
Где посмотреть настройку без Конфигуратора
Уровень можно прочитать и сменить из встроенного языка — функциями ПолучитьИспользованиеЖурналаРегистрации() и УстановитьИспользованиеЖурналаРегистрации(). Для этого нужны административные права. Это удобно, когда Конфигуратор занят или базу нельзя открыть монопольно.
Консоль администрирования кластера уровень журнала регистрации не показывает. В ней видны базы и сеансы, но не настройки журнала. Если в инструкции просят «настроить журнал в консоли», обычно имеют в виду именно Конфигуратор.
Как открыть и прочитать журнал регистрации
Штатный способ — через саму 1С:
- 🖥️ в Конфигураторе:
Администрирование → Журнал регистрации; - 🧾 в БП 3.0, ЗУП 3.1, УТ 11 в режиме Предприятия:
Администрирование → Обслуживание → Журнал регистрации.
В окне журнала ставьте отбор сразу: период, пользователь, событие, метаданные. Без отбора на большом журнале окно может открываться минутами. Отбор «Данные. Удаление» и «Данные. Изменение» по нужному виду документа быстро отвечает на вопрос «кто это сделал».
Чтение файлов напрямую
Иногда база недоступна, а журнал нужен. Тогда работают с файлами:
- Скопируйте нужный файл
.lgdили пару1Cv8.lgf+*.lgpв отдельную папку. С живыми файлами на сервере напрямую не работайте — сервер держит их открытыми и продолжает писать. - Файл
.lgdоткройте любым клиентом SQLite. Записи лежат в таблицеEventLog, справочники пользователей и событий — в отдельных таблицах с кодами. - Файлы
.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 в параметрах запуска службы. Остановка службы обрывает все сеансы пользователей, поэтому делайте это вне рабочего времени и после предупреждения.
Частые проблемы с журналом регистрации
Администрирование → Настройка журнала регистрации. Чаще всего стоит «Регистрировать ошибки» или «Не регистрировать». Записи за прошлое время не восстановятся, только новые..lgd повреждён, обычно после аварийного отключения сервера. Остановите службу вне рабочего времени, переименуйте повреждённый файл, запустите службу — платформа создаст новый. Старый файл можно попробовать восстановить средствами SQLite на копии.1Cv8Log со старого сервера в папку с GUID базы на новом при остановленной службе.-regport и -d в параметрах службы агента.Отдельно о правах на файлы. Служба агента сервера работает от пользователя, обычно USR1CV8. Если папку srvinfo переносили или копировали, проверьте, что у этого пользователя есть полный доступ к новой папке. Без прав на запись журнал перестаёт пополняться, а база при этом продолжает работать — проблему замечают только при разборе инцидента.
Частые вопросы
Можно ли настроить хранение журнала регистрации в базе SQL?
ВыгрузитьЖурналРегистрации().