Разработка и Конфигурация · 10 мин
Как подключить отладку в 1С
Как включить и подключить отладку в 1С: настройка конфигуратора, отладка по HTTP, клиент-серверный режим, типичные ошибки и проверка результата.
Отладка — основной инструмент разработчика 1С, позволяющий пошагово выполнять код, смотреть значения переменных и находить причины ошибок. Однако подключить отладку не всегда получается с первого раза: в файловом и клиент-серверном режимах настройка отличается, а для серверного кода требуется отдельный запуск службы агента сервера 1С с особыми параметрами.
В статье разобраны все практические сценарии: включение отладки в конфигураторе, подключение предметов отладки, настройка отладки по протоколу HTTP, работа с сервером 1С и решение типичных проблем, когда точки останова не срабатывают или сеанс не виден в списке подключений.
Какие виды отладки существуют в 1С
Платформа 1С:Предприятие поддерживает два протокола отладки: по TCP/IP (классический) и по HTTP. Классический протокол использует прямое соединение между конфигуратором и отлаживаемым приложением и требует сетевой доступности портов. HTTP-отладка работает через сервер отладки (dbgs.exe) или встроенный механизм сервера 1С и удобнее, когда участники находятся в разных сетях или за NAT.
Также различают отладку клиентского и серверного кода. Клиентский код (модули форм, клиентские общие модули) отлаживается в контексте клиентского приложения. Серверный код выполняется либо в файловом варианте внутри клиентского процесса, либо в клиент-серверном — в рабочем процессе сервера 1С, и для его отладки требуется специальный режим запуска сервера.
Включение отладки в конфигураторе
Базовая настройка выполняется в меню Сервис → Параметры на вкладке Отладка (в новых версиях платформы — Отладка → Настройка). Здесь выбирается протокол отладки — TCP/IP или HTTP, а также устанавливается флажок автоматического подключения к предметам отладки.
Рекомендуется включить автоматическое подключение для всех типов приложений: тонкий клиент, толстый клиент, веб-клиент, фоновые задания и сервер. Тогда при запуске сеанса из конфигуратора (клавиша F5 или «Начать отладку») подключение произойдёт без ручных действий.
- 1Откройте конфигуратор и перейдите в Сервис → Параметры → Отладка.
- 2Выберите протокол: TCP/IP для работы в локальной сети или HTTP, если клиент и отладчик в разных сетях.
- 3Установите флажки автоматического подключения для нужных типов приложений.
- 4Поставьте точку останова в коде (F9 на нужной строке).
- 5Запустите сеанс через Отладка → Начать отладку (F5).
- 6Выполните в клиентском приложении действие, вызывающее нужный код, — выполнение остановится на точке останова.
Отладка в файловом режиме
Файловый вариант информационной базы — самый простой случай. Клиентское приложение и серверный код выполняются в одном процессе, поэтому никакой дополнительной настройки сервера не требуется. Достаточно запустить отладку из конфигуратора через F5 — платформа сама запустит клиентское приложение и подключит его как предмет отладки.
Если база уже запущена отдельно (не из конфигуратора), сеанс по умолчанию запрещает отладку. Чтобы разрешить, запустите клиентское приложение с параметром командной строки /debug (для HTTP-отладки добавьте /debug -http). После этого сеанс появится в списке предметов отладки: Отладка → Подключение.
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8c.exe" ENTERPRISE /F"C:\Bases\Trade" /N"Администратор" /debugОтладка в клиент-серверном режиме
Главная особенность клиент-серверного варианта: серверный код исполняется рабочим процессом сервера 1С, и по умолчанию сервер запрещает отладку. Чтобы разрешить её, службу агента сервера 1С нужно запустить с ключом -debug. Для HTTP-отладки дополнительно указывается -debughttp.
На Windows проще всего изменить параметры запуска службы в реестре: в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (имя зависит от версии) в параметре ImagePath добавить ключ -debug в конец строки, затем перезапустить службу. На Linux ключ добавляется в скрипт запуска агента srv1cv83.
После перезапуска службы с ключом отладки проверьте результат: откройте в конфигураторе Отладка → Подключение, установите флажок поиска предметов отладки на сервере и убедитесь, что в списке видны сеансы и рабочие процессы сервера. Если список пуст — проверьте, что служба действительно перезапущена с новым параметром.
Настройка отладки по HTTP
HTTP-отладка решает проблему, когда конфигуратор и отлаживаемое приложение не могут соединиться напрямую по TCP — например, при работе через интернет, VPN или из домашней сети к офисному серверу. В качестве посредника используется сервер отладки dbgs.exe из комплекта поставки платформы.
Сервер отладки запускается командой dbgs --port=1550 (порт можно выбрать другой). В настройках конфигуратора и в параметрах запуска клиентского приложения указывается адрес этого сервера: в конфигураторе — в настройках отладки, в клиенте — параметром /debug -http /debuggerURL http://адрес:1550. Для отладки серверного кода в клиент-серверном режиме адрес сервера отладки дополнительно прописывается в параметрах кластера.
TCP/IP или HTTP
Подходит для локальной сети, где конфигуратор и приложение видят друг друга напрямую. Настройка минимальна, но требует открытых портов и не работает через NAT.
Подходит для разнесённых сетей, удалённой работы и веб-клиента. Требует запуска сервера отладки dbgs и указания его адреса у всех участников.
Подключение предметов отладки вручную
Автоматическое подключение срабатывает не всегда — например, если сеанс запущен другим пользователем, веб-клиентом или фоновым заданием. В этом случае используется ручное подключение: Отладка → Подключение. В открывшемся окне отображаются доступные предметы отладки с указанием типа приложения, пользователя и сеанса.
Для фоновых заданий и веб-клиента ручное подключение — основной способ. Веб-клиент дополнительно должен быть запущен с параметром отладки в строке запуска (в публикации веб-сервера или через параметр URL). Фоновые задания появляются в списке только в момент выполнения, поэтому окно подключения следует открыть заранее и обновлять список.
Проверка результата и типичные проблемы
Признак успешного подключения — в окне «Предметы отладки» конфигуратора появился нужный сеанс, а выполнение кода останавливается на установленных точках останова. Дополнительно проверьте, что в строке состояния конфигуратора отображается активный предмет отладки.
Как проверить результат
Точка сплошная, при выполнении кода происходит остановка
Точка с восклицательным знаком — модуль не загружен или код выполняется в другом сеансе
Сеанс виден и подключается без ошибок
Список пуст — отладка не разрешена на клиенте или сервере
Остановка срабатывает в серверных процедурах
Останавливается только клиентский код — служба агента запущена без ключа -debug
Наиболее частая причина проблем — несовпадение протоколов: конфигуратор настроен на HTTP, а приложение запущено с отладкой по TCP, или наоборот. Вторая типичная ситуация — код выполняется в фоновом задании или на сервере, а подключён только клиентский сеанс. Третья — устаревший кэш метаданных на клиенте, из-за чего исполняемый код не совпадает с открытым в конфигураторе; помогает очистка кэша или перезапуск сеанса.
Частые вопросы
Почему точка останова отображается с восклицательным знаком?
Это означает, что модуль не загружен в подключённом предмете отладки: либо код ещё не выполнялся, либо выполняется в другом сеансе (например, в фоновом задании или на сервере). Подключите нужный предмет отладки через «Отладка → Подключение» и повторите действие.
Можно ли отлаживать код в веб-клиенте?
Да. Веб-клиент должен быть запущен с разрешением отладки (параметр в публикации или в командной строке браузерного запуска), а в конфигураторе — включён соответствующий тип автоматического подключения или выполнено ручное подключение через «Отладка → Подключение». Для веб-клиента обычно удобнее HTTP-протокол.
Как отладить фоновое задание?
Откройте «Отладка → Подключение» и держите окно открытым. Запустите фоновое задание — оно появится в списке предметов отладки на время выполнения. Выделите его и нажмите «Подключить». Если задание выполняется слишком быстро, временно добавьте в его код ожидание или точку останова в начале метода с автоподключением фоновых заданий.
Отладка по HTTP не подключается — что проверить?
Убедитесь, что сервер отладки dbgs запущен и доступен по сети (проверьте порт через telnet или браузер), что в конфигураторе и клиентском приложении указан один и тот же адрес сервера отладки, и что у клиента есть параметр /debug -http. Для серверного кода проверьте ключ -debughttp у агента сервера.
Безопасно ли включать отладку на рабочем сервере?
Режим -debug снижает производительность рабочих процессов, а сработавшая точка останова блокирует сеанс пользователя до продолжения выполнения. На продуктивном сервере отладку включают только на короткое время диагностики и отключают сразу после. Предпочтительный вариант — воспроизвести проблему на копии базы.
Что важно запомнить
В файловом режиме отладка включается прямо из конфигуратора, в клиент-серверном требуется запуск агента сервера с ключом -debug. Для разнесённых сетей используйте HTTP-отладку через сервер dbgs. Проверяйте право «Отладка», совпадение протоколов и подключайте нужные предметы отладки вручную, если автоподключение не сработало.