Разработка мобильных приложений на платформе 1С — процесс увлекательный, но часто омрачаемый техническими сложностями на этапе отладки. Ситуация, когда на эмуляторе все работает «из коробки», а реальный смартфон упорно отказывается соединяться с конфигуратором, знакома многим разработчикам. В этой статье мы подробно разберем, почему не работает отладка через USB или Wi-Fi, и пройдем по всем этапам настройки — от параметров ОС Android до конфигурации веб-сервера.
Прежде чем приступать к настройкам, давайте разберем механизм взаимодействия. Когда мы запускаем отладку, мобильное приложение должно сообщить серверу отладки (который обычно запущен внутри вашего Конфигуратора) о своем существовании. Если вы используете протокол HTTP, мобильное устройство инициирует соединение. Основная проблема заключается в том, что смартфон и компьютер должны находиться в «видимости» друг друга, а маршруты передачи данных не должны блокироваться сетевыми экранами или особенностями маршрутизации адреса localhost.
Первым делом проанализируем настройки самого смартфона. Недостаточно просто подключить кабель; система Android имеет несколько уровней защиты.
adb взаимодействовать с устройством.Это самый важный технический момент при отладке через USB, о котором часто забывают. Рассмотрим ситуацию: в настройках мобильного приложения вы указали адрес сервера отладки 127.0.0.1 или localhost. Для смартфона «локальный хост» — это он сам, а не ваш компьютер. Чтобы перенаправить запрос с порта смартфона на компьютер, выполним команду проброса портов.
Откроем командную строку (cmd) и перейдем в папку, где установлен Android SDK (обычно это platform-tools), затем выполним следующую команду:
adb reverse tcp:1561 tcp:1561
Проанализируем, что мы сделали: теперь любое обращение мобильного приложения к порту 1561 на самом смартфоне будет автоматически перенаправлено на порт 1561 вашего компьютера. Это позволяет использовать стабильный адрес localhost в настройках мобильного приложения.
Теперь перейдем к настройкам в 1С. Выясним причину, по которой отладчик может не «подцеплять» сеанс. Одной из ключевых настроек является имя информационной базы для отладки.
Рассмотрим порядок действий в Конфигураторе:
DefAlias. Это стандартный псевдоним, который используется мобильной платформой по умолчанию. Если ваша база опубликована под другим именем, укажите его.192.168.0.182) или localhost, если мы используем adb reverse.Если отладка идет через веб-сервер (IIS или Apache), нам необходимо проверить файл публикации. Это критически важный момент, так как веб-сервер выступает посредником. Найдем файл default.vrd в каталоге публикации и проанализируем его содержимое. В нем должна присутствовать секция debug.
Пример корректной настройки в файле:
<debug enable="true" url="http://192.168.0.182:1561" />
Обратите внимание: атрибут enable="true" разрешает отладку, а url указывает, куда мобильное приложение должно отправлять отладочную информацию. Если эта строка отсутствует, веб-сервер будет блокировать попытки подключения отладчика.
Рассмотрим ситуацию, когда все настройки верны, но связи по-прежнему нет. Выясним, не блокирует ли Windows входящие соединения. Даже если вы выключили Брандмауэр, система может фильтровать трафик исходя из типа сети.
Проверим тип сетевого профиля:
Параметры сети и Интернет — Состояние — Свойства. Если сеть определена как «Общедоступная» (Public), Windows применяет жесткие правила безопасности. Необходимо переключить профиль в режим «Частная» (Private). Это позволит устройствам в вашей локальной сети (смартфону и ПК) свободно обмениваться данными по портам 1560-1591, которые 1С использует для отладки.
Если стандартный отладчик, встроенный в Конфигуратор, работает нестабильно, мы можем запустить отдельный процесс сервера отладки. Он находится в папке bin вашей платформы и называется dbgs.exe.
Посмотрим, как его запустить вручную через командную строку для получения полного контроля над процессом:
dbgs.exe -http -port 1561
После запуска такого сервера в настройках Конфигуратора нужно указать, что мы используем внешний сервер отладки, и прописать его адрес. Это помогает исключить проблемы, связанные с «падением» внутреннего отладчика 1С при сложных манипуляциях с мобильным устройством.
Напоследок разберем еще одну неочевидную причину — разрыв версий. Мобильная платформа 1С развивается очень быстро. Если вы используете на компьютере платформу версии 8.3.18, а на смартфоне установлена мобильная версия от 8.3.24, протоколы отладки могут быть несовместимы. Постарайтесь использовать максимально близкие версии основной и мобильной платформ.
Подводя итог, можно сказать, что успех отладки на физическом устройстве зависит от правильной комбинации трех факторов: проброса портов через adb, корректного DefAlias в параметрах запуска и правильно настроенного файла default.vrd на веб-сервере. Пройдя по этим шагам, вы сможете анализировать код мобильного приложения так же эффективно, как и в обычном десктопном приложении.