Разработка и Конфигурация · 8 мин
Как включить отладку в 1С: пошаговая инструкция
Как включить отладку в 1С: настройка конфигуратора, запуск клиента с параметром /debug, отладка на сервере, точки останова и типичные ошибки при подключении.
Отладка в 1С — это режим, позволяющий пошагово выполнять код, просматривать значения переменных и находить ошибки в алгоритмах. Без включённого сервера отладки конфигуратор не увидит запущенный клиент, а точки останова просто не сработают. Механизм включения отличается в зависимости от режима работы: файловая база, клиент-серверный вариант, тонкий или веб-клиент.
Основная причина, по которой «не работает отладка», — клиент запущен без параметра отладки или сервер отладки не запущен на сервере 1С. Ниже разобраны все сценарии включения: от простого запуска из конфигуратора до настройки отладки на сервере предприятия и подключения к внешним сеансам.
Что нужно для работы отладки
Для отладки в файловом режиме достаточно конфигуратора и клиентского приложения на одном компьютере. В клиент-серверном варианте понадобится дополнительно включить режим отладки на сервере 1С:Предприятия, иначе серверный код (процедуры и функции, выполняющиеся на сервере) будет недоступен для пошагового выполнения.
Также важно, чтобы версия платформы конфигуратора совпадала с версией клиента и сервера. Разные релизы платформы — частая причина того, что конфигуратор «не видит» предметы отладки. Проверить версию можно через меню «Справка → О программе» в конфигураторе и в клиенте.
Включение отладки при запуске из конфигуратора
Самый простой способ — запустить клиент прямо из конфигуратора. Откройте конфигуратор, загрузите нужную базу и выполните команду меню «Отладка → Начать отладку» или нажмите клавишу F5. Платформа сама запустит клиентское приложение с параметром отладки, и конфигуратор сразу подключится к нему.
Если нужно запустить клиент без начала отладки, но с возможностью подключиться позже, используйте «Отладка → Начало отладки → Начать отладку» с предварительной настройкой, либо просто запустите клиент через «Сервис → 1С:Предприятие» и потом подключитесь вручную через «Отладка → Подключение».
- 1Откройте конфигуратор и загрузите базу
- 2Поставьте точку останова (F9) на нужной строке кода
- 3Нажмите F5 или Отладка → Начать отладку
- 4Выполните в клиенте действие, вызывающее отлаживаемый код
- 5При остановке используйте F11 (шаг с заходом) и F10 (шаг через)
Запуск клиента с параметром /debug
Если клиент уже работает или запускается отдельно, добавьте в командную строку параметр /debug. Для толстого и тонкого клиента это выглядит так: 1cv8.exe /debug для толстого клиента и 1cv8c.exe /debug для тонкого. Параметр можно добавить в ярлык запуска базы или в дополнительные параметры запуска в списке информационных баз.
В списке информационных баз откройте настройку базы (кнопка «Настройка» при редактировании) и впишите /debug в поле «Дополнительные параметры запуска». После этого каждый запуск этой базы будет выполняться в режиме, доступном для подключения отладчика.
"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.
ragent.exe -instsrvc -debug -usr <пользователь> -pwd <пароль>После перезапуска службы в конфигураторе при подключении появятся серверные предметы отладки. Помните: включённый режим отладки замедляет работу сервера и увеличивает нагрузку, поэтому на продуктивном сервере его оставляют только на время поиска проблемы.
Подключение к уже запущенному сеансу
Если клиент запущен с параметром /debug, подключитесь к нему из конфигуратора: меню «Отладка → Подключение». В окне будут перечислены доступные предметы отладки — сеансы клиентов и серверные контексты. Отметьте нужные флажками и нажмите «Подключить».
Если список пуст, проверьте три вещи: запущен ли клиент с параметром /debug, совпадает ли версия платформы, не блокирует ли сетевой экран связь с сервером отладки (по умолчанию используется порт 1550 для локального сервера отладки, но он может настраиваться). Для серверных предметов отладки дополнительно убедитесь, что служба агента запущена с ключом -debug.
Что делать, если отладка не видит сеанс
Основные приёмы работы в отладчике
Точка останова ставится клавишей F9 на строке кода — при достижении этой строки выполнение остановится. Клавиша F11 выполняет шаг с заходом в процедуры, F10 — шаг без захода, Shift+F11 — выход из текущей процедуры, F5 — продолжение выполнения до следующей точки останова.
Значения переменных смотрите через «Вычислить выражение» (Shift+F9) или в табло (Alt+F2), где можно держать список отслеживаемых переменных. Локальные переменные текущей процедуры видны в окне «Локальные переменные». Для серверных вызовов с выключенной отладкой на сервере отладчик просто перешагнёт серверный код без остановки.
Проверка результата и ограничения
Признак успешного включения: в окне «Отладка → Подключение» виден ваш сеанс, а выполнение кода останавливается на установленной точке останова. Если точка останова отображается с восклицательным знаком или не срабатывает — возможно, код ещё не скомпилирован в текущем контексте или строка не содержит исполняемого оператора.
Учтите ограничения: отладка недоступна для кода, выполняемого в фоновых заданиях без специальной настройки (для них есть отдельный механизм подключения), а также для внешних компонентов и части платформенных механизмов. Веб-клиент отлаживается с ограничениями по сравнению с тонким, а мобильный клиент требует отдельной настройки отладки по HTTP.
Что важно запомнить
Файловая база: F5 в конфигураторе решает всё. Отдельный клиент: параметр /debug и подключение через Отладка → Подключение. Серверный код: ключ -debug у службы агента сервера с обязательным отключением после работы.
Частые вопросы
Почему точка останова не срабатывает, хотя отладка включена?
Чаще всего код выполняется в контексте, который не подключён к отладке — например, серверная процедура при выключенной отладке на сервере или фоновое задание. Также проверьте, что строка содержит исполняемый оператор: на объявлениях переменных и комментариях остановки нет.
Можно ли отлаживать код под другим пользователем?
Да, если сеанс этого пользователя запущен с параметром /debug (или на сервере включён режим отладки), его сеанс появится в списке подключения конфигуратора. Потребуются соответствующие права: у пользователя конфигуратора должно быть право на отладку и, для серверных контекстов, административные права на кластер.
Как отладить фоновое задание?
В конфигураторе откройте «Отладка → Подключение», включите в настройках автоматическое подключение фоновых заданий (пункт «Автоматическое подключение») и запустите задание. Отладчик подхватит его при старте. На сервере при этом должен быть включён режим отладки.
Влияет ли включённая отладка на работу пользователей?
Локальный параметр /debug у отдельного клиента влияет только на этот сеанс. А вот ключ -debug на службе агента сервера включает отладку для всего кластера и заметно снижает производительность сервера, поэтому на продуктиве его отключают сразу после завершения работ.
Что делать, если конфигуратор и клиент разных версий платформы?
Отладка между разными версиями платформы не работает. Установите одинаковый релиз платформы для конфигуратора, клиента и сервера либо запускайте конфигуратор той же версии, под которой работает база.