Разработка и Конфигурация · 10 мин
Как включить HTTP-отладку в 1С
Как включить HTTP-отладку в 1С: настройка отладчика по протоколу HTTP, публикация базы на веб-сервере, отладка HTTP-сервисов и типичные ошибки.
Под HTTP-отладкой в 1С обычно понимают две разные задачи. Первая — перевод отладчика платформы с протокола TCP на протокол HTTP, что нужно, когда сервер 1С и конфигуратор разделены файрволом, работают через интернет или в кластере контейнеров. Вторая — отладка HTTP-сервисов прикладного решения, то есть возможность поставить точку останова в модуле HTTP-сервиса и поймать входящий запрос.
Обе задачи решаются штатными средствами платформы, но требуют согласованной настройки: со стороны сервера 1С или веб-сервера, со стороны конфигуратора и иногда со стороны клиентского приложения. Если настроить только одну сторону, предметы отладки не появятся в списке, и создаётся впечатление, что «отладка не работает».
Ниже разобраны оба сценария: включение отладки по протоколу HTTP для кластера и для файловой базы, публикация базы на веб-сервере, отладка HTTP-сервисов, проверка результата и типичные ошибки. Инструкции ориентированы на платформу 8.3; в более ранних версиях часть параметров может отсутствовать.
Что такое отладка по протоколу HTTP и когда она нужна
Классический отладчик 1С общается с сервером отладки по протоколу TCP через выделенные порты. Такая схема хорошо работает в локальной сети, но ломается, когда между конфигуратором и сервером стоит NAT, строгий файрвол, прокси или инфраструктура в облаке, где открывать диапазоны портов нельзя или нежелательно.
Режим отладки по HTTP решает эту проблему: трафик отладки идёт через стандартный веб-стек — тот же веб-сервер (IIS или Apache), через который публикуется информационная база. Для сети это выглядит как обычные HTTP(S)-запросы, поэтому достаточно открыть доступ к опубликованной базе.
Выбирайте HTTP-отладку, если конфигуратор и сервер находятся в разных сетях, если администратор запрещает открытие нестандартных портов или если база доступна пользователям только через веб-клиент и тонкий клиент по HTTP. В локальной сети без ограничений проще остаться на TCP — там меньше звеньев настройки.
TCP или HTTP для отладки
Подходит для локальной сети без ограничений. Требует открытых портов отладки на сервере, настройка минимальна.
Подходит для работы через интернет, файрволы и прокси. Требует публикации базы на веб-сервере и согласованной настройки.
Включение HTTP-отладки на сервере 1С
Для клиент-серверного варианта отладка включается параметрами запуска агента сервера 1С (ragent). Сервер нужно запустить с ключом отладки и указанием протокола HTTP. В Windows это делается через параметры запуска службы «Агент сервера 1С:Предприятия», в Linux — через параметры службы или скрипт запуска.
Типовой набор ключей выглядит так: -debug включает режим отладки, -debug -http переводит отладку на протокол HTTP. После изменения параметров службу необходимо перезапустить — без перезапуска новые ключи не применяются. Учтите, что работа сервера в режиме отладки снижает производительность, поэтому на продуктивных базах режим включают только на время поиска проблемы.
ragent -debug -httpДля файловой базы, работающей непосредственно, отладка по HTTP не требуется — конфигуратор подключается к ней напрямую. Но если файловая база опубликована на веб-сервере и пользователи работают через него, отладка ведётся именно через публикацию, и настраивается она на стороне веб-сервера, о чём ниже.
Публикация базы на веб-сервере с разрешённой отладкой
Ключевое звено HTTP-отладки — публикация информационной базы на веб-сервере. Выполняется она из конфигуратора: меню «Администрирование» → «Публикация на веб-сервере». В диалоге укажите имя публикации, каталог и тип веб-сервера (IIS или Apache).
Для отладки важны два момента. Во-первых, в настройках публикации должна быть разрешена отладка — соответствующий флаг в диалоге публикации (и параметр в файле настроек публикации default.vrd). Во-вторых, веб-сервер должен иметь права на запуск расширения 1С и доступ к каталогу публикации; без этого база либо не откроется, либо отладочные запросы будут отклоняться.
После публикации проверьте, что база открывается в браузере или тонком клиенте по адресу публикации. Если само подключение не работает, отладку настраивать бессмысленно — сначала устраните проблемы публикации: права, версию компоненты веб-сервиса, соответствие разрядности веб-сервера и модулей 1С.
- 1Запустите сервер 1С с ключами -debug -http и перезапустите службу
- 2Опубликуйте базу на веб-сервере с разрешённой отладкой
- 3Проверьте, что база открывается по адресу публикации
- 4В конфигураторе в настройках отладки выберите протокол HTTP и укажите адрес публикации
- 5Включите автоматическое подключение нужных предметов отладки
- 6Запустите сеанс и убедитесь, что он появился в списке предметов отладки
Настройка конфигуратора для отладки по HTTP
Со стороны конфигуратора настройка выполняется в меню «Отладка» → «Подключение» и в параметрах отладки. Откройте настройки отладки и укажите использование протокола HTTP, задав адрес опубликованной базы (URL публикации на веб-сервере). Именно по этому адресу конфигуратор будет искать сервер отладки.
Далее включите автоматическое подключение предметов отладки: «Отладка» → «Автоматическое подключение». Отметьте те типы сеансов, которые нужно ловить: толстый и тонкий клиент, веб-клиент, фоновые задания, веб-сервисы, HTTP-сервисы. Без автоподключения сеансы не появятся в списке, и точки останова не сработают, даже если всё остальное настроено верно.
После настройки запустите прикладное решение в режиме отладки или подключитесь к уже работающему сеансу через «Отладка» → «Подключение». В списке доступных предметов отладки должен появиться нужный сеанс. Если список пуст — возвращайтесь к проверке публикации и ключей запуска сервера.
Отладка HTTP-сервисов прикладного решения
Отдельный практический сценарий — отладка модулей HTTP-сервисов, созданных в конфигурации. Здесь логика та же: код HTTP-сервиса исполняется на стороне сервера (или веб-сервера для файловой базы), поэтому отладчик должен быть подключён именно к этому сеансу, а не к вашему клиентскому.
Включите в автоматическом подключении предмет отладки «HTTP-сервис». Затем отправьте запрос к сервису — из браузера, Postman или внешней системы. Как только запрос попадёт в обработчик, исполнение остановится на точке останова в модуле HTTP-сервиса, и вы сможете смотреть параметры запроса, тело, заголовки и переменные.
Если точка останова не срабатывает, проверьте три вещи: что запрос реально доходит до сервиса (смотрите журнал веб-сервера или ответ сервиса), что URL запроса соответствует шаблону, заданному в свойствах HTTP-сервиса, и что сеанс HTTP-сервиса виден в списке предметов отладки. Короткоживущие сеансы HTTP-сервисов появляются и исчезают быстро, поэтому автоподключение обязательно.
Как проверить, что HTTP-отладка работает
Сеансы появляются после запуска клиента или запроса к сервису
Список пуст при работающих пользователях
Исполнение останавливается, доступны переменные и стек вызовов
Код выполняется, но остановки нет
База открывается в браузере по адресу публикации
Ошибка 404/500 или запрос недоступен
Типичные ошибки и ограничения
Самая частая причина «неработающей» отладки — несогласованность сторон: сервер запущен без ключа отладки, публикация создана без разрешения отладки или конфигуратор указывает на другой адрес. Вторая по частоте причина — не включено автоматическое подключение предметов отладки нужного типа.
Отдельные ограничения: отладка по HTTP добавляет задержки по сравнению с TCP, что заметно при интенсивном пошаговом проходе; при работе через HTTPS нужен корректный сертификат, иначе подключение может отклоняться; на продуктивных кластерах режим отладки влияет на всех пользователей, поэтому для разбора проблем лучше выделять тестовый сервер или копию базы.
Безопасность и возврат к рабочему режиму
Режим отладки — это дополнительный канал доступа к исполняемому коду и данным. Публикацию с разрешённой отладкой не следует оставлять открытой в интернете: ограничьте доступ по IP, используйте аутентификацию веб-сервера и отключайте отладку сразу после завершения работ.
По окончании верните исходные параметры запуска службы сервера (уберите ключи отладки), перезапустите службу и при необходимости снимите разрешение отладки в настройках публикации. Зафиксируйте в рабочей документации, какие параметры менялись, — это избавит от расследований «почему база стала медленнее» спустя недели.
Что важно запомнить
HTTP-отладка требует согласованной настройки трёх сторон: сервер с ключом -debug -http, публикация с разрешённой отладкой и конфигуратор с протоколом HTTP и автоподключением предметов отладки. Проверяйте результат по списку предметов отладки и срабатыванию точки останова, а после работы отключайте режим отладки.
Частые вопросы
Можно ли отлаживать файловую базу по HTTP без веб-сервера?
Нет. Файловая база, открытая напрямую, отлаживается локально без HTTP. Протокол HTTP становится актуален только когда база опубликована на веб-сервере и доступ к ней идёт через него.
Почему сеанс HTTP-сервиса не появляется в предметах отладки?
Чаще всего не включено автоматическое подключение предметов отладки типа «HTTP-сервис» либо запрос не доходит до сервиса. Проверьте ответ сервиса и журнал веб-сервера, затем настройки автоподключения в конфигураторе.
Влияет ли режим отладки на производительность?
Да, работа сервера в режиме отладки замедляет исполнение кода для всех сеансов. На продуктивных системах включайте режим только на время диагностики и выключайте сразу после.
Работает ли HTTP-отладка через HTTPS?
Да, но требуется корректный сертификат на веб-сервере. При самоподписанном или просроченном сертификате подключение отладчика может отклоняться.
Чем отладка по HTTP отличается от отладки HTTP-сервисов?
Первое — это транспорт между отладчиком и сервером 1С. Второе — отладка конкретных модулей HTTP-сервисов конфигурации. Это независимые вещи: HTTP-сервисы можно отлаживать и по TCP, если сетевая схема позволяет.
Точка останова стоит, но код не останавливается. Что проверить первым делом?
Убедитесь, что исполняется именно тот сеанс, к которому подключён отладчик, и что код реально выполняется на сервере, а не на клиенте. Затем проверьте, что сервер запущен с ключом отладки и служба после изменения параметров перезапускалась.