Как настроить отладку клиентских процедур в мобильном клиенте 1С, если работает только серверная отладка

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

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

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

Шаг 1. Переключение интерфейса конфигурации на управляемые формы

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

  1. Откроем свойства корневого объекта конфигурации.
  2. Найдем свойство ОсновнойСпособЗапуска и убедимся, что установлено значение УправляемоеПриложение.
  3. Проверим свойство РежимСовместимости. Для полноценной поддержки мобильного клиента рекомендуется использовать актуальные версии платформы без избыточного занижения режима совместимости.

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

Шаг 2. Настройка протокола HTTP в Конфигураторе

Мобильные клиенты и мобильные приложения 1С принципиально не поддерживают старый протокол отладки TCP/IP для клиентской части. Для обмена данными между конфигуратором и мобильным устройством обязательно должен использоваться современный протокол HTTP. Настроим его в конфигураторе:

  1. Перейдем в главное меню: Сервис — Параметры.
  2. Откроем вкладку Отладка.
  3. Установим переключатель выбора протокола в положение Отладка по протоколу HTTP.
  4. В группе настроек сервера отладки выберем вариант Использовать локальный сервер отладки.
  5. В поле Адрес локальной сетевой карты крайне не рекомендуется оставлять значение по умолчанию (localhost или 127.0.0.1). Мобильное устройство не сможет подключиться к локальной петле вашего компьютера. Вместо этого выберем из выпадающего списка или введем вручную реальный IP-адрес компьютера в локальной сети (например, 192.168.1.50).
  6. Зададим фиксированный порт отладки. По умолчанию платформа предлагает использовать диапазон портов или динамический выбор, однако для стабильной работы через брандмауэры лучше жестко прописать один порт, например, 1560 или 1561.

Важный нюанс: после изменения протокола отладки с TCP/IP на HTTP необходимо обязательно закрыть конфигуратор и запустить его заново. Параметры протокола инициализируются при старте системы.

Шаг 3. Корректная публикация информационной базы на веб-сервере

Мобильный клиент общается с базой данных через веб-сервер (IIS или Apache). Параметры отладки должны быть правильно транслированы веб-сервером мобильному приложению в момент соединения. Для этого отредактируем публикацию:

  1. Перейдем в меню Администрирование — Публикация на веб-сервере....
  2. На вкладке Основные проверим имя публикации. В поле Имя должно быть указано понятное латинское наименование без пробелов (например, MobileSales). Это имя будет использоваться в качестве псевдонима (DefAlias).
  3. Перейдем на вкладку Прочие (в некоторых версиях платформы она называется Дополнительно).
  4. Установим флаг Разрешить отладку.
  5. В поле Адрес сервера отладки введем адрес нашего локального компьютера с указанием протокола HTTP и ранее выбранного порта: http://192.168.1.50:1560.
  6. Нажмем кнопку Опубликовать. При возникновении вопроса о перезапуске службы веб-сервера ответим согласием. Если веб-сервер автоматически не перезапустился, выполним его перезапуск вручную через консоль служб Windows или панель управления IIS/Apache.

В результате публикации в каталоге базы данных сформируется или обновится файл описания публикации 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.

Шаг 4. Настройка параметров подключения на мобильном устройстве

