Куда 1С записывает ошибки и события и как их потом найти

· 10 мин

Содержание

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

Выбор зависит от вопроса. «Что сейчас не так с документом» — смотрите панель сообщений. «Кто и когда удалил контрагента» или «почему ночью не прошёл обмен» — журнал регистрации. «Почему падает сервер 1С» — технологический журнал и дампы.

Что ищетеГде смотретьКто обычно смотрит
Почему не проводится документПанель сообщений формыБухгалтер
Кто изменил или удалил объектЖурнал регистрацииАдминистратор, главбух
Ошибки обмена и синхронизацииЖурнал регистрации, предупреждения синхронизацииАдминистратор
Падения, зависания, блокировкиТехнологический журнал, дампыСистемный администратор
Ошибка в своём кодеОтладчик КонфигуратораПрограммист

Журнал регистрации: где найти историю действий в 1С

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

Как открыть журнал регистрации

Есть три способа, результат одинаковый:

  1. Из пользовательского режима. В БП 3.0, ЗУП 3.1, УТ 11: Администрирование → Обслуживание → Журнал регистрации. Нужны права администратора.
  2. Через «Все функции». Главное меню → Все функции → Стандартные → Журнал регистрации. Если пункта «Все функции» нет, включите его: Главное меню → Сервис → Параметры → Отображать команду "Все функции".
  3. Из Конфигуратора. Администрирование → Журнал регистрации. Удобно, когда база не открывается в пользовательском режиме, а понять, что случилось перед сбоем, нужно.

Что видно в строке журнала

Каждая запись — это одно событие. Колонки, которые нужны чаще всего:

  • 🕐 Дата и время — с точностью до секунды.
  • 👤 Пользователь и компьютер — кто и откуда работал.
  • 🏷️ Событие — например, Данные. Изменение, Данные. Удаление, Сеанс. Начало.
  • 🚦 Уровень — информация, предупреждение, ошибка, примечание.
  • 📄 Метаданные и данные — какой справочник или документ и какой именно объект.
  • 💬 Комментарий — текст ошибки или пояснение, которое оставил код.

Двойной щелчок по строке открывает карточку события с полным текстом. Для ошибок там обычно виден весь стек: модуль, строка, текст исключения.

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

Если нужно скопировать журнал разработчику или посмотреть его без запуска базы — ищите папку 1Cv8Log:

  • файловая база — внутри каталога базы, рядом с файлом 1Cv8.1CD;
  • клиент-серверная база — на сервере 1С, в каталоге кластера: srvinfo\reg_1541\<идентификатор базы>\1Cv8Log.

Внутри либо пара файлов форматов .lgf и .lgp, либо один файл 1Cv8.lgd — это два формата журнала, которые поддерживает платформа 8.3.

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

Ошибки при проведении документов: где текст и что он значит

Когда документ не проводится, 1С не открывает журнал — она показывает сообщения прямо на форме. Внизу документа появляется панель со списком: например, Не хватает 5 шт. товара "Кабель ВВГ 3х2,5" на складе "Основной" или Не заполнено поле "Контрагент".

Что с ними делать:

  1. Прочитайте каждую строку панели — их может быть несколько, и все мешают проведению.
  2. Дважды щёлкните по сообщению. Если оно привязано к полю или строке табличной части, 1С переведёт курсор именно туда.
  3. Исправьте данные и нажмите Провести ещё раз.

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

Когда вместо сообщения выскакивает окно ошибки

Другой случай — окно с текстом вроде {Документ.РеализацияТоваровУслуг.МодульОбъекта(123)}: Ошибка при вызове метода контекста. Это уже исключение в коде или платформе. Такое окно 1С записывает в журнал регистрации с уровнем «Ошибка».

В окне ошибки есть ссылка на подробный текст. Откройте её и скопируйте всё целиком — модуль, номер строки и стек вызовов. Без этого программист будет гадать.

Сообщение «Не хватает товара» и окно с модулем и номером строки — разные ситуации. Первое исправляет бухгалтер данными, второе — специалист по 1С или обновление конфигурации.

История обмена данными: где найти сообщения о синхронизации

Ошибки обмена видны только при ручном запуске. Если синхронизация идёт по расписанию, сообщения никто не видит — они уходят в журнал регистрации и в предупреждения синхронизации.

Предупреждения в настройке синхронизации

В БП 3.0 и других конфигурациях на БСП откройте Администрирование → Синхронизация данных. В списке настроенных обменов у проблемной строки появляется отметка о предупреждениях. Откройте её — там конкретные объекты, которые не загрузились, и причина: не найден элемент справочника, не прошла проверка заполнения, конфликт изменений.

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

