Журнал регистрации и технологический журнал 1С: где лежат файлы и как их читать
Содержание
На сервере 1С 8.3 под Windows журнал регистрации базы лежит в каталоге C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\1Cv8Log\. На Linux — в /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID базы>/1Cv8Log/. У файловой базы папка 1Cv8Log находится прямо в каталоге базы, рядом с 1Cv8.1CD.
Второй вид логов 1С — технологический журнал. Он по умолчанию выключен, и путь к его файлам вы задаёте сами в logcfg.xml. Когда база тормозит, падает рабочий процесс или ловятся блокировки, без него не обойтись.
Какие логи пишет 1С и в каких папках они лежат
У платформы 1С:Предприятие 8.3 несколько независимых журналов. Путать их не стоит: каждый отвечает на свой вопрос.
| Журнал | Что пишет | Где лежит | Включён по умолчанию |
|---|---|---|---|
| 📘 Журнал регистрации | Действия пользователей, проведение документов, ошибки, входы и выходы | <srvinfo>\reg_<порт>\<GUID>\1Cv8Log\ или <каталог базы>\1Cv8Log\ | Да |
| 🔧 Технологический журнал (ТЖ) | Внутренние события платформы: запросы к СУБД, блокировки, исключения, вызовы | Каталог из logcfg.xml | Нет |
| 💥 Дампы | Снимки памяти процесса при аварийном завершении | Каталог из logcfg.xml или по умолчанию в каталоге логов | Частично |
| 🪟 Журнал событий Windows | Запуск и остановка службы агента сервера, сбои службы | «Просмотр событий» → «Журналы Windows» → «Приложение» | Да |
Части пути к журналу регистрации на сервере:
- 📁
srvinfo— рабочий каталог кластера. При установке службы по умолчанию этоC:\Program Files\1cv8\srvinfo. Если при установке указали другой каталог, его видно в параметре-dкомандной строки службы. - 🔢
reg_1541— папка кластера. Число в имени — порт менеджера кластера. Если кластер работает на другом порту (например, 2541), папка будетreg_2541. - 🆔
<GUID базы>— уникальный идентификатор информационной базы, например3f1c2a7e-…. Имени базы в пути нет. - 📂
1Cv8Log— сам журнал регистрации.
Как узнать GUID нужной базы
В папке reg_1541 лежат десятки каталогов с GUID, и по имени базу не найти. Есть три рабочих способа.
- Откройте файл
reg_1541\1CV8Clst.lstв Блокноте (только на чтение, не сохраняйте). Найдите поиском имя базы — GUID стоит перед ним в той же записи. - Отсортируйте папки по дате изменения. Если пользователи работают в одной базе прямо сейчас, её каталог изменился последним.
- В PowerShell найдите строку с именем базы в файле реестра кластера:
Select-String -Path "C:\Program Files\1cv8\srvinfo\reg_1541\1CV8Clst.lst" -Pattern "buh_main" | Select-Object -First 1
Файл 1CV8Clst.lst — реестр кластера. Не редактируйте и не пересохраняйте его. Испорченный реестр приводит к тому, что базы пропадают из консоли администрирования.
Форматы журнала регистрации: .lgf, .lgp и .lgd
Откройте папку 1Cv8Log и посмотрите на расширения файлов. По ним сразу видно формат журнала.
- 📄 Последовательный формат — файл-словарь
1Cv8.lgfи набор файлов*.lgpс событиями. Имя.lgpсодержит дату начала периода, например20261001000000.lgp. Это текстовые файлы, их можно открыть в редакторе и искать по нимgrepилиfindstr. - 🗃 Формат SQLite — один файл
1Cv8.lgd. Это база данных SQLite, она появилась в платформе 8.3.5. Читается быстрее при отборах в интерфейсе, но разрастается в один большой файл.
Какой формат у вашей базы — определяется при создании базы и может быть изменён. Переводить журнал между форматами имеет смысл, если файл .lgd вырос до десятков гигабайт и его неудобно чистить по частям.
💡 Для резервного копирования и архивации удобнее последовательный формат: старые .lgp за закрытые периоды не меняются и спокойно уходят в архив.
Уровень детализации и ротация журнала регистрации
Объём журнала зависит от двух настроек: что регистрировать и как делить файлы по периодам. Обе задаются в Конфигураторе.
Где меняется уровень регистрации
- Откройте базу в режиме Конфигуратора.
- Выберите
Администрирование → Настройка журнала регистрации. - В группе «Регистрировать» выберите уровень.
- Нажмите «ОК». Монопольный доступ для этого не нужен.
| Уровень | Что попадает в журнал | Когда выбирать |
|---|---|---|
| Не регистрировать | Ничего | Почти никогда: теряются следы ошибок и действий |
| Ошибки | Только ошибки | Тяжёлая база, мало места на диске |
| Ошибки и предупреждения | + предупреждения | Компромисс для крупных баз |
| Ошибки, предупреждения и информация | + информационные события | Обычный рабочий режим |
| Все события | + примечания | Разбор инцидента, аудит действий пользователей |
Разделение по периодам и сокращение
В том же окне задаётся период, на который делится журнал: день, неделя, месяц или год. В последовательном формате на каждый период создаётся отдельный .lgp. Для базы на 50–100 пользователей разумно делить по дням или неделям: файл за неделю обычно занимает сотни мегабайт, а не десятки гигабайт.
Кнопка «Сократить» там же удаляет события до указанной даты. Перед удалением платформа предлагает сохранить их в отдельный файл — соглашайтесь, если журнал может понадобиться для разбора спорных ситуаций.
Сокращение журнала необратимо. Если в базе ведётся аудит действий пользователей, согласуйте срок хранения с руководителем или службой безопасности до чистки.
Как читать журнал регистрации в самой 1С
Файлы .lgp читаемы, но удобнее смотреть журнал из клиента 1С: там работают отборы по пользователю, событию, метаданным и периоду.
Где открыть журнал в типовых конфигурациях
| Где открыть | Путь |
|---|---|
| Бухгалтерия 3.0, ЗУП 3.1, УТ 11 | Администрирование → Обслуживание → Протоколы работы → Журнал регистрации |
| Любая конфигурация | Главное меню → Функции для технического специалиста → Стандартные → Журнал регистрации |
| Конфигуратор | Администрирование → Журнал регистрации |
Если пункта «Функции для технического специалиста» нет, включите флажок его отображения в Главное меню → Сервис → Параметры. В старых релизах платформы эта команда называлась «Все функции».
Какие отборы ставить в первую очередь
- 🔴 Уровень «Ошибка» + период за сутки — первый взгляд на то, что ломается.
- 👤 Пользователь — кто проводил, удалял или менял документ.
- 📑 Метаданные — все события по конкретному объекту, например документу «Реализация (акт, накладная, УПД)».
- 🧾 Событие «Данные. Удаление» — кто удалил объект и когда.
- 🔑 События «Сеанс. Аутентификация» и «Сеанс. Ошибка аутентификации» — попытки входа, в том числе неудачные.
Колонка «Данные» содержит ссылку на объект, а «Комментарий» — текст ошибки. Двойной щелчок по строке открывает полное описание события.
💡 Отбор по уровню и периоду в журнале на 20 ГБ может считаться минутами. Сужайте период до часа вокруг инцидента — это быстрее любых других ухищрений.
Выгрузить отобранные события в файл можно через контекстное меню журнала или программно методом ВыгрузитьЖурналРегистрации() — результат сохраняется в XML и удобен для передачи разработчику.
Файловая и клиент-серверная база: в чём разница для логов
Журнал регистрации есть в обоих вариантах, но живёт по-разному.
| Признак | Файловая база | Клиент-серверная база |
|---|---|---|
| Где журнал регистрации | <каталог базы>\1Cv8Log\ | <srvinfo>\reg_<порт>\<GUID>\1Cv8Log\ на сервере 1С |
| Кто пишет | Клиентский процесс каждого пользователя | Рабочий процесс сервера rphost |
| Где ТЖ | На каждом компьютере, где запущен клиент | На сервере 1С (и при необходимости на клиентах) |
| Права на папку | Нужна запись у всех пользователей базы | Нужна запись у учётной записи службы (USR1CV8 или заданной) |
Отсюда типичные ловушки:
- 🔒 В файловой базе на сетевом диске журнал пишется по сети. У пользователя без прав на запись в
1Cv8Logвозникают ошибки при входе или записи событий. - 🗄 В клиент-серверной базе журнал не хранится в СУБД. Резервная копия SQL или PostgreSQL его не содержит. Если журнал нужен для аудита, копируйте папку
1Cv8Logотдельно. - 🖥 Если в кластере несколько рабочих серверов, журнал регистрации лежит на центральном сервере кластера, а технологический журнал пишется на каждом сервере своим процессом.
Технологический журнал: настройка logcfg.xml для поиска проблем
Журнал регистрации отвечает на вопрос «кто и что сделал». Почему база тормозит, видно только в технологическом журнале.
Куда положить logcfg.xml
Платформа ищет logcfg.xml в каталоге conf:
- 🪟 Windows:
C:\Program Files\1cv8\conf\— для всех установленных версий платформы, либоC:\Program Files\1cv8\<версия>\bin\conf\— только для одной версии. - 🐧 Linux:
/opt/1cv8/conf/или каталогconfвнутри папки конкретной версии в/opt/1cv8/x86_64/.
Перезапуск службы не нужен: платформа перечитывает файл примерно раз в минуту. Удалили файл — запись ТЖ прекратится так же без перезапуска.
Пример настройки под ошибки и блокировки
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1c_techlog\errors" history="72">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="TLOCK"/>
</event>
<event>
<eq property="name" value="TTIMEOUT"/>
</event>
<event>
<eq property="name" value="TDEADLOCK"/>
</event>
<property name="all"/>
</log>
<dump create="true" location="D:\1c_techlog\dumps" type="0"/>
</config>
Что здесь важно:
- 📍
location— каталог для логов. Выносите его на отдельный диск, а не на системный. - ⏳
history— сколько часов хранить файлы. Платформа сама удаляет более старые. 72 часа = 3 суток. - 🏷 Внутри каталога появятся папки по процессам:
rphost_4812,rmngr_3020,ragent_2964(число — PID). В них файлы по часам с именем вида26100714.log— год, месяц, день, час.
Какие события включать
| Событие | Что ловит | Объём записи |
|---|---|---|
EXCP | Исключения и аварии процессов | Небольшой |
TLOCK, TTIMEOUT, TDEADLOCK | Управляемые блокировки, ожидания и взаимоблокировки | Средний |
DBMSSQL, DBPOSTGRS | Запросы к MS SQL и PostgreSQL | Большой |
CALL, SCALL | Вызовы с клиента на сервер, длительность, память | Большой |
CONN, PROC | Соединения и жизнь рабочих процессов | Небольшой |
Не включайте все события без фильтров на рабочем сервере. DBMSSQL и CALL в нагруженной базе пишут гигабайты в час и сами замедляют работу. Для таких событий ставьте отбор по длительности и короткий history.
Отбор по длительности добавляют условием внутри <event>, например <gt property="duration" value="5000000"/>. В актуальных версиях 8.3 длительность считается в микросекундах, значит 5 000 000 — это 5 секунд.
Диагностика производительности и ошибок по логам
Порядок разбора, который экономит время: сначала журнал регистрации, потом ТЖ.
- В журнале регистрации найдите время инцидента и пользователя. Запишите точную минуту.
- Откройте в каталоге ТЖ файлы за этот час во всех папках
rphost_*. - Ищите события по типу. На Windows подойдёт
findstr, на Linux —grep.
findstr /S /C:",TTIMEOUT," D:\1c_techlog\errors\*.log
findstr /S /C:",TDEADLOCK," D:\1c_techlog\errors\*.log
grep -rh ",EXCP," /var/log/1c/techlog/ | head -50
- В найденной строке смотрите свойства
Usr(пользователь),Context(строка кода конфигурации) иRegions(таблицы, на которых случилась блокировка).
Типовые картины в логах
💡 Если строка ТЖ разбита переносами, свойство Sql или Context занимает несколько строк. Для разбора больших объёмов удобнее скрипт, который склеивает строки по шаблону времени мм:сс.микросекунды-длительность.
Автоматическая архивация и чистка логов
Без ротации логи съедают диск: журнал регистрации активной базы за год легко вырастает до 30–50 ГБ, а ТЖ с DBMSSQL — до сотен гигабайт за неделю.
Что настроить один раз
- ⏱ Для ТЖ — атрибут
historyвlogcfg.xml. Платформа удаляет старые файлы сама. - 📅 Для журнала регистрации — деление по дням или неделям в Конфигураторе.
- 💾 Отдельный диск или раздел под
srvinfoи ТЖ, чтобы переполнение логов не остановило систему.
Скрипт архивации старых .lgp
Скрипт ниже упаковывает файлы журнала регистрации старше 90 дней в архив на другой диск. Исходники он не удаляет — это делается вручную после проверки архива или кнопкой «Сократить» в Конфигураторе.
$log = "C:\Program Files\1cv8\srvinfo\reg_1541\3f1c2a7e-0000-0000-0000-000000000000\1Cv8Log"
$dest = "E:\1c_log_archive"
$limit = (Get-Date).AddDays(-90)
New-Item -ItemType Directory -Force -Path $dest | Out-Null
$old = Get-ChildItem -Path $log -Filter *.lgp | Where-Object { $_.LastWriteTime -lt $limit }
if ($old) {
$zip = Join-Path $dest ("1Cv8Log_" + (Get-Date -Format "yyyyMMdd") + ".zip")
Compress-Archive -Path $old.FullName -DestinationPath $zip -CompressionLevel Optimal
}
Запускайте его через «Планировщик заданий» Windows раз в неделю ночью, от учётной записи с правом чтения папки srvinfo. В архив вместе с .lgp полезно класть копию 1Cv8.lgf: без словаря события из .lgp не расшифровать.
Не удаляйте и не перемещайте текущий (последний) .lgp и файл 1Cv8.lgf при работающих пользователях — их держит рабочий процесс. Старые файлы за закрытые периоды трогать можно, но только после того, как архив проверен.
На Linux ту же задачу решает cron с find … -mtime +90 и tar. Для ТЖ, если вы не используете history, подойдёт строка в crontab:
0 3 * * * find /var/log/1c/techlog -name "*.log" -mmin +4320 -delete