Разработка под мобильные платформы в среде 1С имеет свои уникальные особенности. Очень часто начинающие (и даже опытные) разработчики сталкиваются с неприятной ситуацией: при запуске сеанса мобильного клиента точки останова без проблем срабатывают в серверных процедурах общего модуля или модуля менеджера, но полностью игнорируются в клиентских процедурах модулей форм или команд. Происходит это из-за разницы в архитектуре исполнения кода. Серверный код выполняется на стороне основного сервера 1С (или веб-сервера), с которым конфигуратор связан напрямую. Клиентский же код выполняется непосредственно на процессоре мобильного устройства под управлением Android или iOS. Чтобы связать конфигуратор с мобильным устройством для клиентской отладки, требуется настроить надежный двусторонний канал связи.
В этой статье мы подробно разберем по шагам, почему возникает эта проблема, проанализируем неочевидные тонкости настройки окружения и выясним, как заставить отладчик стабильно работать на клиенте мобильного устройства.
Прежде всего необходимо исключить банальные интерфейсные ограничения конфигуратора. Если разрабатываемая или дорабатываемая конфигурация изначально создавалась как обычное приложение (на обычных формах), многие пункты меню, связанные с мобильной разработкой и современной отладкой, могут быть скрыты или недоступны. Выясним, как это исправить:
ОсновнойСпособЗапуска и убедимся, что установлено значение УправляемоеПриложение.РежимСовместимости. Для полноценной поддержки мобильного клиента рекомендуется использовать актуальные версии платформы без избыточного занижения режима совместимости.После переключения конфигурации в режим управляемого приложения нам станут доступны все необходимые элементы управления мобильной отладкой.
Мобильные клиенты и мобильные приложения 1С принципиально не поддерживают старый протокол отладки TCP/IP для клиентской части. Для обмена данными между конфигуратором и мобильным устройством обязательно должен использоваться современный протокол HTTP. Настроим его в конфигураторе:
localhost или 127.0.0.1). Мобильное устройство не сможет подключиться к локальной петле вашего компьютера. Вместо этого выберем из выпадающего списка или введем вручную реальный IP-адрес компьютера в локальной сети (например, 192.168.1.50).1560 или 1561.Важный нюанс: после изменения протокола отладки с TCP/IP на HTTP необходимо обязательно закрыть конфигуратор и запустить его заново. Параметры протокола инициализируются при старте системы.
Мобильный клиент общается с базой данных через веб-сервер (IIS или Apache). Параметры отладки должны быть правильно транслированы веб-сервером мобильному приложению в момент соединения. Для этого отредактируем публикацию:
MobileSales). Это имя будет использоваться в качестве псевдонима (DefAlias).http://192.168.1.50:1560.В результате публикации в каталоге базы данных сформируется или обновится файл описания публикации default.vrd. Разберем структуру этого файла на примере правильного блока конфигурации отладки:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/MobileSales"
ib="File="C:\Base1C\MobileSales";">
<debug enable="true" url="http://192.168.1.50:1560" />
<ws publishExtensionsByDefault="true" />
</point>
Обратим внимание на параметр enable="true" и точное совпадение IP-адреса и порта в параметре url.
Теперь перейдем к настройке самого мобильного приложения или мобильного клиента на смартфоне или планшете. Проанализируем ключевые настройки:
http://192.168.1.50:1560.http://192.168.1.50/MobileSales). Настройки псевдонима должны строго использовать радиокнопку "Использовать имя публикации" (или DefAlias) во избежание путаницы с путями.Даже если сетевой мост между устройствами построен, конфигуратор должен "понять", какие именно типы клиентских сеансов нужно автоматически перехватывать при их запуске. Выполним следующие действия:
Теперь при старте приложения на телефоне конфигуратор автоматически обнаружит новый клиентский сеанс и подключит его к текущей сессии отладки.
Если все предыдущие шаги выполнены верно, но точки останова на клиенте по-прежнему игнорируются, дело в сетевой блокировке. Рассмотрим две основные причины:
По умолчанию брандмауэр операционной системы блокирует любые входящие сетевые запросы на нестандартные порты, к которым относится и наш порт отладки 1560. Нам необходимо создать разрешающее правило:
1560 (или тот, который вы указали в настройках).1С_Отладка_Мобильного_Клиента, и завершим создание.Очень частая и неочевидная проблема кроется в настройках Wi-Fi роутера, к которому подключены компьютер (часто по проводу) и мобильное устройство (по беспроводной сети). Во многих роутерах в целях безопасности включена функция AP Isolation (изоляция точек доступа). При ее активности устройства могут выходить в интернет, но не видят друг друга внутри локальной сети. Попытка достучаться с телефона до порта отладки компьютера завершится таймаутом.
Решение: зайдите в административную панель вашего Wi-Fi роутера, найдите в настройках беспроводной сети (WLAN / Wi-Fi) параметр AP Isolation (или "Изоляция клиентов", "Изоляция точки доступа") и отключите его.
Если вы работаете в жестко контролируемой корпоративной сети, где у вас нет доступа к настройкам роутера, а политики безопасности запрещают открывать порты брандмауэра, можно воспользоваться проводным подключением по USB. Для этого нам понадобится утилита ADB (Android Debug Bridge):
adb forward tcp:1560 tcp:1560
Эта команда заставляет операционную систему перенаправлять все сетевые пакеты, приходящие на локальный порт 1560 компьютера, напрямую на порт 1560 подключенного по USB мобильного телефона. При такой схеме в настройках мобильного приложения на телефоне в качестве адреса сервера отладки вы можете смело указывать локальный адрес: http://127.0.0.1:1560. Это полностью решает проблемы с брандмауэром, роутером и нестабильным Wi-Fi сигналом.
Мы подробно проанализировали все возможные причины, по которым клиентские процедуры мобильного клиента 1С могут отказываться отлаживаться. Проверьте последовательно все шаги: от активации управляемого интерфейса в конфигурации до проброса портов в роутере или через USB-кабель. Системный подход к настройке сетевого взаимодействия гарантированно обеспечит вам комфортную и быструю отладку мобильных решений!