Теперь перейдем к настройке самого мобильного приложения или мобильного клиента на смартфоне или планшете. Проанализируем ключевые настройки:

  1. Запустим мобильный клиент 1С на устройстве.
  2. В списке информационных баз выберем нашу базу и перейдем в ее свойства (редактирование параметров подключения).
  3. Найдем раздел Отладка и переведем переключатель в состояние Разрешена.
  4. В поле Адрес сервера отладки пропишем точно такой же адрес, какой указали в конфигураторе и файле публикации: http://192.168.1.50:1560.
  5. Убедимся, что имя базы в адресе подключения совпадает с псевдонимом публикации (например, http://192.168.1.50/MobileSales). Настройки псевдонима должны строго использовать радиокнопку "Использовать имя публикации" (или DefAlias) во избежание путаницы с путями.

Шаг 5. Настройка автоматического подключения предметов отладки

Даже если сетевой мост между устройствами построен, конфигуратор должен "понять", какие именно типы клиентских сеансов нужно автоматически перехватывать при их запуске. Выполним следующие действия:

  1. В конфигураторе откроем меню Отладка — Подключение....
  2. В открывшемся окне нажмем кнопку Настройка автоматического подключения.
  3. В списке доступных типов предметов отладки установим флаги напротив пунктов Мобильный клиент и Клиент (мобильное приложение).
  4. Нажмем ОК для сохранения настроек.

Теперь при старте приложения на телефоне конфигуратор автоматически обнаружит новый клиентский сеанс и подключит его к текущей сессии отладки.

Шаг 6. Устранение сетевых препятствий (Брандмауэр и Роутер)

Если все предыдущие шаги выполнены верно, но точки останова на клиенте по-прежнему игнорируются, дело в сетевой блокировке. Рассмотрим две основные причины:

Брандмауэр Windows (Windows Firewall)

По умолчанию брандмауэр операционной системы блокирует любые входящие сетевые запросы на нестандартные порты, к которым относится и наш порт отладки 1560. Нам необходимо создать разрешающее правило:

  1. Откроем Панель управления — Брандмауэр защитника Windows.
  2. Выберем пункт Дополнительные параметры в левой панели.
  3. Перейдем в раздел Правила для входящих подключений и нажмем Создать правило....
  4. Выберем тип правила Для порта, нажмем "Далее".
  5. Укажем протокол TCP и в поле "Определенные локальные порты" введем наш порт: 1560 (или тот, который вы указали в настройках).
  6. Выберем пункт Разрешить подключение.
  7. Укажем профили сети (для разработки в локальной сети обязательно должен быть активен профиль "Частная").
  8. Зададим имя правилу, например, 1С_Отладка_Мобильного_Клиента, и завершим создание.

Изоляция беспроводных клиентов (AP Isolation) на Wi-Fi роутере

Очень частая и неочевидная проблема кроется в настройках Wi-Fi роутера, к которому подключены компьютер (часто по проводу) и мобильное устройство (по беспроводной сети). Во многих роутерах в целях безопасности включена функция AP Isolation (изоляция точек доступа). При ее активности устройства могут выходить в интернет, но не видят друг друга внутри локальной сети. Попытка достучаться с телефона до порта отладки компьютера завершится таймаутом.

Решение: зайдите в административную панель вашего Wi-Fi роутера, найдите в настройках беспроводной сети (WLAN / Wi-Fi) параметр AP Isolation (или "Изоляция клиентов", "Изоляция точки доступа") и отключите его.

Альтернативный вариант: отладка по USB-кабелю с помощью ADB

Если вы работаете в жестко контролируемой корпоративной сети, где у вас нет доступа к настройкам роутера, а политики безопасности запрещают открывать порты брандмауэра, можно воспользоваться проводным подключением по USB. Для этого нам понадобится утилита ADB (Android Debug Bridge):

  1. Включите на мобильном устройстве Android режим разработчика и активируйте параметр Отладка по USB.
  2. Подключите устройство к компьютеру по кабелю.
  3. Скачайте и установите на ПК инструментарий ADB (входит в состав Android SDK Platform Tools).
  4. Откройте командную строку (cmd) на компьютере и выполните команду перенаправления портов:

adb forward tcp:1560 tcp:1560

Эта команда заставляет операционную систему перенаправлять все сетевые пакеты, приходящие на локальный порт 1560 компьютера, напрямую на порт 1560 подключенного по USB мобильного телефона. При такой схеме в настройках мобильного приложения на телефоне в качестве адреса сервера отладки вы можете смело указывать локальный адрес: http://127.0.0.1:1560. Это полностью решает проблемы с брандмауэром, роутером и нестабильным Wi-Fi сигналом.

Мы подробно проанализировали все возможные причины, по которым клиентские процедуры мобильного клиента 1С могут отказываться отлаживаться. Проверьте последовательно все шаги: от активации управляемого интерфейса в конфигурации до проброса портов в роутере или через USB-кабель. Системный подход к настройке сетевого взаимодействия гарантированно обеспечит вам комфортную и быструю отладку мобильных решений!

← На главную