Разработка мобильных приложений на платформе 1С:Предприятие сопряжена с рядом технических нюансов, особенно когда дело касается настройки среды отладки. Одной из наиболее частых и раздражающих проблем, с которыми сталкиваются разработчики при переходе на новые версии платформы (начиная с 8.3.24), является ситуация, когда подключение к отладчику установлено, предметы отладки видны, но точки останова (breakpoints) игнорируются системой.
В этой статье мы подробно разберем, почему возникает такая ситуация, как версии мобильной и стационарной платформ влияют на протокол отладки, и какие настройки необходимо выполнить для стабильной работы.
Давайте проанализируем исходную ситуацию. У разработчика установлена стационарная платформа версии 8.3.23, а мобильная платформа обновлена до версии 8.3.24. При этом отладка настроена по протоколу HTTP (порт 50007). Симптомы следующие: подключение отображается и на клиенте, и на сервере, но выполнение кода не останавливается на точках останова.
Ключевая причина кроется в изменениях архитектуры отладчика, которые были внедрены в версии 8.3.24. В этой версии механизм отладки был существенно переработан.
Важное правило: Для корректной работы отладки с мобильной платформой версии 8.3.24 и выше, версия стационарной платформы (Конфигуратора и Сервера 1С:Предприятия) также должна быть не ниже 8.3.24.
Если вы используете мобильную платформу 8.3.24 с конфигуратором 8.3.23, протоколы обмена данными отладки могут не совпадать, что и приводит к "фантомному" подключению без возможности управления исполнением кода. Решением в данном случае является либо обновление стационарной платформы до актуальной версии, либо (как временная мера) возврат мобильной платформы на версию 8.3.20, где старые протоколы поддерживаются корректно.
Часто возникает вопрос: а не стоит ли сменить протокол на TCP/IP? Здесь важно запомнить техническое ограничение:
Отладка мобильных приложений 1С возможна только по протоколу HTTP.
Давайте проверим настройки вашей среды разработки. Даже если вы настроили мобильное устройство правильно, необходимо убедиться, что серверная часть 1С готова принимать HTTP-отладку.
Для клиент-серверного варианта работы необходимо проверить параметры запуска службы агента сервера 1С (ragent.exe). В строке запуска обязательно должны присутствовать ключи, разрешающие отладку по 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
Обратите внимание на флаги в конце:
-debug — включает режим отладки на сервере.-http — указывает, что отладка будет вестись именно по протоколу HTTP.Если ключа -http нет, сервер может ожидать подключения по TCP, что сделает отладку мобильного приложения невозможной. Также убедитесь, что в настройках самого Конфигуратора (Сервис -> Параметры -> Отладка) выбран протокол, соответствующий настройкам сервера.
Даже если версии платформ совпадают, проблема может крыться в сети. Мобильное устройство и компьютер разработчика должны "видеть" друг друга. Рассмотрим основные моменты, которые стоит проверить:
50007, но может быть диапазон) открыт для входящих подключений на компьютере разработчика.localhost или 127.0.0.1, так как для телефона это будет означать "сам телефон". Необходимо указывать реальный IP-адрес компьютера в локальной сети (например, 192.168.1.50).Если вы видите сообщение о подключении в предметах отладки, но точки не срабатывают, попробуйте перезапустить конфигуратор после смены сетевых настроек. Иногда конфигуратор "привязывается" не к тому сетевому интерфейсу (например, к адаптеру виртуальной машины вместо Wi-Fi адаптера).
Разработчики, перешедшие на платформу 8.3.25, также сообщают о сложностях с отладкой, даже при соблюдении всех вышеописанных условий. Бывает, что при указании адреса и порта локального сервера отладки процесс останавливается.
В таких случаях помогает следующее:
ragent) на компьютере. Иногда сеансы отладки "зависают" в памяти сервера, и новые подключения не могут корректно перехватить управление, пока служба не будет перезагружена.Еще один нюанс, который не стоит упускать из виду при работе с современными версиями Android (9 и выше). По умолчанию Android блокирует незащищенный трафик (HTTP), разрешая только HTTPS. Поскольку стандартная отладка 1С идет по HTTP, система может блокировать передачу пакетов с данными точек останова, даже если первоначальное соединение (handshake) прошло успешно.
Хотя сборщик мобильных приложений 1С в последних версиях обычно автоматически добавляет нужные разрешения в манифест, при возникновении проблем полезно убедиться, что в настройках сборки или манифесте приложения (если вы собираете его вручную) разрешен cleartextTrafficPermitted="true".
Если у вас не работают точки останова в мобильном приложении:
-http.