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

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

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

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

Причина №1: Несовпадение версий основной и мобильной платформы

Разберем наиболее распространенную причину, которая часто ускользает от внимания разработчиков. Для корректной передачи отладочной информации между мобильным устройством и Конфигуратором версии платформ должны быть максимально близки друг к другу. Рассмотрим ситуацию из практики: на компьютере установлена версия 8.3.23.1865, а мобильное приложение запущено на платформе 8.3.24.40.

Несмотря на то что разница кажется незначительной (изменение в третьем наборе цифр), механизмы взаимодействия предметов отладки в 23-й и 24-й ветках могут существенно отличаться. Проанализируем, как это влияет на процесс: соединение устанавливается (хендшейк проходит успешно), но пакеты данных о достижении точки останова не интерпретируются Конфигуратором должным образом.

Решение: Убедитесь, что версия мобильной платформы соответствует версии платформы, на которой запущен Конфигуратор. Если вы используете 8.3.23 на ПК, используйте сборку мобильной платформы той же ветки (например, 8.3.23.ххх). После понижения (или повышения) версии мобильного клиента до уровня основной платформы работоспособность точек останова, как правило, восстанавливается.

Причина №2: Неправильный выбор протокола отладки (HTTP vs TCP)

Начиная с версии 8.3.20, компания 1С перевела основной механизм отладки на протокол HTTP. Если раньше мы привыкли использовать TCP-соединения, то для мобильных устройств старый протокол стал работать нестабильно. Выясним, как правильно настроить современный протокол.

Для мобильной отладки критически важно использовать именно HTTP-отладку. Рассмотрим по шагам, где это проверить:

  1. В Конфигураторе перейдем в меню Сервис — Параметры, вкладка Отладка.
  2. Убедимся, что выбран переключатель Использовать протокол HTTP.
  3. Проверим адрес сервера отладки. Здесь должен быть указан IP-адрес вашего компьютера в локальной сети (например, 192.168.1.15), а не имя хоста и ни в коем случае не 127.0.0.1.

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

Причина №3: Ошибки в файле публикации (default.vrd)

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

Найдем в каталоге публикации файл default.vrd и откроем его текстовым редактором. Нам необходимо убедиться в наличии секции debug с правильными параметрами. Рассмотрим пример правильной настройки:

<debug enable="true" url="http://192.168.1.15:1560" />

В этом примере параметр enable="true" включает возможность отладки, а url указывает адрес, по которому мобильное приложение будет искать сервер отладки. Если этого блока нет или enable стоит в значении false, мобильное устройство будет работать в обычном режиме, игнорируя все команды отладчика.

Причина №4: Сетевая доступность и блокировки брандмауэра

Часто проблема кроется не в настройках 1С, а в сетевом окружении. Разберем ситуацию: компьютер и телефон находятся в одной Wi-Fi сети, но связи между ними для целей отладки нет. Для работы HTTP-отладки используются динамические порты в диапазоне 1560–1591.

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

Причина №5: Настройки сборки мобильного приложения

Если вы собираете полноценный APK-файл (или файл для iOS) через «Сборщик мобильных приложений», обратите внимание на флаг Разрешить отладку в настройках конфигурации мобильного приложения. Рассмотрим, почему это важно.

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

Причина №6: Отладка фоновых заданий на мобильном устройстве

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

В окне Подключение предметов отладки (меню Отладка — Подключение) нажмите кнопку Настройка автоматического подключения. В появившемся окне обязательно установите флажок Мобильные приложения: фоновые задания. Без этой настройки точка останова внутри обработчика фонового задания никогда не сработает, так как этот «предмет отладки» не будет подцеплен к вашему сеансу.

Причина №7: Проблемы кэширования

В редких случаях, даже при правильных настройках, отладка может «глючить» из-за накопленного кэша на мобильном устройстве или на стороне веб-сервера. Рассмотрим алгоритм «жесткого» сброса настроек:

  1. Остановите отладку в Конфигураторе.
  2. Перезапустите службу веб-сервера (например, World Wide Web Publishing Service для IIS).
  3. На мобильном устройстве зайдите в настройки приложения и выполните Очистку кэша (не путать с очисткой данных, если вам важно сохранить базу).
  4. Заново опубликуйте базу из Конфигуратора, убедившись, что все галочки автоматического подключения проставлены.

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

← На главную