Как настроить отладку мобильного приложения 1С по HTTP и решить проблему с перехватом сеанса?

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

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

Главная причина: Использование имени базы DefAlias

Разберем механику взаимодействия мобильного приложения и Конфигуратора с сервером отладки dbgs. Когда мобильное приложение (или мобильная платформа разработчика) подключается к серверу отладки по протоколу HTTP, оно идентифицирует свою информационную базу под предопределенным системным именем DefAlias. Это стандартное поведение файловых баз и мобильных автономных сеансов.

Если основная конфигурация, в которой ведется разработка на ПК, открыта в клиент-серверном режиме или зарегистрирована под собственным именем базы в кластере, сервер отладки считает сеанс Конфигуратора и сеанс мобильного устройства относящимися к разным информационным базам. В результате точки останова, расставленные в модуле сеанса (например, в процедуре УстановкаПараметровСеанса) или в модулях мобильного приложения, просто игнорируются Конфигуратором.

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

Выполним следующую настройку по шагам:

  1. В Конфигураторе откроем главное меню Сервис и выберем пункт Параметры.
  2. Перейдем на вкладку Отладка.
  3. Найдем группу параметров подключения к серверу отладки.
  4. Установим флаг Использовать указанное имя информационной базы.
  5. В поле ввода имени базы укажем значение: DefAlias.
  6. Нажмем кнопку Применить и перезапустим отладку.

После выполнения этой настройки Конфигуратор и мобильное устройство будут регистрироваться под единым идентификатором базы DefAlias, и точки останова начнут успешно срабатывать.

Различие портов веб-сервера и сервера отладки

Проанализируем распространенную ошибку, которую часто допускают при диагностике подключения. Разработчик открывает браузер на мобильном устройстве, вводит адрес веб-сервера (например, http://192.168.1.10/MobileApp) и получает успешный ответ страницы публикации. Однако это подтверждает доступность исключительно веб-сервера (Apache или IIS), работающего на стандартном веб-порту (80 или 443).

Сервер отладки 1С (процесс dbgs) работает как отдельная служба и использует совершенно другой сетевой порт. Для HTTP-отладки по умолчанию применяется TCP-порт 1560.

Рассмотрим, как правильно проверить и указать настройки подключения на мобильном устройстве:

  1. В настройках информационной базы на мобильной платформе убедимся, что включен параметр Отладка разрешена.
  2. В поле адреса сервера отладки укажем полный URL с указанием порта 1560, например: http://192.168.1.10:1560.
  3. Убедимся, что на ПК отладчика прослушивается именно этот порт.

Настройка сетевых адресов и Брандмауэра (Firewall)

Выясним, какие сетевые ограничения могут препятствовать передаче пакетов отладки между мобильным устройством и компьютером разработчика.

Во-первых, проверим настройки локального IP-адреса в Конфигураторе:

  1. Перейдем в меню Сервис → Параметры → Отладка.
  2. В поле Адрес локальной сетевой карты убедимся, что указан реальный IP-адрес компьютера в локальной Wi-Fi сети (например, 192.168.1.50).
  3. Категорически нельзя использовать адреса 127.0.0.1 или localhost, так как мобильное устройство не сможет подключиться к закольцованному интерфейсу ПК.

Во-вторых, настроим Брандмауэр Windows (или защитное ПО на ПК):

  1. Откроем правила для входящих подключений Брандмауэра Windows.
  2. Создадим новое правило для порта и разрешим входящий TCP-трафик для порта 1560 (или того порта, на котором запущен dbgs).
  3. Если используется серверный режим 1С, проверим доступность порта 1560 с мобильного устройства с помощью сетевых утилит (например, ping или netcat).

Настройка автоматического подключения предметов отладки

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

  1. В Конфигураторе откроем меню Отладка → Подключение...
  2. В открывшемся окне нажмем кнопку Настройка...
  3. В окне настройки автоматического подключения установим флажки для следующих предметов отладки:
    • Мобильное приложение (клиент)
    • Мобильное приложение (сервер)
  4. Нажмем ОК для сохранения настроек.

После этого при вызове любых серверных или клиентских процедур мобильной конфигурации (включая процедуру УстановкаПараметровСеанса в модуле сеанса) Конфигуратор будет автоматически подключаться к исполняемому сеансу.

Особенности запуска сервера отладки в клиент-серверном режиме

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

Для включения HTTP-отладки служба агента сервера 1С:Предприятия (ragent) должна быть запущен с обязательными ключами запуска:

ragent.exe -debug -http

Ключ -http указывает кластеру серверов на необходимость задействовать отладку по протоколу HTTP вместо устаревшего протокола TCP/IP. После перезапуска службы агента сервера процесс dbgs начнет принимать соединения по протоколу HTTP, обеспечивая корректную трансляцию точек останова между мобильной платформой и Конфигуратором.

Альтернативный вариант: Отладка через USB (Android Debug Bridge / ADB)

Посмотрим на альтернативный способ отладки, который выручает в условиях нестабильного Wi-Fi соединения, сложных изолированных корпоративных подсетей или при блокировке сетевых портов роутером.

Мы можем использовать отладку через USB-кабель с помощью инструмента ADB (Android Debug Bridge):

  1. Подключим мобильное устройство на базе Android к ПК с помощью USB-кабеля.
  2. В настройках смартфона (в разделе для разработчиков) включим параметр Отладка по USB.
  3. В Конфигураторе 1С перейдем в меню Сервис → Параметры → Запуск 1С:Предприятия → Мобильное приложение.
  4. Установим флаг Использовать Android Debug Bridge (ADB) и укажем путь к каталогу с установленным Android SDK (где находится файл adb.exe).

При использовании ADB сетевой трафик отладки пробрасывается напрямую через кабель USB, минуя беспроводную сеть и настройки брандмауэров, что обеспечивает максимальную скорость и стабильность перехвата сеансов.

← На главную