Разберем типичную проблему, с которой сталкиваются разработчики при переходе на отладку по протоколу HTTP в платформе 1С:Предприятие 8.3. Ситуация выглядит следующим образом: служба сервера 1С запущена с параметром -http, в конфигурации включена поддержка отладки по HTTP, однако при попытке подключиться к информационной базе через браузер возникает ошибка: Неверно указан протокол отладки: на сервере - "http", в запускаемом приложении - "tcp". Проанализируем причины возникновения этой коллизии и детально рассмотрим способы её устранения.
Выясним причину ошибки: конфликт возникает из-за расхождения настроек публикации на веб-сервере (Apache или IIS) и фактических параметров службы кластера 1С. В каталоге публикации базы лежит файл конфигурации default.vrd. Если публикация создавалась до того, как на сервере включили HTTP-отладку, в дескрипторе отладки прописан протокол TCP либо он не указан вовсе (в этом случае платформа пытается использовать TCP по умолчанию). Когда веб-клиент обращается к базе, он считывает параметры из default.vrd и инициализирует отладку по TCP, тогда как служба ragent ожидает исключительно подключения по протоколу HTTP.
Рассмотрим самый простой способ, который штатно устраняет несоответствие параметров. Если веб-сервер и Конфигуратор запущены на одной машине или доступна публикация через меню, выполним следующие шаги:
После повторной публикации платформа автоматически перезапишет файл default.vrd, подставив верный протокол взаимодействия.
Если веб-сервер Apache или IIS развернут на отдельном удаленном сервере, повторная публикация из локального Конфигуратора может быть недоступна. В таком случае разберем, как скорректировать настройки напрямую в файле конфигурации публикации:
default.vrd).default.vrd в любом текстовом редакторе с правами администратора.<debug>. Посмотрим на типовую некорректную запись: она либо содержит protocol="tcp", либо не имеет атрибута protocol.
<debug enable="true"
protocol="http"
url="http://адрес_сервера_отладки:1550"/>
default.vrd.Бывают ситуации, когда веб-клиент необходимо экстренно подключить к конкретному отладчику без изменения общих настроек веб-сервера. Для этого используем передачу параметров напрямую через адресную строку браузера.
Допишем в конец URL веб-клиента специальные параметры запуска отладки:
http://адрес_сервера/имя_базы/?debug=http&debuggerurl=http://хост_отладчика:1550
Параметр debug=http принудительно задает протокол отладки для текущего клиентского сеанса, переопределяя значение по умолчанию из файла публикации, а параметр debuggerurl сообщает браузеру адрес отладочного сервиса.
Проанализируем сопутствующие настройки, которые критически важны для стабильной работы отладки по HTTP:
ragent не поддерживает смешанный режим. Если сервер запущен с ключом -http, все участники процесса разработки (Конфигуратор, тонкие клиенты, веб-клиенты, внешние соединения через comcntrcfg.xml) обязаны переключиться на протокол HTTP.