К статье
Практический материал

Разработка и Конфигурация · 11 мин

Что такое отладка в 1С:Бухгалтерия и как ей пользоваться

Отладка в 1С:Бухгалтерия — что это, как включить режим отладки, поставить точку останова, посмотреть переменные и найти ошибку в коде или отчёте.

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

Инструмент встроен в конфигуратор и работает с любой конфигурацией на платформе 1С:Предприятие 8.3, включая «1С:Бухгалтерию предприятия». Пользоваться им могут как разработчики, дорабатывающие конфигурацию, так и внедренцы, разбирающиеся в нестандартном поведении типовых механизмов. Для большинства задач достаточно базовых приёмов: точка останова, пошаговое выполнение и просмотр значений.

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

Что такое отладка и когда она нужна

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

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

Отладка не нужна, если ошибка очевидна из сообщения (например, «не заполнен реквизит») или если проблема решается настройкой — сменой учётной политики, прав пользователя, параметров отчёта. Тратить время на отладчик в таких случаях нерационально.

Как включить режим отладки

Отладка запускается из конфигуратора. Для этого нужны права на конфигурирование и отладку — обычный пользователь с правами «бухгалтер» этот режим не откроет. Откройте конфигуратор, войдите в базу под учётной записью с полными правами и перейдите в меню «Отладка» → «Начать отладку» (клавиша F5). Платформа запустит клиентское приложение в режиме отладки.

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

Для файловых баз настройка обычно не требуется. Для клиент-серверных баз нужно, чтобы сервер 1С был запущен с разрешением отладки (ключ -debug в параметрах службы агента сервера). Без этого флага отладчик не сможет подключиться к серверным процедурам — а в «1С:Бухгалтерии» значительная часть логики, включая проведение документов, выполняется именно на сервере.

Основные приёмы: точки останова и пошаговое выполнение

Точка останова ставится щелчком мыши на серой полосе слева от строки кода или клавишей F9. Когда выполнение дойдёт до этой строки, программа остановится, и в конфигураторе подсветится текущая позиция. Дальше вы управляете выполнением вручную.

Основные команды пошагового выполнения: «Шагнуть через» (F10) — выполнить текущую строку, не заходя внутрь вызываемых процедур; «Шагнуть в» (F11) — войти внутрь вызываемой процедуры или функции; «Шагнуть из» (Shift+F11) — выполнить текущую процедуру до конца и остановиться в вызывающем коде; «Продолжить» (F5) — выполнять дальше до следующей точки останова.

Точку останова можно сделать условной: в свойствах точки задаётся выражение, и остановка произойдёт только когда оно истинно. Это незаменимо, когда код выполняется в цикле по тысяче строк таблицы, а ошибка возникает на одной конкретной записи — например, остановиться, только когда Номенклатура = нужное значение.

Порядок действий при поиске ошибки
  1. 1
    Откройте конфигуратор под учётной записью с полными правами
  2. 2
    Поставьте точку останова в начале подозрительной процедуры
  3. 3
    Запустите отладку (F5) и воспроизведите ошибку в клиентском приложении
  4. 4
    Когда сработает точка останова, пройдите код шагами (F10/F11), наблюдая значения переменных
  5. 5
    Найдите строку, где значение становится неверным или возникает исключение
  6. 6
    Остановите отладку, исправьте код или данные и проверьте результат повторно

Как смотреть значения переменных

Когда выполнение остановлено, главный инструмент — просмотр значений. Наведите курсор на переменную в коде, и всплывающая подсказка покажет её текущее значение. Для детального просмотра выделите выражение и нажмите Shift+F9 — откроется окно «Вычислить выражение», где можно развернуть структуру объекта: поля документа, строки табличной части, свойства запроса.

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

Отдельный приём — просмотр стека вызовов (Ctrl+Alt+C). Он показывает цепочку процедур, которая привела к текущей точке. Когда ошибка возникает глубоко внутри типовых механизмов «1С:Бухгалтерии», стек вызовов помогает понять, откуда началось выполнение и какие параметры передавались на каждом уровне.

При отладке проведения документа в 1С:Бухгалтерии ставьте первую точку останова в обработчике ОбработкаПроведения модуля объекта, а не в типовых общих модулях. Так вы быстрее увидите собственные данные документа и поймёте, корректны ли они на входе.
ПЗ
Практическое замечание

Отладка типичных задач в 1С:Бухгалтерии

Документ не проводится

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

