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

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

Отладчик 1С 8.3: как пользоваться на практике

Как пользоваться отладчиком 1С 8.3: точки останова, пошаговое выполнение, просмотр переменных, отладка клиента и сервера. Практическое руководство с примерами.

Отладчик 1С 8.3 — встроенный инструмент конфигуратора, который позволяет пошагово выполнять код, смотреть значения переменных и находить причину ошибки без догадок. Он работает и с тонким, и с толстым клиентом, и с сервером 1С, а также с веб-клиентом через HTTP-отладку.

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

Ниже разобраны практические приёмы: как включить отладку, какие виды точек останова существуют, как смотреть переменные и выражения, как отлаживать серверный код и внешние обработки, а также типичные ошибки, из-за которых отладка «не работает».

Как включить и запустить отладку в 1С 8.3

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

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

Для файловой базы дополнительных настроек обычно не нужно: достаточно начать отладку из конфигуратора. Для веб-клиента отладка включается через параметр отладки в настройках публикации и использует протокол HTTP.

Точки останова: виды и приёмы расстановки

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

Условные точки останова

Если цикл выполняется тысячи раз, а проблема проявляется на одной конкретной записи, обычная точка неудобна. Откройте свойства точки останова (правый клик по точке → «Свойства») и задайте условие, например СтрокаТаблицы.Номенклатура = ИскомаяНоменклатура. Выполнение остановится только тогда, когда условие истинно.

Остановка по ошибке

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

Пошаговое выполнение кода

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

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

Стек вызовов (окно «Отладка → Стек вызовов») показывает, откуда была вызвана текущая процедура. Это незаменимо, когда одна и та же функция вызывается из десятка мест и нужно понять, какой именно сценарий привёл к ошибке.

Порядок действий при поиске ошибки
  1. 1
    Включите остановку по ошибке или поставьте точку останова в предполагаемом месте проблемы
  2. 2
    Выполните в клиенте действие, которое вызывает ошибку
  3. 3
    После остановки откройте окно выражений (Shift+F9) и проверьте значения ключевых переменных
  4. 4
    Идите шагами F8/F11, отслеживая, где значение становится неверным
  5. 5
    Найдя строку-источник, исправьте код и повторите проверку

Просмотр переменных и вычисление выражений

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

Окно «Локальные переменные» (Ctrl+Shift+W в ряде версий или через меню «Отладка») показывает все переменные текущей процедуры сразу. Это удобно, когда нужно сравнить несколько значений, не вычисляя каждое отдельно.

Таблицы значений и результаты запросов просматриваются через «Табло» (F2 по выделенному выражению) — откроется табличное представление, где видно все строки и колонки. Для запроса удобно вычислить Запрос.Выполнить().Выгрузить() и открыть результат в табло.

Тип значенияЧем реально является переменная

Частая причина ошибок — Неопределено вместо ожидаемой ссылки или строка вместо числа

Стек вызововОткуда вызвана процедура

Помогает понять, какой сценарий привёл к текущей точке

Параметры запросаЧто реально передано в запрос

Пустой результат запроса чаще всего объясняется неверными параметрами

Отладка серверного кода, фоновых заданий и внешних обработок

На клиент-серверной архитектуре код делится на клиентский и серверный. Отладчик 1С 8.3 умеет переключаться между ними автоматически: при вызове серверной процедуры выполнение «проваливается» на сервер, если сервер запущен с флагом отладки. В окне подключения (Отладка → Подключение) видны предметы отладки — клиентские и серверные; при необходимости подключитесь к нужному вручную.

Фоновые задания отлаживаются через подключение: в списке предметов отладки найдите нужное фоновое задание и подключитесь к нему. Точки останова внутри кода фонового задания начнут срабатывать.

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

Маршрут решения

Как выбрать способ отладки

Ошибка возникает в обычном интерактивном действии пользователяНачните отладку через F5 и поставьте точку останова в обработчике
Ошибка на сервере в клиент-серверной базеПроверьте флаг -debug у сервера и подключитесь к серверному предмету отладки
Код выполняется в фоновом заданииИспользуйте Отладка → Подключение и выберите фоновое задание в списке
Место ошибки неизвестно, есть только текст исключенияВключите Отладка → Остановка по ошибке и воспроизведите сценарий

Частые проблемы и типичные ошибки

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

Вторая группа ошибок — неправильная интерпретация увиденного. Например, разработчик смотрит значение переменной до строки присваивания и делает вывод, что функция вернула неверный результат. Порядок проверки: сначала шагнуть через строку (F8), потом смотреть значение.

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

Ограничения и безопасная практика

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

Долгая остановка внутри транзакции держит блокировки. Если нужно долго анализировать ситуацию на рабочем контуре, лучше снять копию базы и отлаживаться там, а на рабочей ограничиться сбором технологического журнала или логированием.

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

Итог

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

Отладчик 1С 8.3 запускается из конфигуратора клавишей F5 или подключением к сеансу. Основные приёмы: точки останова (F9), шаги F8/F11, вычисление выражений (Shift+F9), стек вызовов и остановка по ошибке. Для сервера нужен флаг -debug, для экспериментов — копия базы.

Частые вопросы

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

Проверьте четыре вещи: подключён ли отладчик к нужному сеансу (Отладка → Подключение), запущен ли сервер с флагом -debug для серверного кода, открыта ли в клиенте актуальная версия обработки и выполняется ли эта ветка кода вообще. Часто помогает точка останова выше по логике вызова — если и она не срабатывает, проблема в подключении, а не в коде.

Как отладить код, который выполняется на сервере?

Агент сервера 1С должен быть запущен с параметром -debug. После перезапуска службы серверные предметы отладки появятся в окне подключения конфигуратора. Подключитесь к ним, и точки останова в серверных процедурах начнут работать.

Можно ли изменить значение переменной во время отладки?

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

Как найти место ошибки, если неизвестно, где она возникает?

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

Как отладить фоновое или регламентное задание?

Через «Отладка → Подключение»: в списке предметов отладки найдите нужное фоновое задание и подключитесь к нему. Для регламентных заданий удобно временно запускать тот же код как фоновое задание из обработки на тестовой копии — так проще поймать момент выполнения.

Чем отладка лучше вывода сообщений через Сообщить()?

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