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

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

Отладка разрешена в 1С: что это значит и как настроить

Что означает «отладка разрешена» в 1С, где находится этот параметр для HTTP-сервисов и веб-сервисов, как включить отладку и не забыть её отключить.

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

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

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

Что именно означает этот флаг

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

Свойство «Отладка разрешена» есть у HTTP-сервисов, веб-сервисов (SOAP) и расширений конфигурации. У обычных общих модулей и модулей объектов такого флага нет — их код отлаживается в рамках обычного сеанса без дополнительных разрешений. Именно внешние точки входа, доступные через веб-сервер, платформа защищает отдельно.

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

Где найти и включить свойство

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

Для веб-сервисов путь аналогичен: «Общие» → «Web-сервисы» → свойства объекта. У расширений конфигурации переключатель находится в свойствах самого расширения и обычно называется «Использовать в отладке» либо управляется через настройки отладки расширений — точное название зависит от версии платформы.

После изменения свойства обязательно обновите конфигурацию базы данных (F7 или «Конфигурация» → «Обновить конфигурацию базы данных»). Если сервис опубликован на веб-сервере, публикацию тоже нужно обновить: «Администрирование» → «Публикация на веб-сервере» → «Опубликовать». Без этого изменения не доедут до исполняемого окружения.

Порядок включения отладки HTTP-сервиса
  1. 1
    Откройте конфигуратор и найдите HTTP-сервис в ветке «Общие»
  2. 2
    В палитре свойств установите флаг «Отладка разрешена»
  3. 3
    Сохраните конфигурацию и обновите конфигурацию базы данных
  4. 4
    Обновите публикацию на веб-сервере
  5. 5
    В конфигураторе: «Отладка» → «Автоматическое подключение» — отметьте HTTP-сервисы
  6. 6
    Отправьте запрос к сервису и проверьте срабатывание точки останова

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

Разрешение в свойствах объекта — только половина настройки. Вторая половина находится в меню «Отладка» → «Автоматическое подключение». В открывшемся окне отметьте типы соединений, к которым отладчик должен подключаться автоматически: «HTTP-сервисы», «Web-сервисы», «Фоновые задания» — в зависимости от того, что отлаживаете.

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

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

bash
sc stop "1C:Enterprise 8.3 Server Agent" && sc config "1C:Enterprise 8.3 Server Agent" binpath= "...\ragent.exe -srvc -agent -debug" && sc start "1C:Enterprise 8.3 Server Agent"

Отладка HTTP-сервисов: типичные сценарии

Файловая база с локальной публикацией

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

Клиент-серверная база

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

Отладка расширений

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

Почему отладку нельзя оставлять включённой

Разрешённая отладка — это потенциальная точка входа. При отладке по протоколу TCP подключиться к серверу может любой, кто знает адрес кластера и имеет доступ к сети, если не настроены дополнительные ограничения. Через отладчик можно читать значения переменных, а значит — персональные данные, пароли из кода, токены доступа, которые обрабатывает сервис.

Вторая причина — производительность. Отладочный режим сервера и разрешённая отладка объектов добавляют накладные расходы на каждый вызов. На тестовом контуре это незаметно, на рабочем с интенсивным обменом — вполне ощутимо.

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

Типичные ошибки и их признаки

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

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

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

Типичные ошибки
01
Установили флаг, но не обновили публикацию — веб-сервер отдаёт старые настройки
02
Забыли включить автоматическое подключение отладчика к HTTP-сервисам
03
Сервер 1С работает без параметра -debug, поэтому отладчик не может подключиться
04
Оставили «Отладка разрешена» на рабочей базе — риск безопасности и лишняя нагрузка
05
Правят код в конфигураторе, а база выполняет старую версию расширения

Как проверить, что всё настроено правильно

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

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

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

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

Срабатывание точки останова при запросе
Норма

Конфигуратор останавливается на первой строке обработчика

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

Запрос выполняется, отладчик молчит — проверяйте флаг и автоподключение

Запись в журнале регистрации
Норма

Запись появляется — код выполняется, проблема в подключении отладчика

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

Записи нет — запрос не доходит до обработчика, проверяйте публикацию

Состояние флага после работ
Норма

«Отладка разрешена» снята, публикация обновлена

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

Флаг остался установленным на рабочей базе

FAQ

Где находится «Отладка разрешена» у HTTP-сервиса?

В конфигураторе: ветка «Общие» → «HTTP-сервисы» → правый клик по нужному сервису → «Свойства». Флажок расположен в нижней части палитры свойств. После изменения обновите конфигурацию базы данных и публикацию на веб-сервере.

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

Чаще всего не включено автоматическое подключение отладчика (меню «Отладка» → «Автоматическое подключение») или не обновлена публикация на веб-сервере. В клиент-серверном варианте дополнительно проверьте, что агент сервера запущен с параметром -debug.

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

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

Нужен ли этот флаг для отладки обычных модулей?

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

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

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

Что делать, если публикация обновлена, но изменения не применяются?

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

Итог

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

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