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

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

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

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

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

Чаще всего проблема не в самом запуске, а в том, что отладка отключена на уровне информационной базы или сервера, сеанс пользователя не подключается к предмету отладки, либо код выполняется в фоновом задании, которое не попадает в список автоматического подключения. Ниже разобраны все способы запуска и типовые ситуации, в которых отладчик «не останавливается».

Что нужно проверить перед запуском отладки

Перед стартом убедитесь, что конфигуратор открыт под пользователем с правами на отладку. В роли пользователя должно быть право «Отладка» (это административное право, назначается в списке пользователей информационной базы). Без него команда запуска будет недоступна или сеанс не подключится.

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

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

Как запустить отладку из конфигуратора

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

Порядок действий
  1. 1
    Откройте конфигуратор и войдите под пользователем с правом «Отладка».
  2. 2
    Убедитесь, что конфигурация базы данных актуальна (Конфигурация → Обновить конфигурацию базы данных при необходимости).
  3. 3
    Расставьте точки останова клавишей F9 в нужных строках модулей.
  4. 4
    Нажмите F5 или выберите «Отладка → Начать отладку» — запустится клиентское приложение в режиме отладки.
  5. 5
    Выполните в клиенте действие, которое вызывает нужный код: платформа остановится на точке останова.
  6. 6
    Пошагово проходите код (F10 — шаг через, F11 — шаг внутрь) и смотрите значения переменных.

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

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

Настройка предметов отладки: что именно подключать

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

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

Типичные ошибки
01
Не отмечены фоновые задания в автоподключении — код регламентного задания выполняется мимо отладчика.
02
Точка останова стоит в серверной процедуре, а отладка на сервере не включена — остановки нет без каких-либо сообщений.
03
Конфигурация базы данных не обновлена — остановка происходит не на тех строках.
04
Отладка запущена под пользователем без права «Отладка» — сеанс не подключается.
05
Веб-клиент открыт в другом браузере, а в настройках указан другой тип — предмет отладки не находится.

Отладка на сервере 1С:Предприятия

В клиент-серверном варианте серверный код (процедуры с директивой «НаСервере», серверные общие модули) выполняется рабочим процессом сервера, и по умолчанию отладка там запрещена. Чтобы её включить, нужно перезапустить агент сервера 1С с ключом -debug в строке запуска службы.

На Windows это делается через реестр или оснастку служб: в параметрах запуска службы «Агент сервера 1С:Предприятия» добавьте -debug и перезапустите службу. На Linux ключ добавляется в скрипт или unit-файл запуска агента. После перезапуска серверные сеансы станут доступны для подключения в конфигураторе.

Для веб-клиента дополнительно проверьте публикацию: отладка через веб-сервер требует, чтобы в настройках публикации (файл default.vrd) был разрешён режим отладки. Если публикация создавалась без этого параметра, перепубликуйте базу из конфигуратора с включённой отладкой.

Точки останова и пошаговое выполнение

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

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

Окно «Табло» (Ctrl+Alt+W) позволяет держать перед глазами список отслеживаемых выражений — они пересчитываются на каждом шаге. Для объектов сложных типов (таблицы значений, структуры, ссылки) используйте разворачивание в окне вычисления выражений.

Если нужно понять, откуда вызывается процедура, не расставляйте точки по всем модулям — поставьте одну точку внутри неё и при остановке откройте стек вызовов (Ctrl+Alt+C). Там видна вся цепочка вызовов с параметрами.
ПЗ
Практическое замечание

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

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

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

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

Как выбрать действие

Точка останова не срабатывает в обычном клиентском кодеПроверьте право «Отладка», актуальность конфигурации БД и тип клиента в настройках автоподключения
Не останавливается серверный код на клиент-серверной базеПроверьте, что агент сервера запущен с ключом -debug, и перезапустите сеанс
Не отлаживается регламентное заданиеОтметьте фоновые задания в автоподключении и перезапустите задание
Не работает отладка в веб-клиентеПерепубликуйте базу с включённым режимом отладки в настройках публикации

Проверка результата и завершение отладки

Признак корректно настроенной отладки — остановка на точке останова с подсветкой текущей строки и доступными значениями переменных. Если выполнение прошло мимо, сверяйтесь с контрольными точками ниже.

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

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

Остановка на точке
Норма

Жёлтая стрелка на строке, доступны переменные и стек вызовов

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

Код выполнился без остановки — проверяйте предметы отладки и ключ -debug

Подключённые сеансы
Норма

В окне «Подключение» виден ваш сеанс с отметкой подключения

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

Список пуст или сеанс без флажка

Соответствие кода
Норма

Строка остановки совпадает с текстом модуля в конфигураторе

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

Остановка «не там» — обновите конфигурацию базы данных

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

Итог

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

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

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

Почему отладчик запускается, но не останавливается на точке останова?

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

Можно ли отлаживать код на продуктивной базе?

Технически да, но с оговорками: пошагово выполняемый код реально изменяет данные, а включённый ключ -debug на сервере снижает производительность и влияет на безопасность. Безопаснее воспроизводить проблему на копии базы.

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

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

Что делать, если кнопка «Начать отладку» недоступна?

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

Работает ли отладка в мобильном клиенте или через браузер?

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

Как остановить выполнение кода без точки останова?

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