Администрирование · 11 мин
Как искать ошибки в 1С: практическое руководство
Практическое руководство по поиску ошибок в 1С: журнал регистрации, тестирование и исправление, отладчик, проверка данных. Порядок действий при сбоях базы.
Ошибки в 1С делятся на три большие группы: ошибки платформы (сбои самого движка, падения, проблемы с базой), ошибки конфигурации (некорректный код, незаполненные проверки) и ошибки данных (битые ссылки, дубли, неверные остатки). Правильный поиск начинается с классификации: от того, к какой группе относится проблема, зависит инструмент диагностики.
Типичные симптомы различить несложно. Сообщение вида «Ошибка формата потока» или аварийное завершение клиента указывает на повреждение информационной базы или кэша. Окно с текстом «Ошибка при выполнении обработчика» и стеком вызовов — признак ошибки в коде конфигурации. Некорректные цифры в отчётах без явных сообщений — почти всегда проблема данных или методики ввода.
До начала любых действий сделайте резервную копию базы: для файлового варианта — скопируйте файл 1Cv8.1CD, для клиент-серверного — выгрузку через конфигуратор или средствами СУБД. Большинство инструментов исправления (например, «Тестирование и исправление») изменяют базу необратимо, и откат без копии будет невозможен.
Чтение сообщения об ошибке: первый источник информации
Текст ошибки в 1С содержит больше информации, чем кажется. В сообщении обычно указаны: объект, в котором произошёл сбой (документ, справочник, регистр), имя процедуры или обработчика и номер строки модуля. Формулировка вида «Поле объекта не обнаружено (СуммаДокумента)» означает, что код обращается к реквизиту, которого нет в объекте, — типичная ситуация после обновления конфигурации или при обмене данными.
Зафиксируйте точный текст ошибки, скриншот и последовательность действий, которые к ней привели. Проверьте воспроизводимость: повторяется ли ошибка у другого пользователя, на другом компьютере, в другой базе. Если сбой возникает только у одного пользователя на одном компьютере, с высокой вероятностью проблема в локальном кэше метаданных, а не в базе.
Очистите кэш метаданных, проверьте версию платформы на этом ПК
Смотрите журнал регистрации и стек вызовов
Тестирование и исправление, проверка chdbfl
Проверяйте отчёты, движения документов, остатки регистров
Журнал регистрации: где искать следы сбоя
Журнал регистрации — основной штатный инструмент диагностики. Откройте его через «Администрирование → Обслуживание → Журнал регистрации» (в типовых конфигурациях) или через конфигуратор. Настройте отбор по периоду, пользователю и уровню событий «Ошибка» — это отсечёт информационные записи и покажет только сбои.
Каждая запись содержит дату и время, пользователя, компьютер, тип события, комментарий и представление данных, с которыми работал сеанс. По комбинации «время + пользователь + объект» обычно удаётся точно восстановить контекст: какой документ проводился, какая обработка запускалась, какой фоновый процесс завершился с ошибкой.
Обратите внимание на фоновые задания: ошибки регламентных операций (обмены, расчёты, рассылки) видны только в журнале и не показываются пользователю всплывающим окном. Если «само по себе» не выполняется обмен или не формируется отчёт по расписанию — первым делом ищите ошибку фонового задания в журнале.
- 1Откройте журнал и установите отбор по уровню «Ошибка» за нужный период
- 2Найдите запись по времени и пользователю, совпадающую с моментом сбоя
- 3Раскройте запись: изучите комментарий, данные и стек вызовов
- 4Повторите действие пользователя, чтобы подтвердить связь записи с ошибкой
- 5Сохраните выгрузку журнала, если потребуется передача разработчику
Очистка кэша и проверка версии платформы
Кэш метаданных — частая причина «необъяснимых» ошибок: после обновления конфигурации старые кэшированные данные конфликтуют с новой структурой. Признаки: ошибки вида «Ошибка формата потока», «Поле не обнаружено» при очевидно существующем реквизите, странное поведение форм только на конкретном компьютере.
Способы очистки: удалить базу из списка в стартере и добавить заново; удалить папки кэша вручную в каталогах %APPDATA%\1C\1cv8 и %APPDATA%\1C\1cv82 (при закрытых сеансах 1С); для клиент-серверного варианта — перезапустить сервер 1С или очистить серверный кэш. После очистки первый запуск будет медленнее — платформа заново построит кэш.
Параллельно сверьте версию платформы: конфигурация может требовать платформу не ниже определённого релиза. Проверка выполняется через «Сервис → О программе» и в свойствах информационной базы. Несовпадение версий на разных компьютерах в одной сети — типичный источник ошибок «у одного работает, у другого нет».
Тестирование и исправление информационной базы
Штатная утилита «Тестирование и исправление» (конфигуратор → Администрирование) проверяет физическую и логическую целостность базы. Доступные проверки: реиндексация таблиц, проверка логической целостности, проверка ссылочной целостности, пересчёт итогов, сжатие таблиц. Для диагностики запускайте режим «Тестирование» без исправления — он покажет перечень проблем, ничего не меняя.
Режим «Исправление» применяйте осознанно. Опция «При обнаружении ссылок на несуществующие объекты: удалять» безвозвратно удалит записи с битыми ссылками — иногда это единственный выход, но чаще правильнее сначала выгрузить список таких объектов и разобраться, почему ссылки потерялись. Пересчёт итогов безопасен и часто устраняет расхождения в остатках регистров.
Для файловых баз существует отдельная утилита chdbfl.exe из каталога платформы — она проверяет физическую целостность файла 1Cv8.1CD на уровне ниже, чем тестирование в конфигураторе. Её используют, когда база вообще не открывается или конфигуратор падает при попытке тестирования.
Отладчик конфигуратора: поиск ошибок в коде
Если ошибка воспроизводится и связана с конкретным действием, самый точный инструмент — отладчик. В конфигураторе включите «Отладка → Начать отладку», поставьте точку останова в процедуре, указанной в сообщении об ошибке, и повторите действие пользователя. Отладчик остановится на нужной строке и покажет значения всех переменных.
Полезные приёмы: остановка по ошибке («Отладка → Остановка по ошибке») автоматически прерывает выполнение в момент исключения; окно «Вычислить выражение» (Ctrl+W рядом с табло) позволяет проверить содержимое запросов, структур и таблиц значений; стек вызовов показывает цепочку процедур, приведшую к сбою. Для клиент-серверного режима убедитесь, что отладка на сервере разрешена в настройках кластера.
// Включение отладки на сервере 1С (параметр службы агента)
srvc1cv8.exe -agent -debug
// Поиск ошибки в тексте модуля по номеру строки из сообщения об ошибке:
// Конфигуратор -> Отладка -> Остановка по ошибке (с флагом "Останавливаться по ошибке")Ошибки данных: битые ссылки, дубли, неверные остатки
Битая ссылка выглядит как «Объект не найден (…:…)» в полях документов и отчётов. Возникает при физическом удалении объекта, на который остались ссылки, при сбоях обмена или некорректной выгрузке. Найти такие ссылки можно тестированием с проверкой ссылочной целостности или универсальными отчётами по поиску битых ссылок. Устранение — восстановление объекта из копии, замена ссылки или осознанное удаление записей.
Неверные остатки и расхождения в отчётах проверяйте от общего к частному: сформируйте отчёт на разные даты, сравните обороты с движениями конкретных документов, найдите документ, после которого цифры «поплыли». Частые причины — ручные операции, изменение документов задним числом без перепроведения, сбои при проведении. Помогают перепроведение документов за период (обработкой «Групповое перепроведение») и пересчёт итогов регистров.
Дубли элементов справочников (контрагенты, номенклатура) не вызывают явных ошибок, но искажают отчёты и аналитику. В типовых конфигурациях есть штатные обработки поиска и удаления дублей («Администрирование → Обслуживание → Корректировка данных»). Перед объединением дублей проверьте, по каким элементам есть движения в закрытых периодах.
Когда ошибку должен исправлять специалист
Самостоятельно безопасно выполнять: чтение журнала регистрации, очистку кэша, проверку версии платформы, диагностическое тестирование без исправления, анализ отчётов. Всё это не меняет данные и легко откатывается.
К разработчику или администратору 1С стоит обращаться при: повреждении физической структуры базы, ошибках после неудачного обновления конфигурации, сбоях в механизмах обмена и интеграций, необходимости править код модулей, массовых некорректных данных неизвестного происхождения. Передавая задачу, приложите текст ошибки, выгрузку журнала регистрации, версии платформы и конфигурации — это сократит диагностику в разы.
Как выбрать действие
Что важно запомнить
Любая диагностика начинается с резервной копии и чтения журнала регистрации. Локальные сбои лечатся очисткой кэша, повреждения базы — тестированием и chdbfl, ошибки кода — отладчиком, ошибки данных — анализом движений документов. Всё, что изменяет базу, выполняется только после копии и при закрытых сеансах.
Частые вопросы
Что делать, если 1С пишет «Ошибка формата потока»?
Сначала очистите кэш метаданных: удалите базу из списка стартера и добавьте заново либо удалите папки кэша в %APPDATA%\1C при закрытых сеансах. Если не помогло — сделайте копию базы и запустите «Тестирование и исправление», а для файловой базы, которая не открывается, — утилиту chdbfl.exe из каталога платформы.
Как найти, кто изменил или удалил документ?
Откройте журнал регистрации и настройте отбор по типу событий «Данные. Изменение» и «Данные. Удаление» с указанием нужного объекта. Записи покажут пользователя, время и компьютер. Если журнал «пустой», проверьте настройку уровней регистрации событий в конфигураторе.
Можно ли запускать «Тестирование и исправление» при работающих пользователях?
Нет. Процедура требует монопольного доступа: все сеансы должны быть завершены, фоновые задания остановлены. Запуск при активных подключениях либо не начнётся, либо создаст риск повреждения данных. Перед стартом обязательно сделайте резервную копию.
Отчёт показывает неверные остатки, но ошибок нет. С чего начать?
Сформируйте отчёт на несколько дат подряд и найдите день, когда остаток изменился скачком. Затем откройте движения документов этого дня по нужному регистру и найдите документ с некорректной суммой или количеством. Часто помогает пересчёт итогов регистра и перепроведение документов за проблемный период.
Обновление конфигурации завершилось с ошибкой. Что делать?
Не перезапускайте обновление повторно вслепую. Сохраните текст ошибки и журнал регистрации, проверьте свободное место на диске и соответствие версии платформы требованиям релиза. Если обновление прервалось на середине, база может быть в несогласованном состоянии — восстановите её из копии, сделанной перед обновлением, и повторите процесс после устранения причины.
Чем отличается ошибка платформы от ошибки конфигурации?
Ошибка конфигурации возникает в коде прикладного решения и содержит ссылку на модуль и строку — её исправляет разработчик конфигурации. Ошибка платформы проявляется как аварийное завершение, повреждение данных или сбой независимо от конкретного кода; она лечится обновлением платформы, очисткой кэша или восстановлением базы.