Как настроить отладку по протоколу HTTP на сервере 1С и можно ли совмещать её с TCP?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке мобильных приложений и работе с современными версиями платформы 1С:Предприятие часто возникает вопрос о настройке механизмов отладки. Традиционный протокол TCP, использовавшийся годами, постепенно уступает место более гибкому и универсальному протоколу HTTP. Рассмотрим подробнее, как правильно сконфигурировать серверную часть, чтобы обеспечить стабильную работу разработчиков, и выясним, существует ли необходимость в одновременном использовании обоих протоколов.

Анализ возможности совмещения TCP и HTTP

Первым делом проанализируем техническую возможность запуска службы ragent (агент сервера 1С) одновременно с поддержкой обоих протоколов отладки. На текущий момент платформа 1С спроектирована таким образом, что для одного экземпляра службы сервера можно выбрать только один активный режим отладки через параметры командной строки.

Если мы добавим флаг -debug, сервер активирует классическую отладку по TCP. Если же мы добавим комбинацию -debug -http, сервер переключится на использование HTTP. Попытка прописать оба варианта одновременно не приведет к желаемому результату, так как протокол HTTP в современных версиях платформы (начиная с 8.3.14 и выше) является универсальным.

Важно понимать, что протокол HTTP полностью покрывает возможности TCP. Он позволяет отлаживать:

Таким образом, мы приходим к выводу: настраивать одновременно два протокола нет практического смысла. Рекомендуется полностью перевести сервер на HTTP-отладку.

Настройка службы сервера 1С через реестр Windows

Разберем по шагам процесс включения HTTP-отладки для серверной базы. Для этого нам потребуется внести изменения в параметры запуска службы 1С:Предприятия. Посмотрим, как это сделать правильно:

  1. Откройте редактор реестра (regedit).
  2. Перейдите по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent... (название может меняться в зависимости от версии и имени экземпляра).
  3. Найдите параметр ImagePath.
  4. В значение этого параметра необходимо добавить флаги запуска.

Проанализируем стандартную строку запуска. Она выглядит примерно так:


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"

Чтобы активировать отладку по HTTP, мы должны изменить её следующим образом:


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http

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

-debug -http -url=http://192.168.1.10:1550

Здесь 192.168.1.10 — это IP-адрес сервера, доступный для мобильных устройств, а 1550 — стандартный порт сервера отладки.

Настройка публикации информационной базы (default.vrd)

Когда мы работаем с мобильным клиентом, само по себе включение отладки на сервере 1С недостаточно. Мобильное устройство подключается к базе через веб-сервер (IIS или Apache). Проанализируем ситуацию: мобильный клиент должен знать, куда именно передавать информацию о точках остановки. Эта информация передается через файл публикации default.vrd.

Выясним, какие настройки необходимо внести в этот файл. Откройте default.vrd в текстовом редакторе и найдите секцию <debug>. Если её нет, её нужно создать внутри корневого тега <point>. Рассмотрим структуру:


<debug 
    protocol="http" 
    url="http://myserver.domain.local:1550" />

Важный нюанс: адрес в параметре url должен быть доступен именно с того устройства, на котором запущено мобильное приложение. Если вы используете доменное имя, убедитесь, что мобильное устройство может его разрешить через DNS. Если нет — используйте статический IP-адрес.

Использование автономного сервера отладки (dbgs.exe)

В сложных архитектурах или при возникновении проблем с потерей предметов отладки (о чем упоминалось в обсуждении), мы рекомендуем рассмотреть использование автономного сервера отладки. Это отдельное приложение dbgs.exe, которое входит в состав платформы.

Разберем преимущества такого подхода:

  1. Стабильность: отладка не зависит от перезапуска конкретного рабочего процесса rphost.
  2. Централизация: несколько серверов приложений могут использовать один сервер отладки.
  3. Масштабируемость: позволяет избежать конфликтов при работе большого количества разработчиков.

Чтобы запустить автономный сервер, можно использовать команду:

dbgs.exe -http -port 1550

После запуска такого сервера, в параметрах службы 1С (в реестре) и в файле default.vrd следует указывать именно его адрес.

Особенности отладки мобильного клиента

Рассмотрим специфические моменты, которые часто становятся камнем преткновения при настройке отладки для мобильных устройств. Выясним основные причины, почему отладка может не работать, даже если флаги в реестре установлены:

1. Сетевые экраны (Firewalls): Порт отладки (по умолчанию 1550) должен быть открыт на входящие соединения на сервере. Не путайте его с портами 80 или 443, по которым работает веб-сервер. Отладка идет по отдельному каналу.

2. Идентификация клиента: В конфигураторе 1С, в меню "Отладка" — "Подключение", необходимо проверить список доступных предметов отладки. Для мобильного клиента важно, чтобы в настройках самого мобильного приложения (в окне выбора баз) был включен флаг "Отладка разрешена".

3. Версионность: Проанализируйте версии используемых компонентов. Для стабильной HTTP-отладки крайне желательно, чтобы версия платформы на сервере, версия конфигуратора у разработчика и версия мобильного клиента совпадали до последнего знака. Различия в версиях часто приводят к непредсказуемому поведению и "вылетам" сессии.

Заключение и рекомендации

Подводя итог, мы видим, что для современной разработки на платформе 1С:Предприятие 8.3 оптимальным решением является использование единого протокола HTTP. Он устраняет необходимость выбирать между "обычной" отладкой и "мобильной", обеспечивая универсальный доступ к предметам отладки.

Пошаговый план действий для настройки:

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

← На главную