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

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

Как включить отладку в 1С: пошаговая инструкция

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

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

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

Что нужно для работы отладки

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

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

Включение отладки при запуске из конфигуратора

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

Если нужно запустить клиент без начала отладки, но с возможностью подключиться позже, используйте «Отладка → Начало отладки → Начать отладку» с предварительной настройкой, либо просто запустите клиент через «Сервис → 1С:Предприятие» и потом подключитесь вручную через «Отладка → Подключение».

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

Запуск клиента с параметром /debug

Если клиент уже работает или запускается отдельно, добавьте в командную строку параметр /debug. Для толстого и тонкого клиента это выглядит так: 1cv8.exe /debug для толстого клиента и 1cv8c.exe /debug для тонкого. Параметр можно добавить в ярлык запуска базы или в дополнительные параметры запуска в списке информационных баз.

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

cmd
"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" ENTERPRISE /F"C:\Bases\MyBase" /debug

Для веб-клиента параметр отладки передаётся в строке адреса браузера: добавьте к URL параметр debug (например, ?debug или &debug в зависимости от публикации). Затем подключитесь к сеансу через «Отладка → Подключение» в конфигураторе.

Включение отладки на сервере 1С

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

Типовой способ: остановите службу «Агент сервера 1С:Предприятия», затем в реестре (ветка службы, параметр ImagePath) добавьте к строке запуска ключ -debug, после чего запустите службу снова. Альтернатива — перерегистрировать службу командой ragent с параметрами, включающими -debug.

cmd
ragent.exe -instsrvc -debug -usr <пользователь> -pwd <пароль>

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

Подключение к уже запущенному сеансу

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

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

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

Что делать, если отладка не видит сеанс

Клиент запущен вручную без параметраПерезапустите клиент с параметром /debug
Не видны серверные предметы отладкиПроверьте, что служба агента сервера запущена с ключом -debug
Список подключения пуст полностьюСверьте версии платформы конфигуратора и клиента, проверьте брандмауэр
Останавливается только клиентский кодПодключите серверный предмет отладки через Отладка → Подключение

Основные приёмы работы в отладчике

Точка останова ставится клавишей F9 на строке кода — при достижении этой строки выполнение остановится. Клавиша F11 выполняет шаг с заходом в процедуры, F10 — шаг без захода, Shift+F11 — выход из текущей процедуры, F5 — продолжение выполнения до следующей точки останова.

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

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

Проверка результата и ограничения

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

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

Итог

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

Файловая база: F5 в конфигураторе решает всё. Отдельный клиент: параметр /debug и подключение через Отладка → Подключение. Серверный код: ключ -debug у службы агента сервера с обязательным отключением после работы.

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

Почему точка останова не срабатывает, хотя отладка включена?

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

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

Да, если сеанс этого пользователя запущен с параметром /debug (или на сервере включён режим отладки), его сеанс появится в списке подключения конфигуратора. Потребуются соответствующие права: у пользователя конфигуратора должно быть право на отладку и, для серверных контекстов, административные права на кластер.

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

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

Влияет ли включённая отладка на работу пользователей?

Локальный параметр /debug у отдельного клиента влияет только на этот сеанс. А вот ключ -debug на службе агента сервера включает отладку для всего кластера и заметно снижает производительность сервера, поэтому на продуктиве его отключают сразу после завершения работ.

Что делать, если конфигуратор и клиент разных версий платформы?

Отладка между разными версиями платформы не работает. Установите одинаковый релиз платформы для конфигуратора, клиента и сервера либо запускайте конфигуратор той же версии, под которой работает база.