Разработка и Конфигурация · 11 мин
Что такое отладка в 1С:Бухгалтерия и как ей пользоваться
Отладка в 1С:Бухгалтерия — что это, как включить режим отладки, поставить точку останова, посмотреть переменные и найти ошибку в коде или отчёте.
Отладка в 1С:Бухгалтерия — это процесс поиска и исправления ошибок в программном коде конфигурации с помощью встроенного отладчика платформы 1С:Предприятие. Отладчик позволяет остановить выполнение программы в нужной точке, посмотреть значения переменных, пройти код по шагам и понять, почему документ не проводится, отчёт выдаёт неверные цифры или обработка завершается с ошибкой.
Инструмент встроен в конфигуратор и работает с любой конфигурацией на платформе 1С:Предприятие 8.3, включая «1С:Бухгалтерию предприятия». Пользоваться им могут как разработчики, дорабатывающие конфигурацию, так и внедренцы, разбирающиеся в нестандартном поведении типовых механизмов. Для большинства задач достаточно базовых приёмов: точка останова, пошаговое выполнение и просмотр значений.
Важно понимать границу: отладчик показывает, как выполняется код, но не исправляет данные в базе. Если проблема в некорректных остатках или повреждённых документах, отладка поможет найти причину, однако исправление потребует отдельных действий — перепроведения документов, корректировки данных или обращения к специалисту.
Что такое отладка и когда она нужна
Отладка — это контролируемое выполнение программы, при котором разработчик видит внутреннее состояние системы: какие значения принимают переменные, какие ветки условий срабатывают, какие запросы к базе данных выполняются. В обычном режиме пользователь видит только результат — проведённый документ или сообщение об ошибке. В отладке виден весь путь к этому результату.
Типичные ситуации, когда без отладки не обойтись: документ не проводится с невнятной ошибкой, отчёт показывает суммы, которые не сходятся с обороткой, внешняя обработка падает на конкретных данных, после обновления конфигурации перестал работать доработанный механизм. Во всех этих случаях отладчик позволяет локализовать проблему — найти конкретную строку кода и конкретное значение, на котором всё ломается.
Отладка не нужна, если ошибка очевидна из сообщения (например, «не заполнен реквизит») или если проблема решается настройкой — сменой учётной политики, прав пользователя, параметров отчёта. Тратить время на отладчик в таких случаях нерационально.
Как включить режим отладки
Отладка запускается из конфигуратора. Для этого нужны права на конфигурирование и отладку — обычный пользователь с правами «бухгалтер» этот режим не откроет. Откройте конфигуратор, войдите в базу под учётной записью с полными правами и перейдите в меню «Отладка» → «Начать отладку» (клавиша F5). Платформа запустит клиентское приложение в режиме отладки.
Есть два сценария запуска. Первый — отладка запускает новый сеанс клиентского приложения, и вы работаете в нём как обычный пользователь, пока код не дойдёт до точки останова. Второй — подключение к уже работающему сеансу через «Отладка» → «Подключение»: полезно, когда ошибка воспроизводится у конкретного пользователя на терминальном сервере.
Для файловых баз настройка обычно не требуется. Для клиент-серверных баз нужно, чтобы сервер 1С был запущен с разрешением отладки (ключ -debug в параметрах службы агента сервера). Без этого флага отладчик не сможет подключиться к серверным процедурам — а в «1С:Бухгалтерии» значительная часть логики, включая проведение документов, выполняется именно на сервере.
Основные приёмы: точки останова и пошаговое выполнение
Точка останова ставится щелчком мыши на серой полосе слева от строки кода или клавишей F9. Когда выполнение дойдёт до этой строки, программа остановится, и в конфигураторе подсветится текущая позиция. Дальше вы управляете выполнением вручную.
Основные команды пошагового выполнения: «Шагнуть через» (F10) — выполнить текущую строку, не заходя внутрь вызываемых процедур; «Шагнуть в» (F11) — войти внутрь вызываемой процедуры или функции; «Шагнуть из» (Shift+F11) — выполнить текущую процедуру до конца и остановиться в вызывающем коде; «Продолжить» (F5) — выполнять дальше до следующей точки останова.
Точку останова можно сделать условной: в свойствах точки задаётся выражение, и остановка произойдёт только когда оно истинно. Это незаменимо, когда код выполняется в цикле по тысяче строк таблицы, а ошибка возникает на одной конкретной записи — например, остановиться, только когда Номенклатура = нужное значение.
- 1Откройте конфигуратор под учётной записью с полными правами
- 2Поставьте точку останова в начале подозрительной процедуры
- 3Запустите отладку (F5) и воспроизведите ошибку в клиентском приложении
- 4Когда сработает точка останова, пройдите код шагами (F10/F11), наблюдая значения переменных
- 5Найдите строку, где значение становится неверным или возникает исключение
- 6Остановите отладку, исправьте код или данные и проверьте результат повторно
Как смотреть значения переменных
Когда выполнение остановлено, главный инструмент — просмотр значений. Наведите курсор на переменную в коде, и всплывающая подсказка покажет её текущее значение. Для детального просмотра выделите выражение и нажмите Shift+F9 — откроется окно «Вычислить выражение», где можно развернуть структуру объекта: поля документа, строки табличной части, свойства запроса.
Окно «Табло» (открывается через меню «Отладка») позволяет держать перед глазами список выражений, значения которых обновляются на каждом шаге. Удобно вынести туда ключевые переменные и наблюдать, в какой момент значение становится неправильным.
Отдельный приём — просмотр стека вызовов (Ctrl+Alt+C). Он показывает цепочку процедур, которая привела к текущей точке. Когда ошибка возникает глубоко внутри типовых механизмов «1С:Бухгалтерии», стек вызовов помогает понять, откуда началось выполнение и какие параметры передавались на каждом уровне.
При отладке проведения документа в 1С:Бухгалтерии ставьте первую точку останова в обработчике ОбработкаПроведения модуля объекта, а не в типовых общих модулях. Так вы быстрее увидите собственные данные документа и поймёте, корректны ли они на входе.
Отладка типичных задач в 1С:Бухгалтерии
Документ не проводится
Поставьте точку останова в обработчике «ОбработкаПроведения» модуля объекта документа и запустите проведение под отладкой. Проходите код шагами и смотрите, какое условие отказывает в проведении: чаще всего это проверка заполнения реквизитов, контроль остатков или отказ в подписке на событие. Сообщение об ошибке, которое видит пользователь, формируется в конкретной строке — найдите её через поиск текста сообщения по модулям конфигурации.
Отчёт выдаёт неверные суммы
Откройте схему компоновки данных отчёта и поставьте точку останова в модуле объекта отчёта или в обработчике «ПриКомпоновкеРезультата». Проверьте параметры, которые передаются в запрос: период, организация, отборы. Часто причина неверных цифр — не код, а отбор, который пользователь установил и забыл, либо параметр учётной политики, влияющий на расчёт.
Внешняя обработка падает с ошибкой
Откройте обработку в конфигураторе («Файл» → «Открыть»), поставьте точку останова в начале выполняемого действия и запустите обработку в отладочном сеансе. Если ошибка возникает только на конкретных данных, используйте условную точку останова или добавьте в табло проблемное значение, чтобы отследить момент его появления.
Ограничения и типичные ошибки
Отладчик платформы не работает в режиме обычного пользователя без прав на отладку — это ограничение безопасности. Также нельзя отладить код, выполняющийся в фоновых заданиях, без явного подключения к сеансу фонового задания через диалог подключения. Код на тонком и веб-клиенте отлаживается, но требует соответствующей настройки подключения.
Ещё одно ограничение: отладка показывает логику кода, но не содержимое запросов к базе в развёрнутом виде. Чтобы увидеть, что вернул запрос, вычислите результат через Shift+F9 и разверните выборку в окне просмотра. Для анализа самих запросов полезна консоль запросов — отдельный инструмент, дополняющий отладчик.
Проверка результата после исправления
После того как причина найдена и исправлена, снимите все точки останова («Отладка» → «Отключить все точки останова») и повторите сценарий в обычном режиме. Убедитесь, что документ проводится, отчёт сходится с контрольными данными, обработка завершается без ошибок. Проверяйте не только проблемный случай, но и смежные: исправление не должно сломать соседнюю логику.
Если исправление касалось расчёта сумм, сверьте результат с независимым источником — оборотно-сальдовой ведомостью, анализом счёта или данными до обновления. Совпадение цифр на одном примере не гарантирует корректность в целом: проверьте минимум несколько документов разных периодов и организаций, если их несколько.
Как проверить результат
Документ проводится без сообщений, движения по регистрам соответствуют ожиданиям
Ошибка сохраняется или появляются лишние/нулевые проводки
Данные сходятся с оборотно-сальдовой ведомостью по тем же отборам
Расхождения остаются или появились на других отборах
Сценарий выполняется корректно в обычном сеансе пользователя
Исправление работает только при запуске из конфигуратора
Часто задаваемые вопросы
Может ли бухгалтер без навыков программирования пользоваться отладкой?
Базовые действия — запустить отладку, поставить точку останова и посмотреть значение переменной — доступны любому пользователю с правами на конфигуратор. Однако интерпретация увиденного требует понимания встроенного языка 1С. На практике бухгалтеру достаточно уметь воспроизвести ошибку и зафиксировать текст сообщения, а отладку выполняет специалист.
Почему точка останова не срабатывает?
Чаще всего код выполняется на сервере, а сервер запущен без ключа -debug, либо отладчик подключён не к тому сеансу. Также проверьте, что точка стоит в актуальной версии модуля — после изменения конфигурации без обновления базы код в памяти может отличаться от открытого в редакторе.
Можно ли отлаживать код в рабочей базе, где сейчас работают пользователи?
Технически да, если подключиться к конкретному сеансу и только наблюдать, не меняя конфигурацию. Но любое изменение кода с обновлением конфигурации базы данных потребует завершения сеансов. Безопасная практика — скопировать базу и отлаживаться на копии.
Чем отладка отличается от тестирования и исправления информационной базы?
Отладка анализирует выполнение кода и логику программы. «Тестирование и исправление» — сервисная процедура конфигуратора, которая проверяет физическую целостность данных и может исправлять повреждённые записи. Это разные инструменты для разных проблем: логическая ошибка решается отладкой, повреждение данных — тестированием.
Как отладить ошибку, которая возникает только у одного пользователя?
Используйте подключение к сеансу этого пользователя через «Отладка» → «Подключение». Причина часто кроется в правах, персональных настройках или конкретных данных, с которыми работает пользователь. Воспроизведите его действия под отладкой и сравните значения переменных с аналогичным сценарием под своей учётной записью.
Нужна ли отдельная лицензия для режима отладки?
Нет, отладчик входит в состав платформы 1С:Предприятие и не требует дополнительной лицензии. Достаточно лицензии на платформу и прав доступа к конфигуратору в конкретной базе.
Что важно запомнить
Отладка в 1С:Бухгалтерия — это пошаговый анализ выполнения кода в конфигураторе с помощью точек останова, просмотра переменных и стека вызовов. Для клиент-серверных баз нужен запуск сервера с ключом -debug, для безопасности — работа на копии базы. Найдя причину, проверяйте исправление в обычном режиме и на нескольких примерах.