Журнал регистрации и технологический журнал 1С: где лежат файлы и как их читать

· 11 мин

Содержание

На сервере 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, и по имени базу не найти. Есть три рабочих способа.

  1. Откройте файл reg_1541\1CV8Clst.lst в Блокноте (только на чтение, не сохраняйте). Найдите поиском имя базы — GUID стоит перед ним в той же записи.
  2. Отсортируйте папки по дате изменения. Если пользователи работают в одной базе прямо сейчас, её каталог изменился последним.
  3. В 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 за закрытые периоды не меняются и спокойно уходят в архив.

Уровень детализации и ротация журнала регистрации

Объём журнала зависит от двух настроек: что регистрировать и как делить файлы по периодам. Обе задаются в Конфигураторе.

Где меняется уровень регистрации

  1. Откройте базу в режиме Конфигуратора.
  2. Выберите Администрирование → Настройка журнала регистрации.
  3. В группе «Регистрировать» выберите уровень.
  4. Нажмите «ОК». Монопольный доступ для этого не нужен.
УровеньЧто попадает в журналКогда выбирать
Не регистрироватьНичегоПочти никогда: теряются следы ошибок и действий
ОшибкиТолько ошибкиТяжёлая база, мало места на диске
Ошибки и предупреждения+ предупрежденияКомпромисс для крупных баз
Ошибки, предупреждения и информация+ информационные событияОбычный рабочий режим
Все события+ примечанияРазбор инцидента, аудит действий пользователей

Разделение по периодам и сокращение

В том же окне задаётся период, на который делится журнал: день, неделя, месяц или год. В последовательном формате на каждый период создаётся отдельный .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 секунд.

Диагностика производительности и ошибок по логам

Порядок разбора, который экономит время: сначала журнал регистрации, потом ТЖ.

  1. В журнале регистрации найдите время инцидента и пользователя. Запишите точную минуту.
  2. Откройте в каталоге ТЖ файлы за этот час во всех папках rphost_*.
  3. Ищите события по типу. На 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
  1. В найденной строке смотрите свойства 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
Логи 1С на сервере настроены
Выполнено: 0 / 6

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

Почему в папке reg_1541 нет каталога с моей базой?
Скорее всего, база зарегистрирована в другом кластере или на другом порту. Проверьте соседние папки reg_* и параметр -d в свойствах службы агента сервера: srvinfo мог быть перенесён на другой диск.
Можно ли перенести журнал регистрации на другой диск?
Перенести можно весь каталог srvinfo: остановите службу агента сервера вне рабочего времени, скопируйте папку и укажите новый путь в параметре -d службы. Перед остановкой предупредите пользователей — все сеансы оборвутся.
Журнал регистрации пустой, хотя пользователи работают. Что проверить?
Уровень «Не регистрировать» в Конфигураторе, права учётной записи службы на запись в 1Cv8Log и свободное место на диске. При нехватке места события перестают записываться.
Где логи сервера 1С на Linux, если путь /home/usr1cv8 пуст?
Каталог зависит от домашней папки пользователя службы и параметра -d в unit-файле srv1cv8. Посмотрите командную строку процесса ragent: ps aux | grep ragent.
Нагружает ли технологический журнал сервер?
События EXCP и блокировки — почти незаметно. DBMSSQL и CALL без отбора по длительности дают заметную нагрузку на диск, поэтому их включают на время разбора и с коротким history.