Собираем данные об ошибке 1С: окно ошибки, журналы, дампы
Содержание
Самый быстрый способ выгрузить отчет с ошибкой в 1С 8.3 — прямо из окна ошибки: нажмите ссылку Сформировать отчет об ошибке, отметьте, какие сведения включить, и сохраните архив кнопкой Сохранить в файл. В архив попадут текст ошибки, стек вызовов, версия платформы и конфигурации.
Если окно уже закрыто или ошибка плавающая, данные берут из журнала регистрации, технологического журнала и дампов. Порядок действий одинаков для любой конфигурации на платформе 8.3: Бухгалтерии, ЗУП, УТ, ERP.
Отчет об ошибке из окна сообщения в режиме Предприятия
Это первый и самый полезный источник. Окно ошибки содержит ровно то, что видел пользователь в момент сбоя.
Что сделать сразу, пока окно открыто
- Не нажимайте
ОКи не закрывайте программу. - Нажмите
Подробно…— раскроется полный текст исключения с модулем и строкой кода. - Нажмите ссылку
Сформировать отчет об ошибкевнизу окна. - В открывшемся окне отметьте галочками сведения для отчета. Снимок экрана включайте, только если на экране нет персональных данных.
- Нажмите
Сохранить в файли выберите папку. Получится.zip-архив.
Если ссылки на отчет нет (старая сборка платформы или окно от внешней обработки), выделите текст ошибки мышью и скопируйте Ctrl+C. Скриншот экрана — запасной вариант: текст из него не скопировать и не найти поиском.
Что ценного в тексте ошибки
Хороший текст ошибки содержит четыре вещи:
- 📍 модуль и строку:
{Документ.РеализацияТоваровУслуг.МодульОбъекта(512)}; - ❌ само исключение: например,
Поле объекта не обнаружено (Склад); - 🔗 стек вызовов — цепочку, откуда пришли в эту строку;
- 🧩 версию платформы и конфигурации — без них программист не воспроизведет сбой.
Если в тексте видно ВнешняяОбработка или имя расширения, проблема почти наверняка в доработке, а не в типовом коде. Это сразу подсказывает, кому писать.
Как выгрузить журнал регистрации с ошибками
Журнал регистрации пишет события базы: входы, записи документов, ошибки. Он нужен, когда окно ошибки не сохранили или сбой случился у другого пользователя.
Через интерфейс программы
В типовых конфигурациях журнал открывается так:
| Где открыть | Путь |
|---|---|
| БП 3.0, ЗУП 3.1, УТ 11 | Администрирование → Обслуживание → Журнал регистрации |
| Любая конфигурация | Все функции → Стандартные → Журнал регистрации |
| Конфигуратор | Администрирование → Журнал регистрации |
Пункт Все функции появляется после включения флага Отображать команду "Все функции" в параметрах (меню с «бутербродом» → Сервис → Параметры).
Дальше настройте отбор:
- Откройте отбор журнала.
- Укажите интервал: от нескольких минут до сбоя до нескольких минут после.
- В уровнях оставьте только
Ошибка(иногда полезно добавитьПредупреждение). - При необходимости ограничьте пользователем и компьютером.
- Примените отбор.
Чтобы выгрузить результат, нажмите Ещё → Вывести список…, оставьте нужные колонки и сформируйте табличный документ. Его сохраняют через кнопку сохранения в .xlsx или .mxl.
Колонка «Комментарий» часто содержит самое главное — подробный текст исключения. Не отключайте ее при выводе списка.
Копирование файлов журнала целиком
Иногда программисту нужен весь журнал, а не выборка. Тогда копируют каталог 1Cv8Log:
- 📁 файловая база — папка
1Cv8Logвнутри каталога базы; - 🖥️ клиент-серверная база
—
srvinfo\reg_1541\<GUID базы>\1Cv8Logна сервере 1С.
В старом формате это файл 1Cv8.lgf и набор файлов *.lgp по периодам. В новом — один файл 1Cv8.lgd. Формат меняется в конфигураторе: Администрирование → Настройка журнала регистрации. Там же задается уровень записи — если стоит «Не регистрировать», ошибки в журнал не попадут вообще.
GUID базы узнают в консоли кластера (свойства информационной базы) или по самой свежей дате изменения папки в момент работы пользователей.
Технологический журнал: включаем запись исключений
Журнал регистрации видит только то, что прикладной код решил записать, плюс системные события. Технологический журнал (ТЖ) пишет сама платформа: исключения, блокировки, долгие запросы. Его включают на время поиска ошибки.
Файл logcfg.xml
Создайте файл logcfg.xml в каталоге conf платформы. Для всех установленных версий это обычно C:\Program Files\1cv8\conf\. На сервере файл кладут на том компьютере, где работают рабочие процессы; на файловой базе — на компьютере пользователя.
Минимальная настройка для сбора исключений:
<?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>
<event>
<eq property="name" value="QERR"/>
</event>
<property name="all"/>
</log>
</config>
EXCP— исключительные ситуации;QERR— ошибки компиляции запросов;history="24"— хранить логи 24 часа, старые удаляются сами.
Платформа перечитывает файл примерно раз в минуту, перезапуск не нужен. Каталог C:\1C_TechLog должен существовать, а у пользователя службы 1С должно быть право записи в него.
Как найти нужную запись
Логи раскладываются по подпапкам процессов: rphost_1234, 1cv8c_5678 и т. п. Внутри — файлы вида 26100812.log, где цифры — год, месяц, день и час. Откройте файл за час сбоя и ищите по времени или по фрагменту текста ошибки.
Не оставляйте ТЖ включенным со свойством all на все события. Логи растут на гигабайты в час и замедляют сервер. Собрали ошибку — удалите logcfg.xml или переименуйте его.
Логи сервера 1С и консоль кластера
Консоль администрирования серверов 1С сама файлов не выгружает. Она помогает понять, где искать, и дает картину на момент сбоя.
Что посмотреть в консоли
- 👥 сеансы — кто был в базе, на каком рабочем процессе;
- 🔒 блокировки — если ошибка про таймаут или взаимоблокировку;
- ⚙️ рабочие процессы — память и число соединений; процесс, который часто перезапускается, — подозреваемый;
- 🗂️ свойства базы — имя базы на СУБД и ее идентификатор.
Те же данные доступны из командной строки через rac, если запущен сервер администрирования ras. Например, rac cluster list выведет кластеры, а rac session list --cluster=<id> — сеансы. Другие параметры смотрите в rac help.
Что забрать с сервера
| Что | Где обычно лежит | Когда нужно |
|---|---|---|
| Журнал регистрации | srvinfo\reg_1541\<GUID>\1Cv8Log | Любая прикладная ошибка |
| Технологический журнал | Каталог из logcfg.xml | Ошибки платформы, блокировки, падения |
| Дампы | Каталог из настройки dump | Аварийное завершение процессов |
| Журнал Windows | Просмотр событий → Журналы Windows → Приложение | Падение службы агента сервера |
Каталог srvinfo по умолчанию находится в C:\Program Files\1cv8\srvinfo, но при установке его часто переносят. Точный путь виден в параметрах службы «Агент сервера 1С:Предприятия» — ключ -d в строке запуска.
Временные файлы, кэш и дампы на компьютере пользователя
Часть сбоев живет не в базе, а на конкретном компьютере. Типичный признак: у одного пользователя ошибка есть, у другого с тем же логином на другом ПК — нет.
Где что лежит
- 📂
%APPDATA%\1C\1cv8\— настройки и кэш конфигураций по базам; - 📂
%LOCALAPPDATA%\1C\1cv8\— локальный кэш метаданных; - 💥
%APPDATA%\1C\1cv8\dumps— дампы аварийного завершения клиента (файлы.mdmp).
Если программа «вылетает» без окна ошибки, первым делом загляните в папку dumps. Свежий дамп с датой сбоя — главный файл для поддержки.
Проверка версии с чистым кэшем
Чтобы отделить ошибку кэша от ошибки базы, запустите клиент с ключом очистки:
"C:\Program Files\1cv8\common\1cestart.exe" /ClearCache
Ключ можно также дописать в поле «Дополнительные параметры запуска» в настройках базы в окне запуска. Если после очистки ошибка ушла — дело было в кэше, а не в коде. Если осталась — проверьте ее на другом компьютере под тем же пользователем. Повторилась и там — ищите причину в базе или в коде, а собранный отчет об ошибке передавайте программисту. Не повторилась — сравните версии платформы на двух компьютерах: расхождение в сборке тоже дает разное поведение.
Перед очисткой скопируйте папку dumps и сохраните отчет об ошибке. После очистки часть сведений для разбора пропадет.
Серверный кэш (папки snccntx* в каталоге кластера) трогают только при остановленной службе. Остановка службы обрывает сеансы всех пользователей, поэтому это делают вне рабочего времени и с предупреждением.
Автоматизация сбора отчетов об ошибках
Если ошибка плавающая, ждать ее у экрана бессмысленно. Пусть данные копятся сами.
Запись в журнал из своего кода
В доработках оборачивайте рискованные места в Попытка и пишите подробности в журнал регистрации:
Попытка
ЗагрузитьДанныеИзФайла(ИмяФайла);
Исключение
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации("Загрузка.ИзФайла",
УровеньЖурналаРегистрации.Ошибка, , ИмяФайла, ТекстОшибки);
ВызватьИсключение;
КонецПопытки;
ПодробноеПредставлениеОшибки сохраняет стек вызовов. Своё имя события («Загрузка.ИзФайла») потом удобно ставить в отбор журнала. ВызватьИсключение без параметров пробрасывает ошибку дальше, чтобы пользователь ее увидел и транзакция откатилась.
Дампы при падениях
Если процессы падают, добавьте в logcfg.xml внутрь элемента config строку:
<dump location="C:\1C_Dumps" create="1"/>
Платформа начнет сохранять дампы аварийных завершений в указанный каталог. Следите за местом на диске: каждый дамп занимает от десятков мегабайт.
Ночной сбор архива
Логи ТЖ удобно упаковывать по расписанию. Пример для Планировщика заданий Windows:
powershell -NoProfile -Command "Compress-Archive -Path 'C:\1C_TechLog\*' -DestinationPath ('D:\1C_Reports\techlog_' + (Get-Date -Format 'yyyyMMdd') + '.zip') -Force"
Архив за сутки можно сразу отправлять программисту. Старые архивы удаляйте, иначе диск закончится за пару недель.
Что написать в сопроводительном письме
Архив без пояснений разбирают дольше. К нему стоит приложить короткое описание из пяти пунктов:
- Имя базы и пользователь, под которым возникла ошибка.
- Дата и время сбоя с точностью до минуты — по нему ищут записи в журналах.
- Что делали перед ошибкой: какой документ открыли, какую кнопку нажали.
- Повторяется ли ошибка у других пользователей и на других компьютерах.
- Что меняли накануне: обновление, новое расширение, внешняя обработка.
Пункт про время критичен. Без него программист будет листать журнал за весь день и может принять за причину соседнюю, не связанную ошибку.
Частые ошибки при выгрузке отчета
- 🚫 Только скриншот без текста. На скриншоте обрезан стек вызовов, а текст нельзя найти поиском.
- 🚫 Журнал за весь год. Файл на сотни тысяч строк никто не откроет. Ограничьте интервал 10–30 минутами вокруг сбоя.
- 🚫 Нет версии. Без номера релиза конфигурации и платформы ошибку не сопоставить с известными исправлениями. Версии видны в окне
О программе(значок «i» или меню с «бутербродом»). - 🚫 Персональные данные в архиве. Снимок экрана и журнал могут содержать ФИО, паспортные данные, суммы. Перед отправкой стороннему подрядчику проверьте содержимое.
- 🚫 ТЖ остался включенным. Через неделю диск сервера заполнен, база перестает работать.