Как найти причину сбоя по журналу регистрации 1С 8.3

· 10 мин

Содержание

Журнал регистрации ошибок в 1С 8.3 открывается в пользовательском режиме через Администрирование → Обслуживание → Журнал регистрации, а в Конфигураторе — через Администрирование → Журнал регистрации. Если раздела «Администрирование» нет, тот же журнал доступен из Все функции → Стандартные → Журнал регистрации. Чтобы увидеть только сбои, поставьте отбор по важности «Ошибка».

Журнал — механизм платформы, а не конкретной конфигурации. Он одинаково устроен в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и любой другой базе на 8.3. Различаются только пути в меню, и то незначительно. Для поиска и анализа ошибок это первый инструмент: в нём видно, кто, когда, на каком компьютере и в каком объекте получил сбой.

Где открыть журнал регистрации в 1С: пути по программам

В типовых конфигурациях на БСП (библиотеке стандартных подсистем) журнал открывается из раздела «Администрирование». Нужны права администратора или отдельное право на просмотр журнала, иначе команды в меню не будет.

Где работаетеПуть к журналу
Бухгалтерия 3.0Администрирование → Обслуживание → Журнал регистрации
ЗУП 3.1Администрирование → Обслуживание → Журнал регистрации
УТ 11, КА 2, ERP 2НСИ и администрирование → Обслуживание → Журнал регистрации
Любая база, без разделаВсе функции → Стандартные → Журнал регистрации
КонфигураторАдминистрирование → Журнал регистрации

Команда «Все функции» по умолчанию скрыта. Включите её так:

  1. Нажмите кнопку главного меню (три полоски в левом верхнем углу).
  2. Откройте Сервис → Параметры.
  3. Поставьте флажок «Отображать команду “Все функции”» и нажмите «Применить».
  4. Снова откройте главное меню — пункт «Все функции» появится в нём.

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

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

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

Журнал лежит отдельно от данных базы, в каталоге 1Cv8Log. Это важно, когда нужно скопировать журнал для анализа, переслать его специалисту или понять, почему пропало место на диске.

  • 📁 Файловая база — подкаталог 1Cv8Log в папке базы, рядом с файлом 1Cv8.1CD.
  • 🖥 Серверная база на Windows — C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\1Cv8Log, если каталог службы не меняли при установке.
  • 🐧 Серверная база на Linux — /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID базы>/1Cv8Log.

Внутри встречаются два формата:

ФорматФайлыОсобенность
Последовательный (текстовый)1Cv8.lgf и набор *.lgpКаждый .lgp — отдельный период, старые куски легко перенести в архив
SQLiteодин файл 1Cv8.lgdУдобно открывать сторонними просмотрщиками SQLite, но файл растёт одним куском

Если журнал разросся до десятков гигабайт, его сокращают в Конфигураторе: откройте Администрирование → Журнал регистрации и выберите в меню окна журнала команду «Сократить». Программа предложит дату, до которой удалить записи, и сохранить удаляемое в файл.

Не удаляйте файлы из 1Cv8Log вручную при работающих пользователях. Платформа держит журнал открытым, и удаление на ходу приводит к ошибкам записи. Чистите журнал штатной командой «Сократить» или в нерабочее время после остановки сеансов.

Уровень записи: что попадает в журнал ошибок

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

Доступные уровни:

  1. Не регистрировать — журнал не ведётся вовсе. Искать ошибки будет негде.
  2. Регистрировать ошибки — только события с важностью «Ошибка».
  3. Регистрировать ошибки и предупреждения — плюс предупреждения.
  4. Регистрировать ошибки, предупреждения и информацию — плюс информационные события: входы, выходы, запись документов.
  5. Регистрировать все — максимум, включая примечания.

В том же окне задаётся, на какие периоды разделять журнал: по дням, неделям, месяцам и т. д. Чем активнее база, тем мельче стоит делать период — так журнал быстрее открывается и проще архивируется.

Не снижайте уровень до «только ошибки» ради экономии места. При разборе сбоя важно, что пользователь делал за минуту до ошибки, а это как раз информационные события. Место лучше экономить сокращением старых записей.

