Разработка для мобильных платформ в экосистеме 1С:Предприятие часто сопровождается специфическими сложностями, одной из которых является внезапное закрытие (crash) мобильного клиента или сборки при попытке активировать флажок «Отладка разрешена». Ситуация осложняется тем, что приложение может просто перестать запускаться до тех пор, пока настройки отладки не будут сброшены. В этой статье мы подробно разберем, почему это происходит, и проанализируем последовательность шагов для решения данной проблемы.
Проанализируем техническую совместимость. Одной из наиболее частых причин вылета является использование версий платформы ветки 8.3.22.х. Как показывает практика практикующих разработчиков, в сборках этой ветки (например, 8.3.22.38 или 8.3.22.1709) наблюдаются внутренние ошибки при работе с протоколом отладки JSON. Если мобильная платформа и основная платформа «Предприятия» на ПК имеют разную разрядность или относятся к разным минорным версиям, вероятность падения возрастает.
Рассмотрим рекомендации по стабилизации среды:
8.3.21.41. На данный момент она считается одной из самых стабильных для мобильной разработки.8.3.22 при сборке могут не проставляться разрешения на сетевую активность, что приводит к критической ошибке при попытке инициализировать сокет для отладки.Часто разработчики путают адрес публикации информационной базы и адрес сервера отладки. Рассмотрим, как правильно настроить подключение. Если прописать в строке отладки мобильного приложения URL базы (например, http://server/base), приложение может упасть из-за некорректной попытки интерпретировать HTTP-адрес как адрес отладочного сервера.
Выполним следующие шаги для проверки:
tcp://192.168.1.10:1560 или просто 192.168.1.10:1560).Если само мобильное приложение работает, но вылетает именно при включении отладки, проанализируем файл публикации default.vrd. Этот файл находится в каталоге на веб-сервере (IIS или Apache), куда была опубликована информационная база. Для корректной работы отладки в нем должны быть прописаны соответствующие параметры.
Посмотрим на пример правильной настройки секции debug в файле default.vrd:
<debug enable="true" url="tcp://192.168.1.10:1560" />
Важно помнить:
enable="true" обязателен.Рассмотрим ситуацию, когда настройки верны, но приложение все равно закрывается. Проблема может крыться в сетевой инфраструктуре. Мобильные устройства на Android часто отдают приоритет протоколу IPv6. Если сервер отладки 1С ожидает соединение по IPv4, возникает конфликт сокетов.
Что мы можем сделать:
dbgs.exe. Этот процесс отвечает за сервер отладки. Также необходимо открыть диапазон портов 1560–1591 для входящих соединений.192.168.x.x), избегая использования localhost или имен хостов, которые могут некорректно разрешаться DNS-сервером роутера.Если отладка по Wi-Fi остается нестабильной и вызывает падения, разберем метод работы через ADB (Android Debug Bridge). Этот способ исключает влияние сетевого оборудования и брандмауэров.
Для реализации этого метода выполним проброс портов через USB-кабель. В командной строке на ПК (при установленном Android SDK) выполним:
adb forward tcp:1560 tcp:1560
После этого в мобильном приложении в поле «Адрес сервера отладки» можно будет указать localhost:1560. Это направит трафик отладки напрямую через кабель к вашему ПК.
Если ни один из способов не помог, проанализируем причину вылета с помощью системных логов Android. Подключим устройство к ПК и воспользуемся утилитой logcat. В момент падения приложения в логе появится запись об ошибке.
Наиболее часто встречаются следующие ошибки:
Connection refused — сервер отладки недоступен или блокируется брандмауэром.Segmentation fault — критическая ошибка в коде самой мобильной платформы 1С (требуется смена версии платформы).Address already in use — конфликт портов на мобильном устройстве.Резюме: Если ваше мобильное приложение 1С вылетает при активации отладки, первым делом попробуйте сменить версию платформы на 8.3.21.x. Затем тщательно проверьте адрес сервера отладки через меню конфигуратора и убедитесь, что в файле default.vrd параметр debug enable установлен в значение true. Совместное использование этих методов в большинстве случаев позволяет стабилизировать работу мобильного клиента.