Разбираем текст ошибки 1С: окно сообщения, журнал регистрации и технический журнал
Содержание
Чтобы прочитать ошибку в 1С, нажмите в окне сообщения кнопку Подробно и найдите в тексте самую последнюю фразу после слов «по причине:». Это и есть первопричина, а всё, что выше, — цепочка вызовов, через которую она дошла до вас. Если окно уже закрыто, ту же запись можно найти в журнале регистрации: Администрирование → Обслуживание → Журнал регистрации, отбор по уровню «Ошибка».
Источников у ошибки несколько, и выбирают их по ситуации. Пользователю хватает окна сообщения и журнала регистрации. Администратору сервера нужен технический журнал. При сбоях синхронизации смотрят журнал обмена. Разберём, как читать каждый из них и что из прочитанного следует.
Где 1С записывает ошибки: пять мест
У каждого источника своя глубина. Начинайте с верхней строки таблицы и спускайтесь ниже, только если информации не хватило.
| Источник | Что видно | Кто читает |
|---|---|---|
| 🪟 Окно ошибки | Текст, модуль, номер строки | Пользователь |
| 💬 Окно сообщений внизу формы | Предупреждения при проведении: «Не хватает остатка…», «Не заполнено поле…» | Пользователь |
| 📒 Журнал регистрации | Все ошибки за период, кто и в каком документе | Бухгалтер, администратор |
| 🔄 Журнал обмена | Ошибки загрузки и выгрузки при синхронизации | Администратор |
| 🛠 Технический журнал | Исключения платформы, ошибки СУБД, взаимоблокировки | Администратор, разработчик |
Окно сообщений и окно ошибки — разные вещи. Сообщения при проведении документа — это проверки программы: она сама нашла проблему в данных и объяснила, что исправить. Окно с кнопкой Подробно появляется, когда выполнение кода прервалось. Первое чинят исправлением документа, второе часто требует разбора.
💡 Сообщение под формой кликабельно. Двойной щелчок по нему переводит курсор на поле, которое надо заполнить или исправить.
Как прочитать текст ошибки: скобки, строки и «по причине»
Типичный подробный текст выглядит так:
{ОбщийМодуль.УчетНДС.Модуль(1482)}: Ошибка при вызове метода контекста (Записать)
НаборЗаписей.Записать();
по причине:
Ошибка при выполнении операции с информационной базой
по причине:
Конфликт блокировок при выполнении транзакции:
Превышено максимальное время ожидания предоставления блокировки
Читается он по частям.
- Фигурные скобки
{…}— где упал код.ОбщийМодуль.УчетНДС.Модуль— имя модуля,(1482)— номер строки в нём. Эту строку разработчик откроет в Конфигураторе. - Текст после двоеточия — что пыталась сделать программа. Здесь — записать набор записей регистра.
- Строка с кодом под ним — сама инструкция, на которой случился сбой.
- Блоки «по причине:» — вложенные причины. Каждый следующий глубже предыдущего. Решение ищут по последнему блоку, а не по первой строке.
В примере итог — конфликт блокировок. Значит, документ не сломан: в тот момент другой пользователь записывал те же данные. Повтор операции через минуту обычно проходит.
Что значат типовые формулировки
| Фраза в тексте | Что это значит на практике |
|---|---|
Значение не является значением объектного типа | Код обратился к реквизиту пустого поля: в документе или справочнике не заполнено значение |
Поле объекта не обнаружено | В коде указано имя реквизита, которого нет. Частая картина после обновления или в доработках |
Деление на 0 | В расчёте нулевое количество или сумма, ищите строку с нулём |
Ошибка СУБД | Сбой на стороне базы данных: SQL Server, PostgreSQL или файловой |
Ошибка формата потока | Повреждены кэш или файлы базы |
Недостаточно прав для просмотра/изменения | У пользователя нет роли на этот объект |
Конфликт блокировок | Две сессии одновременно меняли одни данные |
Внешние коды
Иногда в последнем блоке стоит не текст, а код вроде HRESULT=80004005 или SQLSTATE. Это ответ СУБД или Windows, а не самой 1С. Копируйте код вместе с окружающей фразой и ищите по ним: число без контекста почти ничего не говорит.
Как скопировать текст целиком
Скриншот окна бесполезен, если текст в нём обрезан. Раскройте Подробно, выделите текст мышью и нажмите Ctrl+C. В актуальных версиях платформы в окне ошибки есть ссылка на формирование отчёта об ошибке: она собирает текст, версию платформы и конфигурации в один файл, который удобно передать специалисту.
Журнал регистрации: отбор и чтение записей
Журнал регистрации хранит события базы: входы, записи документов, ошибки. Он нужен, когда окно ошибки закрыли, а ошибка случилась у коллеги или ночью при регламентном задании.
Как открыть
- В пользовательском режиме БП 3.0, ЗУП 3.1, УТ 11:
Администрирование → Обслуживание → Журнал регистрации. Нужны права администратора. - В Конфигураторе:
Администрирование → Журнал регистрации.
Как настроить отбор
Без отбора журнал показывает тысячи строк. Сузьте его:
- Нажмите кнопку
Отборнад списком. - Задайте интервал — от времени чуть раньше сбоя до чуть позже.
- В поле уровня важности оставьте только «Ошибка». Можно добавить «Предупреждение».
- Укажите пользователя, у которого возникла проблема.
- При необходимости выберите события, например «Данные. Проведение».
- Примените отбор.
Какие колонки читать
| Колонка | Что в ней искать |
|---|---|
| Дата | Совпадает ли время с моментом сбоя |
| Пользователь, Компьютер | Кто и с какой машины работал |
| Событие | Тип действия: запись, проведение, сеанс, фоновое задание |
| Метаданные | Какой объект затронут: документ, справочник, регистр |
| Данные | Ссылка на конкретный документ — по ней его можно открыть |
| Комментарий | Полный текст ошибки с той же цепочкой «по причине» |
Комментарий читается так же, как окно ошибки. Двойной щелчок по строке открывает карточку события, там текст виден целиком.
💡 Если одна и та же ошибка повторяется каждые 10–15 минут от пользователя без имени — почти всегда это регламентное задание. Колонка «Событие» покажет его название.
Журнал хранится не вечно. Срок хранения и уровень записи задают в Конфигураторе: Администрирование → Настройка журнала регистрации. Если там стоит «Не регистрировать», журнал будет пустым.
Как отличить ошибку данных от ошибки программы
Прочитать текст — полдела. Дальше нужно понять, кто чинит. Есть три признака.
- 📄 Ошибка воспроизводится только на одном документе. Значит, проблема в его данных: пустое поле, удалённый элемент справочника, неверная дата. Чинит пользователь.
- 🔁 Ошибка на любом документе этого вида. Скорее всего, сбой в коде, внешней обработке или расширении. Чинит программист или поставщик доработки.
- 👥 Ошибка у всех пользователей сразу, при любом действии. Проблема в базе, сервере или сети. Чинит администратор.
Простая проверка: попросите коллегу повторить то же действие под своей учётной записью. Если у него проходит — дело в правах или настройках пользователя.
Модуль в фигурных скобках тоже подсказывает. ВнешняяОбработка… или имя, начинающееся с префикса вашего разработчика, — значит, падает доработка, а не типовая конфигурация. Расширения видно в Администрирование → Печатные формы, отчеты и обработки → Расширения.
Технический журнал для администраторов
Журнал регистрации пишет то, что видит конфигурация. Технический журнал пишет то, что видит платформа: исключения, ошибки СУБД, падения процессов, долгие запросы. Его включают на время поиска проблемы.
Как включить
Создайте файл 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">
<log location="D:\1c_techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
location— папка для логов. Выберите диск, где много места.history— сколько часов хранить файлы.EXCP— события исключений. Для взаимоблокировок добавляютTDEADLOCKиTLOCK, для ошибок SQL —DBMSSQLилиDBPOSTGRS.
Платформа подхватывает файл без перезапуска, обычно в течение минуты.
Не оставляйте полный технический журнал включённым надолго. Подробный набор событий за день занимает гигабайты и нагружает сервер. Собрали данные — удалите или переименуйте logcfg.xml.
Как читать файлы
Логи лежат в подпапках по процессам: rphost_1234, rmngr_5678, 1cv8c_…. Файлы называются по дате и часу: 26100714.log — это 7 октября, 14 часов.
Строка лога начинается со времени и длительности, затем имя события и свойства через запятую. Ищите EXCP и смотрите свойство Descr — в нём текст исключения. Свойство Usr подскажет пользователя, Context — где в коде это произошло.
Для поиска по большим логам удобнее findstr в Windows или grep в Linux, чем открывать файл в блокноте:
findstr /s /i "EXCP" D:\1c_techlog\*.log > D:\excp.txt
Ошибки при обмене данными
Синхронизация между базами, обмен с сайтом или с бухгалтерией пишет ошибки в свои места.
Синхронизация данных в типовых конфигурациях
Откройте Администрирование → Синхронизация данных. В списке настроек видно состояние последнего обмена. При ошибке рядом с настройкой появится отметка и ссылка на события. Она ведёт в журнал регистрации с готовым отбором по событиям обмена.
Читайте так:
- Определите направление: ошибка при выгрузке — проблема в нашей базе, при загрузке — в принимаемых данных или в базе-получателе.
- Найдите объект: в тексте обычно указаны вид документа или элемент справочника.
- Откройте этот объект в базе-источнике и проверьте заполнение.
Частые ситуации при обмене
| Что сказано в ошибке | Что проверить |
|---|---|
| Не удалось подключиться ко второй базе | Доступность базы, адрес публикации, логин и пароль пользователя обмена |
| Сообщение обмена уже было принято или номер не совпадает | Базы рассинхронизировались, нужна повторная выгрузка всех данных по настройке |
| Нет правила для объекта или типа | Версии конфигураций разошлись с правилами обмена, обновите вторую базу |
| Документ загружен, но не проведён | Ошибку проведения ищите в журнале базы-получателя |
Не удаляйте настройку синхронизации, чтобы «начать с чистого листа». Связи объектов между базами потеряются, и следующий обмен создаст дубли.
Когда пора звать специалиста
Часть ошибок пользователь закрывает сам. Признаки, что пора остановиться и передать задачу:
- 🔴 В тексте есть
Нарушена целостность структуры конфигурацииилиОшибка формата потокаповторяется после очистки кэша. - 🔴 Ошибка СУБД с упоминанием диска, места или повреждённой страницы.
- 🔴 Ошибка появляется у всех пользователей на любом действии.
- 🔴 Падает сам клиент с окном «Приложение завершено аварийно».
- 🔴 Последний блок «по причине» указывает на вашу доработку или расширение.
- 🔴 После ошибки пропали или задвоились движения документов.
Что приложить к обращению, чтобы специалист не переспрашивал:
Как сделать, чтобы ошибок стало меньше
Основная часть ошибок рождается до нажатия кнопки «Провести». Несколько привычек сокращают их заметно.
- Обновляйте конфигурацию регулярно. Многие ошибки исправлены в следующих релизах, и в описании изменений их видно.
- Перед обновлением проверяйте доработки. Внешние обработки и расширения ломаются первыми.
- Делайте резервную копию перед тестированием, исправлением базы и обновлением.
- Не проводите документы массово в рабочее время. Перепроведение за квартал блокирует данные для всех.
- Держите журнал регистрации включённым с хранением хотя бы за месяц. Без него ошибку недельной давности не восстановить.
- Следите за местом на диске сервера и рабочих машин. Нехватка места даёт самые странные тексты ошибок.
- Не правьте данные через обработки вроде групповой обработки реквизитов без понимания, что изменится.
Частые вопросы
Почему в окне ошибки нет кнопки «Подробно»?
Можно ли посмотреть ошибки другого пользователя?
Что делать, если журнал регистрации пустой?
Где хранится журнал регистрации файловой базы?
1Cv8Log внутри каталога базы. Удалять её не нужно: вместе с ней пропадёт история событий.