Отчёт выдаёт неверные суммы

Откройте схему компоновки данных отчёта и поставьте точку останова в модуле объекта отчёта или в обработчике «ПриКомпоновкеРезультата». Проверьте параметры, которые передаются в запрос: период, организация, отборы. Часто причина неверных цифр — не код, а отбор, который пользователь установил и забыл, либо параметр учётной политики, влияющий на расчёт.

Внешняя обработка падает с ошибкой

Откройте обработку в конфигураторе («Файл» → «Открыть»), поставьте точку останова в начале выполняемого действия и запустите обработку в отладочном сеансе. Если ошибка возникает только на конкретных данных, используйте условную точку останова или добавьте в табло проблемное значение, чтобы отследить момент его появления.

Ограничения и типичные ошибки

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

Ещё одно ограничение: отладка показывает логику кода, но не содержимое запросов к базе в развёрнутом виде. Чтобы увидеть, что вернул запрос, вычислите результат через Shift+F9 и разверните выборку в окне просмотра. Для анализа самих запросов полезна консоль запросов — отдельный инструмент, дополняющий отладчик.

Типичные ошибки
01
Отладка в рабочей базе без копии — риск прервать работу пользователей и повредить данные при обновлении конфигурации
02
Точка останова в клиентском коде, когда логика выполняется на сервере — отладчик не останавливается, и кажется, что код не выполняется
03
Исправление симптома вместо причины: подмена значения в отладчике маскирует ошибку, которая вернётся на других данных
04
Забытые точки останова после отладки — при следующем запуске программа неожиданно останавливается в старых местах

Проверка результата после исправления

После того как причина найдена и исправлена, снимите все точки останова («Отладка» → «Отключить все точки останова») и повторите сценарий в обычном режиме. Убедитесь, что документ проводится, отчёт сходится с контрольными данными, обработка завершается без ошибок. Проверяйте не только проблемный случай, но и смежные: исправление не должно сломать соседнюю логику.

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

Контрольные точки

Как проверить результат

Проведение документа
Норма

Документ проводится без сообщений, движения по регистрам соответствуют ожиданиям

Тревожный признак

Ошибка сохраняется или появляются лишние/нулевые проводки

Суммы в отчёте
Норма

Данные сходятся с оборотно-сальдовой ведомостью по тем же отборам

Тревожный признак

Расхождения остаются или появились на других отборах

Работа без отладчика
Норма

Сценарий выполняется корректно в обычном сеансе пользователя

Тревожный признак

Исправление работает только при запуске из конфигуратора

Часто задаваемые вопросы

Может ли бухгалтер без навыков программирования пользоваться отладкой?

Базовые действия — запустить отладку, поставить точку останова и посмотреть значение переменной — доступны любому пользователю с правами на конфигуратор. Однако интерпретация увиденного требует понимания встроенного языка 1С. На практике бухгалтеру достаточно уметь воспроизвести ошибку и зафиксировать текст сообщения, а отладку выполняет специалист.

Почему точка останова не срабатывает?

Чаще всего код выполняется на сервере, а сервер запущен без ключа -debug, либо отладчик подключён не к тому сеансу. Также проверьте, что точка стоит в актуальной версии модуля — после изменения конфигурации без обновления базы код в памяти может отличаться от открытого в редакторе.

Можно ли отлаживать код в рабочей базе, где сейчас работают пользователи?

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

Чем отладка отличается от тестирования и исправления информационной базы?

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

Как отладить ошибку, которая возникает только у одного пользователя?

Используйте подключение к сеансу этого пользователя через «Отладка» → «Подключение». Причина часто кроется в правах, персональных настройках или конкретных данных, с которыми работает пользователь. Воспроизведите его действия под отладкой и сравните значения переменных с аналогичным сценарием под своей учётной записью.

Нужна ли отдельная лицензия для режима отладки?

Нет, отладчик входит в состав платформы 1С:Предприятие и не требует дополнительной лицензии. Достаточно лицензии на платформу и прав доступа к конфигуратору в конкретной базе.

Итог

Что важно запомнить

Отладка в 1С:Бухгалтерия — это пошаговый анализ выполнения кода в конфигураторе с помощью точек останова, просмотра переменных и стека вызовов. Для клиент-серверных баз нужен запуск сервера с ключом -debug, для безопасности — работа на копии базы. Найдя причину, проверяйте исправление в обычном режиме и на нескольких примерах.