Разработка и Конфигурация · 10 мин
Отладка разрешена в 1С: что это значит и как настроить
Что означает «отладка разрешена» в 1С, где находится этот параметр для HTTP-сервисов и веб-сервисов, как включить отладку и не забыть её отключить.
«Отладка разрешена» — это свойство объекта метаданных в 1С:Предприятии, которое определяет, можно ли подключаться отладчиком к коду HTTP-сервиса, веб-сервиса или расширения. Если флаг снят, точки останова внутри сервиса игнорируются, а попытка подключиться к сеансу отладки завершается ошибкой. Чаще всего с этим свойством сталкиваются разработчики, которые публикуют HTTP-сервис на веб-сервере, вызывают его извне и не понимают, почему отладчик не останавливается на их коде.
Механизм существует по соображениям безопасности и производительности. Отладка замедляет выполнение кода и теоретически позволяет читать данные, которые обрабатывает сервис. Поэтому платформа требует явного разрешения: пока разработчик сам не установил флаг, сервис считается закрытым для отладки. Это особенно важно на рабочих базах, где обрабатываются реальные данные клиентов и контрагентов.
Ниже разберём, где именно находится это свойство у разных объектов, как его включить, как подключиться отладчиком к опубликованному сервису и какие ошибки встречаются чаще всего. Отдельно рассмотрим, почему флаг нужно снимать после завершения работ.
Что именно означает этот флаг
Когда HTTP-запрос приходит на опубликованный сервис 1С, платформа запускает обработчик на стороне сервера. Отладчик в конфигураторе по умолчанию следит за клиентским сеансом разработчика, но не за фоновыми и серверными вызовами, инициированными извне. Чтобы отладчик мог «поймать» выполнение такого обработчика, нужно выполнить два условия: разрешить отладку в свойствах самого объекта и включить автоматическое подключение к соответствующему типу отладки.
Свойство «Отладка разрешена» есть у HTTP-сервисов, веб-сервисов (SOAP) и расширений конфигурации. У обычных общих модулей и модулей объектов такого флага нет — их код отлаживается в рамках обычного сеанса без дополнительных разрешений. Именно внешние точки входа, доступные через веб-сервер, платформа защищает отдельно.
Важно понимать: флаг разрешает отладку, но не включает её сам по себе. Даже с установленным свойством точки останова не сработают, пока в конфигураторе не настроено автоматическое подключение отладчика к нужному типу сеанса.
Где найти и включить свойство
Для HTTP-сервиса порядок действий одинаков во всех современных версиях платформы. Откройте конфигуратор, найдите в дереве конфигурации ветку «Общие» → «HTTP-сервисы», выделите нужный сервис и откройте палитру свойств (правый клик → «Свойства»). В нижней части списка находится флажок «Отладка разрешена» — установите его и сохраните конфигурацию.
Для веб-сервисов путь аналогичен: «Общие» → «Web-сервисы» → свойства объекта. У расширений конфигурации переключатель находится в свойствах самого расширения и обычно называется «Использовать в отладке» либо управляется через настройки отладки расширений — точное название зависит от версии платформы.
После изменения свойства обязательно обновите конфигурацию базы данных (F7 или «Конфигурация» → «Обновить конфигурацию базы данных»). Если сервис опубликован на веб-сервере, публикацию тоже нужно обновить: «Администрирование» → «Публикация на веб-сервере» → «Опубликовать». Без этого изменения не доедут до исполняемого окружения.
- 1Откройте конфигуратор и найдите HTTP-сервис в ветке «Общие»
- 2В палитре свойств установите флаг «Отладка разрешена»
- 3Сохраните конфигурацию и обновите конфигурацию базы данных
- 4Обновите публикацию на веб-сервере
- 5В конфигураторе: «Отладка» → «Автоматическое подключение» — отметьте HTTP-сервисы
- 6Отправьте запрос к сервису и проверьте срабатывание точки останова
Настройка автоматического подключения отладчика
Разрешение в свойствах объекта — только половина настройки. Вторая половина находится в меню «Отладка» → «Автоматическое подключение». В открывшемся окне отметьте типы соединений, к которым отладчик должен подключаться автоматически: «HTTP-сервисы», «Web-сервисы», «Фоновые задания» — в зависимости от того, что отлаживаете.
Для файловой базы этого обычно достаточно. Для клиент-серверного варианта дополнительно проверьте, что сервер 1С запущен в отладочном режиме: у службы агента сервера должен быть параметр -debug (а для отладки по HTTP — соответствующий протокол в настройках). Без этого флага сервер не принимает подключения отладчика независимо от настроек конфигуратора.
После настройки поставьте точку останова в обработчике сервиса и отправьте тестовый запрос — из браузера, Postman или смежной системы. Конфигуратор должен остановиться на точке и показать контекст выполнения.
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-сервис вызывает общий модуль, а изменения вносились в расширение или наоборот, разработчик смотрит не в ту версию кода. Проверить помогает вывод в журнал регистрации или временное сообщение в начале обработчика.
Третья ошибка — забытый флаг после завершения работ. Через месяц никто не помнит, что у сервиса разрешена отладка, а это и риск безопасности, и источник странных задержек. Полезно периодически просматривать свойства опубликованных сервисов на рабочих базах.
Как проверить, что всё настроено правильно
Быстрый способ проверки — поставить точку останова на первой строке обработчика и отправить заведомо простой запрос к сервису. Если конфигуратор остановился — цепочка настроена полностью. Если нет, идите по цепочке от объекта к серверу: флаг в свойствах, автоподключение, публикация, режим сервера.
Дополнительный контроль — журнал регистрации. Временно добавьте в обработчик запись в журнал с текстом запроса. Если запись появляется, а отладчик молчит, код выполняется, но отладчик не подключён — проблема в настройках отладки, а не в маршрутизации запроса.
Как проверить результат
Конфигуратор останавливается на первой строке обработчика
Запрос выполняется, отладчик молчит — проверяйте флаг и автоподключение
Запись появляется — код выполняется, проблема в подключении отладчика
Записи нет — запрос не доходит до обработчика, проверяйте публикацию
«Отладка разрешена» снята, публикация обновлена
Флаг остался установленным на рабочей базе
FAQ
Где находится «Отладка разрешена» у HTTP-сервиса?
В конфигураторе: ветка «Общие» → «HTTP-сервисы» → правый клик по нужному сервису → «Свойства». Флажок расположен в нижней части палитры свойств. После изменения обновите конфигурацию базы данных и публикацию на веб-сервере.
Почему точка останова не срабатывает, хотя флаг установлен?
Чаще всего не включено автоматическое подключение отладчика (меню «Отладка» → «Автоматическое подключение») или не обновлена публикация на веб-сервере. В клиент-серверном варианте дополнительно проверьте, что агент сервера запущен с параметром -debug.
Опасно ли оставлять отладку разрешённой на рабочей базе?
Да. Отладчик позволяет читать данные, которые обрабатывает сервис, а отладочный режим снижает производительность. После завершения работ флаг следует снять, а публикацию обновить.
Нужен ли этот флаг для отладки обычных модулей?
Нет. Общие модули, модули документов и обработок отлаживаются в рамках обычного сеанса без дополнительных разрешений. Флаг нужен только для внешних точек входа: HTTP-сервисов, веб-сервисов и расширений.
Как отладить фоновое задание?
У фоновых заданий нет отдельного флага «Отладка разрешена». Достаточно включить автоматическое подключение к фоновым заданиям в настройках отладки и, для клиент-серверного варианта, запустить сервер в отладочном режиме.
Что делать, если публикация обновлена, но изменения не применяются?
Проверьте, что запрос уходит именно на ту публикацию, которую вы обновили: на одном веб-сервере часто существует несколько виртуальных каталогов для разных баз. Также помогает перезапуск веб-сервера и очистка кэша.
Что важно запомнить
«Отладка разрешена» — флаг в свойствах HTTP-сервиса, веб-сервиса или расширения, без которого отладчик не подключится к их коду. Для работающей отладки нужны три условия: установленный флаг, автоматическое подключение отладчика и актуальная публикация (плюс отладочный режим сервера в клиент-серверном варианте). После завершения работ флаг обязательно снимайте.