Почему вылетает мобильное приложение 1С при включении отладки и как это исправить?

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

Разработка для мобильных платформ в экосистеме 1С:Предприятие часто сопровождается специфическими сложностями, одной из которых является внезапное закрытие (crash) мобильного клиента или сборки при попытке активировать флажок «Отладка разрешена». Ситуация осложняется тем, что приложение может просто перестать запускаться до тех пор, пока настройки отладки не будут сброшены. В этой статье мы подробно разберем, почему это происходит, и проанализируем последовательность шагов для решения данной проблемы.

Разберем основную причину: Конфликт версий платформы

Проанализируем техническую совместимость. Одной из наиболее частых причин вылета является использование версий платформы ветки 8.3.22.х. Как показывает практика практикующих разработчиков, в сборках этой ветки (например, 8.3.22.38 или 8.3.22.1709) наблюдаются внутренние ошибки при работе с протоколом отладки JSON. Если мобильная платформа и основная платформа «Предприятия» на ПК имеют разную разрядность или относятся к разным минорным версиям, вероятность падения возрастает.

Рассмотрим рекомендации по стабилизации среды:

  1. Откат на стабильную версию: Попробуем использовать связку платформы 8.3.21.41. На данный момент она считается одной из самых стабильных для мобильной разработки.
  2. Синхронизация версий: Убедимся, что версия мобильной платформы, на которой собрано приложение, соответствует версии установленной на компьютере платформы 1С. Если мобильная платформа старше, многие механизмы (включая отладку) могут работать некорректно.
  3. Проверка разрешений: Выясним, установлены ли необходимые разрешения в манифесте приложения (при использовании сборщика). В некоторых версиях 8.3.22 при сборке могут не проставляться разрешения на сетевую активность, что приводит к критической ошибке при попытке инициализировать сокет для отладки.

Проанализируем адрес сервера отладки

Часто разработчики путают адрес публикации информационной базы и адрес сервера отладки. Рассмотрим, как правильно настроить подключение. Если прописать в строке отладки мобильного приложения URL базы (например, http://server/base), приложение может упасть из-за некорректной попытки интерпретировать HTTP-адрес как адрес отладочного сервера.

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

  1. В конфигураторе на рабочем ПК перейдем в меню Отладка — Подключение — Настройка.
  2. Найдем поле, где указан адрес сервера отладки. Он должен выглядеть как имя хоста или IP-адрес с указанием порта (например, tcp://192.168.1.10:1560 или просто 192.168.1.10:1560).
  3. Проверим доступность этого адреса с мобильного устройства. Введем этот адрес в браузере смартфона. Если мы видим сообщение «1C:Enterprise 8.3 Debug Server... It works!», значит, сетевой доступ есть. Если же отображается стандартная страница веб-сервера (например, «It works!» от Apache), это означает, что вы указали адрес веб-сервера, а не сервера отладки.

Настройка публикации на веб-сервере (default.vrd)

Если само мобильное приложение работает, но вылетает именно при включении отладки, проанализируем файл публикации default.vrd. Этот файл находится в каталоге на веб-сервере (IIS или Apache), куда была опубликована информационная база. Для корректной работы отладки в нем должны быть прописаны соответствующие параметры.

Посмотрим на пример правильной настройки секции debug в файле default.vrd:

<debug enable="true" url="tcp://192.168.1.10:1560" />

Важно помнить:

Проблемы сетевого экрана и протокола IPv6

Рассмотрим ситуацию, когда настройки верны, но приложение все равно закрывается. Проблема может крыться в сетевой инфраструктуре. Мобильные устройства на Android часто отдают приоритет протоколу IPv6. Если сервер отладки 1С ожидает соединение по IPv4, возникает конфликт сокетов.

Что мы можем сделать:

  1. Отключить IPv6: В настройках сетевого адаптера на ПК, где запущен конфигуратор, временно отключим протокол IPv6.
  2. Настроить Брандмауэр: Нужно вручную добавить исключение для исполняемого файла dbgs.exe. Этот процесс отвечает за сервер отладки. Также необходимо открыть диапазон портов 1560–1591 для входящих соединений.
  3. Проверить IP-адрес: В настройках отладки на мобильном устройстве всегда указываем прямой IPv4 адрес сервера (например, 192.168.x.x), избегая использования localhost или имен хостов, которые могут некорректно разрешаться DNS-сервером роутера.

Использование альтернативных методов подключения

Если отладка по Wi-Fi остается нестабильной и вызывает падения, разберем метод работы через ADB (Android Debug Bridge). Этот способ исключает влияние сетевого оборудования и брандмауэров.

Для реализации этого метода выполним проброс портов через USB-кабель. В командной строке на ПК (при установленном Android SDK) выполним:

adb forward tcp:1560 tcp:1560

После этого в мобильном приложении в поле «Адрес сервера отладки» можно будет указать localhost:1560. Это направит трафик отладки напрямую через кабель к вашему ПК.

Диагностика через Logcat

Если ни один из способов не помог, проанализируем причину вылета с помощью системных логов Android. Подключим устройство к ПК и воспользуемся утилитой logcat. В момент падения приложения в логе появится запись об ошибке.

Наиболее часто встречаются следующие ошибки:

Резюме: Если ваше мобильное приложение 1С вылетает при активации отладки, первым делом попробуйте сменить версию платформы на 8.3.21.x. Затем тщательно проверьте адрес сервера отладки через меню конфигуратора и убедитесь, что в файле default.vrd параметр debug enable установлен в значение true. Совместное использование этих методов в большинстве случаев позволяет стабилизировать работу мобильного клиента.

← На главную