Куда 1С записывает ошибки и события и как их потом найти
Содержание
Почти все сообщения 1С 8.3 лежат в одном из трёх мест. Текущие сообщения пользователю (ошибки проведения, предупреждения проверок) — в панели сообщений внизу открытой формы. История действий и сбоев — в журнале регистрации: в типовых конфигурациях это Администрирование → Обслуживание → Журнал регистрации, в Конфигураторе — Администрирование → Журнал регистрации. Подробности падений платформы, медленных запросов и блокировок — в технологическом журнале, который включают отдельно файлом logcfg.xml.
Выбор зависит от вопроса. «Что сейчас не так с документом» — смотрите панель сообщений. «Кто и когда удалил контрагента» или «почему ночью не прошёл обмен» — журнал регистрации. «Почему падает сервер 1С» — технологический журнал и дампы.
| Что ищете | Где смотреть | Кто обычно смотрит |
|---|---|---|
| Почему не проводится документ | Панель сообщений формы | Бухгалтер |
| Кто изменил или удалил объект | Журнал регистрации | Администратор, главбух |
| Ошибки обмена и синхронизации | Журнал регистрации, предупреждения синхронизации | Администратор |
| Падения, зависания, блокировки | Технологический журнал, дампы | Системный администратор |
| Ошибка в своём коде | Отладчик Конфигуратора | Программист |
Журнал регистрации: где найти историю действий в 1С
Журнал регистрации — встроенный механизм платформы. Он пишет входы и выходы пользователей, запись и удаление объектов, проведение документов, ошибки, работу регламентных заданий и обменов. Ведётся сам, ничего включать не нужно — если уровень логирования не отключён администратором.
Как открыть журнал регистрации
Есть три способа, результат одинаковый:
- Из пользовательского режима. В БП 3.0, ЗУП 3.1, УТ 11:
Администрирование → Обслуживание → Журнал регистрации. Нужны права администратора. - Через «Все функции».
Главное меню → Все функции → Стандартные → Журнал регистрации. Если пункта «Все функции» нет, включите его:Главное меню → Сервис → Параметры → Отображать команду "Все функции". - Из Конфигуратора.
Администрирование → Журнал регистрации. Удобно, когда база не открывается в пользовательском режиме, а понять, что случилось перед сбоем, нужно.
Что видно в строке журнала
Каждая запись — это одно событие. Колонки, которые нужны чаще всего:
- 🕐 Дата и время — с точностью до секунды.
- 👤 Пользователь и компьютер — кто и откуда работал.
- 🏷️ Событие — например,
Данные. Изменение,Данные. Удаление,Сеанс. Начало. - 🚦 Уровень — информация, предупреждение, ошибка, примечание.
- 📄 Метаданные и данные — какой справочник или документ и какой именно объект.
- 💬 Комментарий — текст ошибки или пояснение, которое оставил код.
Двойной щелчок по строке открывает карточку события с полным текстом. Для ошибок там обычно виден весь стек: модуль, строка, текст исключения.
Где журнал регистрации хранится на диске
Если нужно скопировать журнал разработчику или посмотреть его без запуска базы — ищите папку 1Cv8Log:
- файловая база — внутри каталога базы, рядом с файлом
1Cv8.1CD; - клиент-серверная база
— на сервере 1С, в каталоге кластера:
srvinfo\reg_1541\<идентификатор базы>\1Cv8Log.
Внутри либо пара файлов форматов .lgf и .lgp, либо один файл 1Cv8.lgd — это два формата журнала, которые поддерживает платформа 8.3.
Не удаляйте и не правьте файлы журнала при работающих пользователях. Если журнал разросся до десятков гигабайт, сокращайте его штатно через Конфигуратор, а не вручную в проводнике.
Ошибки при проведении документов: где текст и что он значит
Когда документ не проводится, 1С не открывает журнал — она показывает сообщения прямо на форме. Внизу документа появляется панель со списком: например, Не хватает 5 шт. товара "Кабель ВВГ 3х2,5" на складе "Основной" или Не заполнено поле "Контрагент".
Что с ними делать:
- Прочитайте каждую строку панели — их может быть несколько, и все мешают проведению.
- Дважды щёлкните по сообщению. Если оно привязано к полю или строке табличной части, 1С переведёт курсор именно туда.
- Исправьте данные и нажмите
Провестиещё раз.
Если панель закрыли, а текст не запомнили, — просто повторите проведение. Сообщения проверок заполнения не хранятся в журнале регистрации: это не сбой, а штатный отказ проведения.
Когда вместо сообщения выскакивает окно ошибки
Другой случай — окно с текстом вроде {Документ.РеализацияТоваровУслуг.МодульОбъекта(123)}: Ошибка при вызове метода контекста. Это уже исключение в коде или платформе. Такое окно 1С записывает в журнал регистрации с уровнем «Ошибка».
В окне ошибки есть ссылка на подробный текст. Откройте её и скопируйте всё целиком — модуль, номер строки и стек вызовов. Без этого программист будет гадать.
Сообщение «Не хватает товара» и окно с модулем и номером строки — разные ситуации. Первое исправляет бухгалтер данными, второе — специалист по 1С или обновление конфигурации.
История обмена данными: где найти сообщения о синхронизации
Ошибки обмена видны только при ручном запуске. Если синхронизация идёт по расписанию, сообщения никто не видит — они уходят в журнал регистрации и в предупреждения синхронизации.
Предупреждения в настройке синхронизации
В БП 3.0 и других конфигурациях на БСП откройте Администрирование → Синхронизация данных. В списке настроенных обменов у проблемной строки появляется отметка о предупреждениях. Откройте её — там конкретные объекты, которые не загрузились, и причина: не найден элемент справочника, не прошла проверка заполнения, конфликт изменений.
Часть таких предупреждений можно скрыть, если документ уже поправили вручную. Тогда список не будет пугать при каждом запуске.
Отбор обмена в журнале регистрации
Если предупреждений нет, а данные не пришли, ищите в журнале регистрации:
- Откройте журнал и нажмите
Установить отбор. - В поле события выберите группу событий обмена данными — загрузку и выгрузку.
- Задайте период вокруг времени последнего обмена и уровень «Ошибка».
Часто причина — не в данных, а в доступе: каталог обмена недоступен, истёк пароль пользователя веб-сервиса, сменился адрес публикации. Это тоже видно в комментарии к событию.
Технологический журнал и дампы: логи для системного администратора
Журнал регистрации пишет события приложения. А если падает сам процесс 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, воспроизведите сбой и передайте файл дампа специалисту.