Разработчик может добавлять в журнал свои события методом ЗаписьЖурналаРегистрации(). Типовые конфигурации так фиксируют ошибки обмена, регламентных заданий, загрузки банковских выписок. Поэтому в журнале встречаются события с понятными русскими именами, а не только системные.

Как отфильтровать журнал и найти конкретную ошибку

На рабочей базе за день набираются десятки тысяч записей. Без отбора нужную ошибку не найти. В форме журнала нажмите «Установить отбор» и заполните поля.

Самые полезные условия отбора:

  • 🕒 Интервал — поставьте узкое окно: 10–15 минут вокруг момента, когда пользователь увидел ошибку.
  • 🔴 Важность — оставьте только «Ошибка». Предупреждения добавляйте позже, если причина не нашлась.
  • 👤 Пользователь и Компьютер — сужают выборку до одного рабочего места.
  • 📄 Метаданные — вид объекта: например, документ «Реализация (акты, накладные)» или регламентное задание.
  • 🔢 Сеанс — номер сеанса, если вы уже нашли одну запись и хотите увидеть всё, что этот сеанс делал до и после.
  • 🔁 Статус транзакции — «Отменена» показывает операции, которые откатились из-за ошибки.

Рабочий порядок поиска такой:

  1. Узнайте у пользователя время сбоя с точностью до минут и текст сообщения.
  2. Поставьте отбор по времени и важности «Ошибка».
  3. Найдите запись, где в комментарии есть тот же текст, что видел пользователь.
  4. Запомните номер сеанса из этой записи.
  5. Снимите отбор по важности, оставьте отбор по сеансу и посмотрите цепочку событий до ошибки.

В форме БСП количество выводимых событий ограничено (по умолчанию 200). Если ошибка «старая», а в списке её нет, увеличьте лимит или сузьте интервал. Записи никуда не делись — их просто не показали.

Двойной щелчок по строке открывает карточку события. В ней видны все поля: приложение (тонкий клиент, фоновое задание, COM-соединение, веб-сервис), представление данных — ссылка на конкретный документ, — и полный комментарий.

Как читать текст ошибки и стек вызовов

Самое ценное в записи об ошибке — комментарий. В нём платформа сохраняет текст исключения и место в коде, где оно возникло. Типичная запись выглядит так:

{Документ.РеализацияТоваровУслуг.МодульОбъекта(1287)}: Ошибка при вызове метода контекста (Записать)
по причине:
{ОбщийМодуль.ПроведениеСервер.Модуль(452)}: Конфликт блокировок при выполнении транзакции:
Превышено максимальное время ожидания предоставления блокировки

Как разбирать такую запись:

  • 📍 В фигурных скобках — модуль и номер строки. МодульОбъекта(1287) означает строку 1287 модуля объекта документа.
  • 🔗 «по причине:» — переход на уровень глубже. Каждый следующий блок ближе к исходной причине.
  • 🎯 Последний блок — обычно настоящая причина. Верхние строки показывают, где ошибку поймали, нижние — где она возникла.

Чтобы посмотреть строку кода, откройте в Конфигураторе нужный модуль и нажмите Ctrl+G — «Перейти к строке». Номер строки из журнала приведёт ровно в место сбоя. Если в базе есть расширения, имя модуля в скобках может указывать на модуль расширения — проверьте и его.

Частые тексты и что они подсказывают:

Текст в журналеГде искать причину
Конфликт блокировок при выполнении транзакцииДва пользователя или фоновое задание одновременно меняют одни данные
Ошибка СУБДПроблема на стороне сервера баз данных: место, права, связь
Ошибка при вызове метода контекстаСмотрите блок «по причине» — сам по себе текст ничего не объясняет
Поле объекта не обнаруженоКод обращается к реквизиту, которого нет; часто после обновления или в расширении
Нарушение прав доступаУ пользователя нет права на объект, указанный в поле «Метаданные»

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

Серверная база: журнал на сервере и консоль кластера

В клиент-серверном варианте журнал ведёт сервер 1С, а не компьютер пользователя. Открывать его можно теми же способами из клиента. Прямой доступ к файлам нужен, когда база не запускается или журнал надо забрать целиком.