Отбор обмена в журнале регистрации

Если предупреждений нет, а данные не пришли, ищите в журнале регистрации:

  1. Откройте журнал и нажмите Установить отбор.
  2. В поле события выберите группу событий обмена данными — загрузку и выгрузку.
  3. Задайте период вокруг времени последнего обмена и уровень «Ошибка».

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

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

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

Как включить технологический журнал

Создайте файл logcfg.xml в каталоге conf установленной платформы — например, C:\Program Files\1cv8\conf\. На сервере 1С файл кладут на тот же компьютер, где работает служба. Минимальная настройка для сбора ошибок и дампов:

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

Что здесь происходит:

  • EXCP — исключения, то есть ошибки, которые платформа поймала;
  • history="24" — хранить логи 24 часа, старые удаляются сами;
  • блок dump — при аварийном завершении процесса создаётся файл дампа в C:\1C_Dumps.

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

Не оставляйте технологический журнал с фильтром «все события» на рабочем сервере. За час он может набрать гигабайты и забить диск. Включайте узкий отбор, собирайте данные и удаляйте или переименовывайте logcfg.xml.

Какие события ловить под какую задачу

ЗадачаСобытия в logcfg.xmlКомментарий
Падения и ошибкиEXCP + блок dumpБезопасно держать постоянно
Медленные запросыDBMSSQL или DBPOSTGRS с отбором по длительностиТолько на время диагностики
Блокировки и взаимоблокировкиTLOCK, TTIMEOUT, TDEADLOCKОбъём большой, держите час-два
Долгие серверные вызовыCALL с отбором по длительностиПомогает найти тяжёлую операцию

Дамп и логи обычно передают партнёру или в поддержку. Сами по себе они читаются тяжело, но время события в них совпадает с временем в журнале регистрации — по нему их и стыкуют.

Отладчик и свои записи в журнал: сообщения для разработчика

Программисту мало знать, что ошибка была. Нужно поймать её в момент возникновения.

Остановка по ошибке

В Конфигураторе запустите отладку (Отладка → Начать отладку) и включите Отладка → Остановка по ошибке. Теперь при исключении отладчик остановится на строке, где оно возникло. Видно значения переменных, можно вычислить выражение и пройти по стеку вызовов.

Чтобы отлаживать серверный код в клиент-серверной базе, на сервере 1С должна быть включена отладка: служба агента запускается с ключом -debug. Изменение параметров службы требует её перезапуска.

Перезапуск службы сервера 1С обрывает сеансы всех пользователей. Делайте это вне рабочего времени и предупредите людей заранее.

Как писать свои сообщения в журнал регистрации

Если вы пишете обработку, загрузку или интеграцию, выводите ошибки не только через Сообщить(). Сообщение пропадёт, как только пользователь закроет форму, а фоновое задание его вообще никому не покажет. Пишите в журнал:

Попытка
    ЗагрузитьПрайс(ИмяФайла);
Исключение
    ЗаписьЖурналаРегистрации("ЗагрузкаПрайса",
        УровеньЖурналаРегистрации.Ошибка, , ,
        ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    ВызватьИсключение;
КонецПопытки;

Своё имя события («ЗагрузкаПрайса») потом легко выбрать в отборе журнала и увидеть все сбои загрузки за месяц, без поиска глазами среди тысяч строк.

Регламентные задания: где сообщения о ночных операциях

Обновление курсов валют, загрузка классификатора банков, резервное копирование средствами конфигурации, обмены по расписанию — всё это регламентные задания. Работают они в фоне, без формы, поэтому их ошибки видно только в журнале.

Проверить состояние можно в Администрирование → Обслуживание → Регламентные и фоновые задания. В списке видно, когда задание запускалось последний раз и чем закончилось. Подробный текст ошибки ищите в журнале регистрации по времени запуска с отбором уровня «Ошибка».

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

Как настроить журнал регистрации и отфильтровать лишнее

Уровень логирования

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

  • ⛔ не регистрировать — журнал не ведётся, расследовать потом нечего;
  • 🔴 регистрировать ошибки — только сбои;
  • 🟠 регистрировать ошибки и предупреждения;
  • 🟡 регистрировать ошибки, предупреждения и информацию;
  • 🟢 регистрировать все события — включая примечания, максимум информации.

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

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

Отбор в журнале

На большой базе журнал содержит миллионы строк. Без отбора он открывается долго, а нужное в нём не найти. Нажмите Установить отбор и сузьте выборку:

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

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

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

Что именно вы ищете?

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

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