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

· 9 мин

Содержание

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

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

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

Где хранится журнал регистрации и как его открыть

Расположение зависит от варианта базы.

  • Файловая база. Журнал лежит в каталоге базы, в папке 1Cv8Log. С платформы 8.3.5 по умолчанию это один файл SQLite 1Cv8.lgd. В более старом формате — набор файлов *.lgp и описание 1Cv8.lgf в той же папке.
  • Клиент-серверная база . Журнал каждой информационной базы хранится в каталоге кластера на сервере 1С (по умолчанию srvinfo), в подкаталоге этой базы, также в папке 1Cv8Log.

Открыть журнал можно двумя путями:

  1. Из 1С:Предприятия. Нажмите Главное меню (значок в левом верхнем углу) → Все функции → Стандартные → Журнал регистрации. Если пункта «Все функции» нет, включите его: Главное меню → Сервис → Параметры и поставьте флажок «Отображать команду “Все функции”».
  2. Из Конфигуратора. Меню Администрирование → Журнал регистрации. Открывается тот же журнал базы.

Рядовой пользователь видит в журнале только свои события и общие. Полную картину (все пользователи, системные события) показывает пользователь с правом администрирования.

Окно журнала — это таблица со столбцами: дата и время, пользователь, компьютер, приложение, событие, важность, комментарий и ссылка на данные. По двойному клику на строке открывается карточка события с подробностями: сеанс, соединение, метаданные, представление данных.

Настройка состава регистрируемых событий

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

В диалоге настройки задают две вещи:

  • Какие события регистрировать. Галочками включаются категории: вход и выход пользователей, изменение данных, операции с конфигурацией, ошибки, фоновые задания и т.д. Можно оставить только то, что реально разбираете.
  • Как разделять хранение по периоду. Варианты: не разделять, по суткам, неделям, месяцам, годам. Разделение по периоду упрощает архивирование и ускоряет открытие журнала на большой базе.

Там же выбирается минимальный уровень важности, начиная с которого события попадают в журнал. Уровней четыре:

ВажностьЧто этоПримеры
ОшибкаОперация не выполненаисключение, сбой обмена, отказ регламентного задания
ПредупреждениеВыполнено, но с замечаниемконфликт блокировок, нештатная ситуация
ИнформацияШтатное событиевход пользователя, проведение документа
ПримечаниеТехническая записьслужебные сообщения платформы

Если поставить минимальный уровень «Ошибка», журнал перестанет писать входы и изменения данных. На базе, где нужен аудит действий пользователей, оставляйте уровень «Информация».

Через какое-то время старый журнал стоит чистить. Сокращение журнала удаляет записи безвозвратно — перед операцией выгрузите нужный период в файл. Сократить журнал можно из Конфигуратора (Администрирование → Журнал регистрации → Сократить) или программно, глобальной функцией.

Фильтрация и отбор записей

На реальной базе в журнале сотни тысяч строк, поэтому работа начинается с отбора. В окне журнала нажмите «Установить отбор» (кнопка на командной панели) и задайте условия.

Отбирать можно по любому сочетанию полей:

  • 🗓 период — от и до, вплоть до секунд;
  • 👤 пользователь — один или несколько;
  • 💻 компьютер и сеанс/соединение — чтобы поймать действия с конкретного рабочего места;
  • ⚠️ важность — например, только «Ошибка» и «Предупреждение»;
  • 📄 событие — вход, изменение данных, ошибка исполнения и др.;
  • 🧩 метаданные и данные — конкретный справочник, документ или даже строка;
  • 🖥 приложение — тонкий клиент, толстый клиент, веб-клиент, фоновое задание, COM-соединение.

Отбор по приложению часто экономит время: ошибки обменов и регламентных операций обычно идут от фонового задания, а не от пользователя. Поставьте отбор «важность = Ошибка» и «приложение = Фоновое задание» — и перед вами список всех сбоев автоматических процессов.

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

