Журнал регистрации сервера 1С: папка 1Cv8Log, формат, размер и уровень записи
Содержание
Журнал регистрации клиент-серверной базы лежит на сервере 1С, в каталоге реестра кластера: <каталог srvinfo>\reg_1541\<GUID базы>\1Cv8Log. На Windows по умолчанию это C:\Program Files\1cv8\srvinfo\reg_1541\..., на Linux — /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/.... В файловой базе журнал хранится рядом с файлом 1Cv8.1CD, в подпапке 1Cv8Log.
Обычно об этом вспоминают, когда на диске сервера внезапно кончилось место, а в папке одной базы обнаружилось 40 ГБ логов. Или когда аудитор просит выгрузить, кто удалил документ полгода назад. В обоих случаях сначала надо найти верную папку: на сервере с двадцатью базами каталогов 1Cv8Log тоже двадцать, и названы они не именами баз.
Как сервер 1С ведёт журнал: rphost, кластер и сервис журналов
Журнал регистрации — это журнал событий самой информационной базы: входы и выходы пользователей, запись и удаление объектов, ошибки, обновление конфигурации , фоновые задания. Он не связан с СУБД. Даже если база лежит в PostgreSQL или MS SQL, журнал регистрации хранится в файлах на сервере 1С, а не в таблицах СУБД.
Цепочка в клиент-серверном варианте такая:
- 🖥 ragent — агент сервера, принимает подключения (порт 1540) и хранит реестр кластера.
- 🗂 rmngr — менеджер кластера (порт 1541). Среди его сервисов есть «Сервис журналов регистрации».
- ⚙️ rphost — рабочие процессы. Код пользователей выполняется здесь, и события, которые возникают при работе, попадают в журнал базы.
Отсюда практический вывод: журнал пишется на диск того сервера, где работает кластер, а не на компьютер пользователя. Если кластер состоит из нескольких рабочих серверов, искать папку нужно на центральном сервере кластера, в каталоге его реестра.
Журнал регистрации и технологический журнал — разные вещи. Технологический журнал (ТЖ) включают файлом logcfg.xml в каталоге conf платформы, он пишет события процессов кластера: вызовы, блокировки, исключения. Журнал регистрации пишет события базы и настраивается из самой базы.
Где лежат файлы журнала регистрации на Windows и Linux
Типовые пути
| Вариант | Где искать 1Cv8Log |
|---|---|
| Сервер 1С на Windows, установка по умолчанию | C:\Program Files\1cv8\srvinfo\reg_1541\<GUID>\1Cv8Log |
Сервер 1С на Linux (пользователь usr1cv8) | /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID>/1Cv8Log |
| Файловая база | <каталог базы>\1Cv8Log |
Число 1541 в имени папки — порт менеджера кластера. Если кластер поднят на другом порту, например 2541, папка будет называться reg_2541.
Если путь не совпадает
Каталог реестра задаёт параметр -d при запуске агента. Проверить его просто.
- Windows. Откройте
services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3», откройте свойства. В строке «Исполняемый файл» будет примерно такое:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "D:\1C\srvinfo" -debug
Значение после -d и есть каталог srvinfo.
- Linux. Посмотрите командную строку процесса агента:
ps -ef | grep ragent
systemctl cat srv1cv8-8.3.24.1548@default 2>/dev/null
Имя юнита зависит от версии платформы и способа установки. Если systemctl cat ничего не вернул, ориентируйтесь на вывод ps: там будет тот же параметр -d.
Как узнать GUID нужной базы
Папки в reg_1541 названы не именами баз, а идентификаторами вида 4f2a1c8e-.... Соответствие хранится в файле реестра кластера 1CV8Clst.lst в той же папке reg_1541. Это текстовый файл: откройте его копию в редакторе и найдите имя базы, рядом будет её GUID.
Select-String -Path "C:\Program Files\1cv8\srvinfo\reg_1541\1CV8Clst.lst" -Pattern "buh_main" -Context 0,1
Открывайте только копию 1CV8Clst.lst или режим чтения. Случайно сохранённый с правкой файл реестра может сломать список баз кластера.
Второй способ, когда баз немного: зайдите в нужную базу, сделайте любое действие, которое пишется в журнал (например, войдите и выйдите), и посмотрите, в какой папке 1Cv8Log изменилась дата файлов.
Формат файлов: lgf и lgp против lgd
Внутри 1Cv8Log вы увидите один из двух наборов файлов.
| Формат | Файлы | Что внутри | Когда удобнее |
|---|---|---|---|
| Последовательный (старый) | 1Cv8.lgf + много *.lgp | lgf — словарь (пользователи, компьютеры, метаданные), lgp — записи событий по периодам, имя файла = дата начала периода | Большие базы с интенсивной записью, удобная ротация файлами |
| SQLite (новый) | 1Cv8.lgd | Один файл базы SQLite | Небольшие базы, быстрые отборы в просмотре |
Платформа определяет формат по тому, какой файл лежит в папке. На этом держится известный приём: чтобы перевести журнал базы на другой формат, папку 1Cv8Log убирают в архив и создают пустую с одним пустым файлом нужного типа — 1Cv8.lgf или 1Cv8.lgd. После этого платформа начнёт писать в новом формате с нуля.
Делайте это только при остановленной службе сервера 1С и с сохранённой копией старой папки. Остановка службы обрывает сеансы всех пользователей кластера, так что выбирайте нерабочее время и предупредите людей заранее. Старый журнал при этом не конвертируется: он остаётся в архиве, и прочитать его можно, подложив папку обратно или открыв её копию в файловой базе.
Настройка журнала регистрации: уровень, разделение, сокращение
Консоль администрирования кластера показывает базы, сеансы и рабочие процессы, но уровень записи журнала там не настраивается. Он задаётся из самой базы.
Через Конфигуратор
- Откройте базу в режиме Конфигуратора под администратором.
- Меню
Администрирование → Настройка журнала регистрации. - Выберите уровень записи и вариант разделения журнала по периодам.
- Нажмите «ОК». Настройка действует сразу, перезапуск службы не нужен.
Уровни идут по возрастанию объёма:
- 🚫 «Не регистрировать» — журнал не ведётся. Для рабочей базы не советую: разбирать инциденты будет не по чему.
- ❗ «Регистрировать ошибки».
- ⚠️ «Регистрировать ошибки и предупреждения».
- ℹ️ «Регистрировать ошибки, предупреждения и информацию».
- 📝 «Регистрировать все события» — включая примечания, в том числе каждую запись объекта.
Из режима «Предприятие»
В типовых конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) просмотр журнала открывается из Администрирование → Обслуживание → Журнал регистрации. В части релизов раздел называется «Поддержка и обслуживание». Просмотр журнала требует административных прав: обычный бухгалтер этой ссылки не увидит. Если раздела не видно, журнал всегда доступен через Все функции → Стандартные → Журнал регистрации (команду «Все функции» включают в параметрах программы).
Программно уровень меняется методом УстановитьИспользованиеЖурналаРегистрации(). Пригодится, если нужно временно включить «Все события» для расследования из обработки, а потом вернуть прежний уровень.
Чек-лист настройки для рабочей базы
Размер журнала и ротация логов
Журнал сам не очищается. В базе на 50 активных пользователей с уровнем «Все события» он легко прирастает на несколько гигабайт в месяц, а обработки, которые пишут в журнал по каждой строке, раздувают его ещё быстрее.
Разделение по периодам
В той же форме Администрирование → Настройка журнала регистрации задаётся, как дробить файлы журнала: например, по дням или по месяцам. В последовательном формате каждый период становится отдельным файлом .lgp. Это и есть встроенная ротация: старые файлы легко увидеть по имени и унести в архив.
Сокращение журнала
В форме настройки есть кнопка «Сократить». Она удаляет записи старше выбранной даты и предлагает сохранить удаляемую часть в файл. Сохраняйте: через полгода может понадобиться ответ на вопрос «кто провёл этот документ задним числом».
Ротация средствами ОС
Для последовательного формата архивацию часто делают скриптом: файлы .lgp старше N дней пакуются и уносятся на другой диск. Пример для PowerShell:
$log = "C:\Program Files\1cv8\srvinfo\reg_1541\4f2a1c8e-0000-0000-0000-000000000000\1Cv8Log"
$dst = "E:\Archive\1Cv8Log\buh_main"
Get-ChildItem $log -Filter *.lgp |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-90) } |
ForEach-Object { Compress-Archive -Path $_.FullName -DestinationPath "$dst\$($_.BaseName).zip"; Remove-Item $_.FullName }
Никогда не трогайте 1Cv8.lgf — это словарь, без него .lgp не читаются. Не удаляйте текущий (последний по дате) файл .lgp: в него идёт запись. Для формата lgd скриптовая ротация не подходит, используйте «Сократить».
Если диск под srvinfo маленький
Каталог реестра можно перенести на другой диск: остановить службу, скопировать srvinfo, поправить параметр -d в командной строке службы и запустить её снова. Остановка обрывает сеансы, поэтому только в окно обслуживания. Альтернатива без смены -d — точка соединения NTFS (mklink /J) для папки 1Cv8Log конкретной базы. Этот вариант тоже делается при остановленной службе.
Как читать и разбирать записи журнала
Встроенный просмотр
Окно журнала одинаково в Конфигураторе (Администрирование → Журнал регистрации) и в «Предприятии». Главный инструмент — отбор: по периоду, пользователю, компьютеру, событию, метаданным, уровню важности, статусу транзакции.
Типовые сценарии:
- 🔍 Кто удалил документ. Отбор по событию «Данные. Удаление» и по виду метаданных, например «Документ. Реализация товаров и услуг».
- 🔐 Кто заходил в базу ночью. Событие «Сеанс. Начало», период 00:00–06:00.
- 🧯 Почему упало обновление. Уровень «Ошибка», период — время обновления, событие из группы «Информационная база».
На больших журналах сначала сужайте период, потом добавляйте остальные условия. Отбор по полю «Комментарий» без периода на журнале в десятки гигабайт может работать очень долго.
Выгрузка и программный разбор
Метод ВыгрузитьЖурналРегистрации(ИмяФайла, Отбор) выгружает записи в XML-файл, а ЗаписьЖурналаРегистрации() позволяет своим обработкам писать собственные события. Выгрузку удобно разбирать уже вне 1С, в Excel или скриптом.
Файл 1Cv8.lgd — обычная база SQLite. Его копию можно открыть любым просмотрщиком SQLite и выполнять запросы. Файлы .lgp — текст, но ссылки на пользователей и метаданные там закодированы номерами из словаря 1Cv8.lgf, поэтому без разбора словаря читать их неудобно.
Для разбора открывайте копию файлов, а не рабочие. Копия снимается без остановки службы, но последний .lgp может оказаться записанным не до конца — для анализа это обычно некритично.
Сколько стоит журналирование производительности
Запись в журнал — дисковая операция на сервере 1С. При разумном уровне её не видно. Проблемы начинаются в трёх случаях.
| Ситуация | Что происходит | Что сделать |
|---|---|---|
| Уровень «Все события» в базе с активным обменом | Каждая запись объекта даёт событие, журнал растёт быстро, нагружается диск | Оставить «Ошибки, предупреждения и информация», «Все события» включать на время расследования |
Журнал в формате lgd в несколько десятков ГБ | Просмотр и отборы тормозят, растёт время записи | Сократить журнал или перейти на последовательный формат |
srvinfo на одном диске с базами СУБД и временными файлами | Конкуренция за диск, на пике замедляются все базы | Вынести srvinfo или 1Cv8Log на отдельный диск |
Отдельная беда — переполнение диска. Когда место кончается, сервер не может писать журнал и временные файлы, и проблемы получают все базы кластера, а не одна. Поэтому мониторинг свободного места на диске с srvinfo нужен не меньше, чем на диске с базами СУБД.
Частые вопросы администраторов
Можно ли хранить журнал регистрации в СУБД, а не в файлах?
Что будет, если удалить папку 1Cv8Log?
Журнал пропал после переноса базы на другой сервер. Почему?
.dt и перенос базы в СУБД не включают журнал регистрации. Его нужно отдельно скопировать из папки 1Cv8Log старого сервера в папку базы с новым GUID.Можно ли открыть журнал серверной базы, если сервер уже не работает?
.dt), замените её папку 1Cv8Log скопированной с сервера и откройте журнал. С той же конфигурацией объекты метаданных отобразятся по именам, а не идентификаторами.Куда пишутся события, если база файловая, но опубликована на веб-сервере?
1Cv8Log рядом с файлом 1Cv8.1CD. Учётной записи веб-сервера нужны права на запись в эту папку, иначе события не попадут в журнал.