При разработке мобильных приложений на платформе 1С:Предприятие разработчики часто сталкиваются со ситуацией, когда мобильное приложение успешно запускается на смартфоне или планшете, подключается к серверу отладки, но Конфигуратор на рабочем компьютере не перехватывает сеанс и не останавливается на установленных точках останова. В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем ключевые причины несогласованности сеансов и по шагам настроим устойчивую HTTP-отладку мобильного приложения.
Разберем механику взаимодействия мобильного приложения и Конфигуратора с сервером отладки dbgs. Когда мобильное приложение (или мобильная платформа разработчика) подключается к серверу отладки по протоколу HTTP, оно идентифицирует свою информационную базу под предопределенным системным именем DefAlias. Это стандартное поведение файловых баз и мобильных автономных сеансов.
Если основная конфигурация, в которой ведется разработка на ПК, открыта в клиент-серверном режиме или зарегистрирована под собственным именем базы в кластере, сервер отладки считает сеанс Конфигуратора и сеанс мобильного устройства относящимися к разным информационным базам. В результате точки останова, расставленные в модуле сеанса (например, в процедуре УстановкаПараметровСеанса) или в модулях мобильного приложения, просто игнорируются Конфигуратором.
Для решения этой проблемы необходимо явно указать Конфигуратору, под каким именем информационной базы он должен регистрироваться на сервере отладки.
Выполним следующую настройку по шагам:
DefAlias.После выполнения этой настройки Конфигуратор и мобильное устройство будут регистрироваться под единым идентификатором базы DefAlias, и точки останова начнут успешно срабатывать.
Проанализируем распространенную ошибку, которую часто допускают при диагностике подключения. Разработчик открывает браузер на мобильном устройстве, вводит адрес веб-сервера (например, http://192.168.1.10/MobileApp) и получает успешный ответ страницы публикации. Однако это подтверждает доступность исключительно веб-сервера (Apache или IIS), работающего на стандартном веб-порту (80 или 443).
Сервер отладки 1С (процесс dbgs) работает как отдельная служба и использует совершенно другой сетевой порт. Для HTTP-отладки по умолчанию применяется TCP-порт 1560.
Рассмотрим, как правильно проверить и указать настройки подключения на мобильном устройстве:
1560, например: http://192.168.1.10:1560.Выясним, какие сетевые ограничения могут препятствовать передаче пакетов отладки между мобильным устройством и компьютером разработчика.
Во-первых, проверим настройки локального IP-адреса в Конфигураторе:
192.168.1.50).127.0.0.1 или localhost, так как мобильное устройство не сможет подключиться к закольцованному интерфейсу ПК.Во-вторых, настроим Брандмауэр Windows (или защитное ПО на ПК):
1560 (или того порта, на котором запущен dbgs).1560 с мобильного устройства с помощью сетевых утилит (например, ping или netcat).Чтобы Конфигуратор автоматический перехватывал мобильный сеанс при его старте на телефоне без необходимости ручного выбора предмета отладки из списка, настроим параметры автоподключения.
После этого при вызове любых серверных или клиентских процедур мобильной конфигурации (включая процедуру УстановкаПараметровСеанса в модуле сеанса) Конфигуратор будет автоматически подключаться к исполняемому сеансу.
Проанализируем ситуацию, когда разработка ведется на базе клиент-серверного варианта 1С:Предприятия. В этом случае сервер отладки должен функционировать на стороне кластера серверов 1С.
Для включения HTTP-отладки служба агента сервера 1С:Предприятия (ragent) должна быть запущен с обязательными ключами запуска:
ragent.exe -debug -http
Ключ -http указывает кластеру серверов на необходимость задействовать отладку по протоколу HTTP вместо устаревшего протокола TCP/IP. После перезапуска службы агента сервера процесс dbgs начнет принимать соединения по протоколу HTTP, обеспечивая корректную трансляцию точек останова между мобильной платформой и Конфигуратором.
Посмотрим на альтернативный способ отладки, который выручает в условиях нестабильного Wi-Fi соединения, сложных изолированных корпоративных подсетей или при блокировке сетевых портов роутером.
Мы можем использовать отладку через USB-кабель с помощью инструмента ADB (Android Debug Bridge):
adb.exe).При использовании ADB сетевой трафик отладки пробрасывается напрямую через кабель USB, минуя беспроводную сеть и настройки брандмауэров, что обеспечивает максимальную скорость и стабильность перехвата сеансов.