Поиск и разбор ошибок по журналу

Когда пользователь жалуется «вылетела ошибка», порядок действий простой.

  1. Поставьте отбор по важности «Ошибка» и периоду за время сбоя (с запасом в пару минут).
  2. Если известен пользователь или компьютер — добавьте их в отбор.
  3. Откройте строку ошибки двойным кликом и прочитайте полный текст в карточке события — там он не обрезан, в отличие от столбца «Комментарий».

Что искать в карточке:

  • полный текст исключения — часто в нём прямо указана причина (нет прав, не найден объект, нарушение уникальности);
  • метаданные и данные — какой объект вызвал сбой;
  • сеанс и соединение — чтобы связать ошибку с другими событиями того же сеанса;
  • стек вызовов (если включён технологический журнал) — в каком модуле и строке произошло исключение.

Типовые ошибки и то, что они означают:

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

Если ошибка повторяется у фонового задания, откройте в предприятии список регламентных и фоновых заданий (Главное меню → Все функции → Стандартные → Регламентные и фоновые задания) — там видно расписание и последний результат каждого задания.

Технологический журнал: когда штатного мало

Журнал регистрации фиксирует прикладные события. Причины падения процесса, взаимоблокировки, долгие запросы к СУБД, утечки памяти он не показывает — для этого есть технологический журнал (ТЖ). Он пишется платформой в текстовые файлы и настраивается конфигурационным файлом logcfg.xml.

Файл кладут в каталог conf установленной платформы — обычно это C:\Program Files\1cv8\conf\. Настройки действуют на все базы этого сервера.

Минимальный пример — писать только исключения и контекст их возникновения:

<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
    <log location="C:\logs\techlog" history="24">
        <event>
            <eq property="name" value="EXCP"/>
        </event>
        <event>
            <eq property="name" value="EXCPCNTX"/>
        </event>
        <property name="all"/>
    </log>
</config>

Здесь location — куда писать, history — сколько часов хранить (старые файлы платформа удаляет сама). Внутри <event> фильтруются нужные события по свойству name.

Частые события, которые смотрят на практике:

  • EXCP — исключения платформы (аварийные завершения, необработанные ошибки);
  • TLOCK, TTIMEOUT, TDEADLOCK — установка блокировок, таймауты и взаимоблокировки;
  • DBMSSQL / DBPOSTGRS — запросы к СУБД (для поиска долгих запросов);
  • SDBL — запросы на внутреннем языке модели данных;
  • CALL, SCALL — клиент-серверные вызовы.

ТЖ может писать гигабайты в час, если включить всё без фильтров. На рабочем сервере включайте только нужные события и ограничивайте history, иначе быстро забьёте диск. После диагностики ТЖ отключают (убирают или переименовывают logcfg.xml).

Записи ТЖ — это текст, разбитый по каталогам процессов (rphost, rmngr, ragent) и по часам. Ищут по ним обычным поиском по файлам (findstr в Windows, grep в Linux) или специализированными парсерами.

Логи кластера серверов 1С

В клиент-серверном варианте, кроме журнала регистрации каждой базы, есть логи самого кластера. Они лежат в каталоге кластера (по умолчанию srvinfo) и делятся по процессам:

  • ragent — агент сервера, принимает подключения (порт по умолчанию 1540);
  • rmngr — менеджер кластера (порт 1541);
  • rphost — рабочие процессы, в которых исполняется код (диапазон портов задаётся в свойствах рабочего сервера).

Аварийное завершение процесса оставляет дамп в каталоге дампов (настраивается в том же logcfg.xml секцией dump). Дамп сам по себе читается только средствами 1С и обычно нужен для обращения в поддержку, но факт его появления — уже сигнал: процесс упал, а не «просто завис».

Посмотреть состав кластера, рабочие серверы и активные сеансы можно консолью администрирования серверов или утилитой командной строки rac. Например, список рабочих серверов и список сеансов:

