Как настроить отладку мобильного клиента 1С и что делать, если приложение вылетает при входе в клиентские процедуры?

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

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

Переход на протокол HTTP: базовая настройка сервера

Для мобильных устройств стандартная отладка по протоколу TCP не подходит из-за особенностей сетевой маршрутизации и безопасности мобильных ОС. Первым делом нам необходимо перевести сервер 1С на использование HTTP-отладки. Проанализируем последовательность действий для настройки серверной части:

  1. Редактирование реестра Windows: На сервере, где запущен агент 1С:Предприятия, необходимо изменить параметры запуска службы. Перейдем в ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (наименование может меняться в зависимости от версии платформы).
  2. Добавление ключей запуска: В параметре ImagePath необходимо добавить флаг -http. Итоговая строка запуска должна выглядеть примерно так:
    
    "C:\Program Files\1cv8\8.3.18.1289\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\ProgramData\1C\1cv8" -debug -http
    
  3. Перезапуск службы: Чтобы изменения вступили в силу, перезапустим службу 1C:Enterprise 8.3 Server Agent. Учтите, что это приведет к временному отключению всех пользователей.

Настройка конфигуратора для работы по HTTP

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

Откроем меню Сервис — Параметры — Отладка. Здесь мы должны выбрать переключатель "Протокол отладки: HTTP". В этом же окне важно настроить "Локальный сервер отладки". Проанализируем ситуацию: если наш компьютер находится в одной сети с мобильным устройством, лучше указать конкретный IP-адрес нашего ПК, который "видит" мобильный клиент.

Далее перейдем в меню Отладка — Подключение — Автоматическое подключение. Обязательно установим флажок напротив пункта "Мобильный клиент". Это позволит конфигуратору автоматически подхватывать сеанс, запущенный на смартфоне или планшете, как только выполнение дойдет до точки останова.

Тонкая настройка публикации (default.vrd)

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

Нам необходимо убедиться, что в секции point или внутри настроек мобильного приложения прописаны параметры отладки. Пример корректной настройки секции:

<debug enable="true" url="http://192.168.1.10:1550" />

В параметре url мы указываем адрес компьютера, на котором запущен конфигуратор, и порт отладки (по умолчанию 1550). Это критически важно, так как мобильный клиент должен знать, куда именно отправлять данные о состоянии переменных при остановке кода.

Почему мобильный клиент "валится" на клиентских процедурах?

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

  1. Блокировка входящих соединений: Когда выполнение доходит до клиентской точки останова, мобильное приложение пытается инициировать HTTP-запрос к вашему компьютеру. Брандмауэр Windows или антивирус часто расценивают это как атаку и обрывают соединение. Приложение 1С, не получив ответа от отладчика, может закрыться с критической ошибкой. Рекомендуется временно отключить брандмауэр или создать разрешающее правило для порта 1550 (и диапазона 1560-1591).
  2. Таймауты сессии: Мобильные ОС (особенно iOS) очень агрессивно управляют фоновыми процессами и сетевыми ожиданиями. Если вы долго анализируете переменные на точке останова, соединение может быть разорвано системой, что приведет к падению клиента при попытке "шагнуть" дальше.
  3. Несоответствие версий: Проанализируем версию мобильной платформы. Использование сборки мобильного клиента от версии 8.3.18.1200 при серверной платформе 8.3.18.1289 может вызвать нестабильность именно в режиме отладки. Версии должны совпадать до последнего знака.

Использование локального сервера отладки конфигуратора

Если отладка через сервер 1С (кластер) не удается, попробуем запустить локальный сервер отладки прямо из конфигуратора. Это исключает влияние некоторых настроек кластера. В параметрах отладки конфигуратора выберите "Использовать локальный сервер". Запомните или скопируйте имя базы, которое там указано (часто советуют использовать DefAlias).

В настройках самого мобильного приложения на устройстве, в разделе "Отладка", нужно будет включить соответствующий тумблер и прописать адрес вашего ПК и порт. Посмотрим на типичный адрес отладки для мобильного клиента: http://192.168.x.x:1550.

Особенности платформ 8.3.18 и 8.3.19

Стоит признать, что в версиях 8.3.18 и 8.3.19 был зафиксирован ряд системных ошибок, связанных с работой отладчика в мобильном клиенте. Если вы выполнили все настройки, пробросили порты, обеспечили видимость IP-адресов, но вылеты продолжаются — попробуйте следующее:

Таким образом, настройка отладки мобильного клиента — это комплексный процесс, требующий синхронизации настроек сервера 1С, веб-сервера (публикации), настроек конфигуратора и параметров сетевой безопасности. Тщательная проверка каждого звена этой цепи позволит вам эффективно находить и устранять ошибки в мобильных решениях.

← На главную