Каталог базы в reg_1541 называется по GUID, а не по имени. Соответствие находят двумя способами:

  1. Откройте файл 1CV8Clst.lst в каталоге reg_1541 — в нём перечислены базы с их GUID.
  2. Или выполните в командной строке на сервере с запущенным ras:
rac cluster list
rac infobase --cluster=<id кластера> summary list

Вторая команда выведет пары «идентификатор базы — имя». Идентификатор совпадает с именем папки.

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

Если после анализа решите завершить зависший сеанс в консоли, предупредите пользователя: несохранённые данные этого сеанса пропадут, а начатая транзакция откатится. Делайте это, когда сеанс точно не выполняет закрытие месяца или обновление.

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

Часть сбоев в журнал регистрации не попадает. Аварийное завершение клиента, падение рабочего процесса, ошибки на уровне платформы видны только в технологическом журнале. Он включается файлом logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\logcfg.xml.

Минимальная настройка, которая собирает только исключения:

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

Здесь history="24" — сколько часов хранить файлы. Каталог для логов создайте заранее и дайте права пользователю службы 1С. Техжурнал подхватывается без перезапуска, но включайте его на время расследования: на нагруженном сервере он быстро занимает диск.

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

Журнал можно сохранить для передачи разработчику или обработки в Excel. В форме журнала командная панель позволяет сохранить список в файл, в том числе табличный документ. Для полной копии на сервере проще скопировать каталог 1Cv8Log целиком — его можно подключить к копии базы и смотреть там же.

Для регулярной проверки удобнее выгрузка кодом. Метод ВыгрузитьЖурналРегистрации() выполняется на сервере и требует административных прав. Пример: ошибки за последние сутки в таблицу значений.

Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", ТекущаяДатаСеанса() - 86400);
Отбор.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);

Записи = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(Записи, Отбор, , , 1000);

Для Каждого Запись Из Записи Цикл
    Сообщить(СтрШаблон("%1 | %2 | %3",
        Формат(Запись.Дата, "ДФ='дд.ММ.гггг ЧЧ:мм'"),
        Запись.ИмяПользователя,
        Запись.Комментарий));
КонецЦикла;

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

Варианты автоматического мониторинга:

  • 📊 Отчёт «Анализ журнала регистрации» в типовых конфигурациях на БСП — показывает активность пользователей и работу регламентных заданий. Ищите его среди отчётов администратора в разделе «Обслуживание».
  • ⏰ Регламентное задание в расширении — раз в час выгружает ошибки и отправляет письмо ответственному, если записи появились.
  • 🗄 Внешний анализ — копия файла 1Cv8.lgd открывается любым просмотрщиком SQLite, по ней можно строить запросы. Работайте только с копией, не с рабочим файлом.

Почему журнал пустой или открывается часами

Иногда журнал есть, но толку от него нет. Типичные ситуации и что с ними делать:

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

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

Можно ли удалить отдельную запись из журнала регистрации?
Нет. Платформа позволяет только сократить журнал до выбранной даты целиком. Точечное удаление не предусмотрено — это защищает журнал как источник для разбора инцидентов.
Видно ли в журнале, кто изменил документ?
Да, если уровень регистрации включает информационные события. Отберите по полю «Данные» нужный документ: в записях изменения будут пользователь, компьютер и время. Что именно поменялось в реквизитах, журнал не хранит — для этого нужна отдельная версионность объектов.
Сколько места занимает журнал регистрации?
Зависит от числа пользователей и уровня записи. На базе с несколькими десятками активных пользователей за год журнал легко вырастает до нескольких гигабайт. Следите за каталогом 1Cv8Log и сокращайте старые периоды.
Переносится ли журнал при выгрузке базы в .dt?
Нет. Файл .dt содержит конфигурацию и данные, журнал в него не входит. Если история событий нужна на новом месте, скопируйте каталог 1Cv8Log отдельно.
Чем журнал регистрации отличается от технологического журнала?
Журнал регистрации пишет события прикладного уровня: входы, изменения данных, ошибки кода. Технологический журнал фиксирует работу самой платформы — вызовы, исключения, запросы к СУБД — и включается только вручную через logcfg.xml.