rac cluster list
rac session list --licenses

Остановка службы агента сервера или перезапуск рабочего процесса оборвёт все активные сеансы пользователей. Делайте это только в согласованное технологическое окно и предупредив пользователей — для простого чтения логов останавливать ничего не нужно.

Если не уверены в конкретной команде rac, посмотрите доступные через rac help — придумывать параметры не стоит.

Выгрузка журнала и автоматический анализ

Журнал регистрации не обязательно читать глазами в окне. Его выгружают и обрабатывают внешними средствами.

Ручная выгрузка списка. В окне журнала есть команда вывести отобранные записи в табличный документ или текстовый файл (на командной панели, рядом с печатью/сохранением списка). Удобно, когда нужно передать коллеге или в поддержку конкретный фрагмент.

Программная выгрузка. В прикладном коде журнал пишут и читают глобальными функциями платформы:

// записать своё событие в журнал
ЗаписьЖурналаРегистрации("МойПроцесс.Этап",
    УровеньЖурналаРегистрации.Информация, , , "Этап завершён");

// выгрузить журнал в XML-файл по отбору
Отбор = Новый Структура;
Отбор.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);
ВыгрузитьЖурналРегистрации("C:\logs\errors.xml", Отбор);

Так в журнал добавляют собственные метки из обработок и обменов, а потом фильтруют по ним — это сильно упрощает разбор своих механизмов. Есть и обратная функция, ЗагрузитьЖурналРегистрации, — ею можно подгрузить ранее выгруженный XML, например чтобы разобрать журнал с другого сервера на своём рабочем месте.

Прямое чтение файла. В формате 1Cv8.lgd журнал регистрации — это обычная база SQLite. Её можно открыть сторонним SQLite-клиентом в режиме только для чтения и анализировать запросами, не заходя в 1С. Это выручает, когда база недоступна, а разобрать накопленные ошибки нужно. Открывайте копию файла, а не рабочий 1Cv8.lgd: запись в него посторонним процессом может повредить журнал.

Внешние инструменты. Для потокового анализа логи выгружают или перенаправляют в системы хранения и визуализации (например, стек Elasticsearch + Kibana) и строят дашборды по ошибкам и производительности. Текстовый технологический журнал парсят скриптами или готовыми утилитами разбора ТЖ. Для анализа производительности в комплекте для крупных внедрений идут специальные инструменты мониторинга.

Выбор зависит от масштаба: на одной базе хватает отбора в окне и ручной выгрузки, на нагруженном кластере имеет смысл настроить регулярную выгрузку и внешний анализатор.

Чек-лист: разбираем сбой по логам
Выполнено: 0 / 6

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

Чем журнал регистрации отличается от технологического журнала?
Журнал регистрации пишет прикладные события (входы, изменения данных, ошибки) и читается внутри 1С. Технологический журнал — низкоуровневый, пишется текстовыми файлами по настройке logcfg.xml и нужен для диагностики падений, блокировок и долгих запросов.
Почему в журнале нет нужного события?
Скорее всего, в Администрирование → Настройка журнала регистрации отключена его регистрация или выставлен слишком высокий минимальный уровень важности. Проверьте настройку и диапазон периода в отборе.
Можно ли посмотреть журнал за прошлый год, если включено разделение по периодам?
Да, журнал хранит все периоды, пока их не сократили. Разделение влияет только на то, как файлы бьются на части; на отбор по дате это не влияет.
Как уменьшить размер журнала регистрации?
Выгрузите нужный период в файл, затем сократите журнал (Администрирование → Журнал регистрации → Сократить) до нужной даты. На будущее — уменьшите состав регистрируемых событий и включите разделение по периодам.
Нужно ли останавливать базу, чтобы посмотреть логи?
Нет. Чтение журнала регистрации и просмотр логов кластера работу пользователей не затрагивают. Остановка требуется только для операций с самой службой сервера, и её делают в технологическое окно.