Почему при работе с ТСД отладка работает на сервере, но не останавливается в клиентских процедурах?

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

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

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

Разбираем причину разделения предметов отладки

Первое, что нам необходимо понять: механизмы подключения мобильного клиента к отладчику зависят от выбранного типа сервера отладки. Проблема, с которой сталкиваются многие разработчики, заключается в том, что платформа 1С по-разному регистрирует "предметы отладки" (сеансы) в зависимости от настроек в меню Сервис — Параметры — Отладка.

Проанализируем результаты опытных проверок, которые показывают следующую закономерность:

  1. Использовать локальный сервер отладки: При такой настройке (с указанием IP-адреса вашей сетевой карты) в списке доступных предметов отладки будут появляться только КЛИЕНТСКИЕ подключения.
  2. Использовать сервер отладки кластера: В этом случае система будет "видеть" только СЕРВЕРНЫЕ вызовы.

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

Настройка протокола HTTP: современный стандарт

Начиная с современных версий платформы (8.3.20 и выше), протокол TCP для мобильной отладки считается устаревшим. Если вы используете платформу 8.3.24 и выше, как в нашем примере, крайне важно переключиться на HTTP-отладку. Протокол TCP часто блокируется брандмауэрами или нестабильно работает в Wi-Fi сетях, что приводит к исчезновению клиентских предметов отладки.

Рассмотрим, как правильно настроить HTTP-отладку:

  1. В параметрах конфигуратора выберите протокол HTTP.
  2. Укажите адрес сервера отладки. Обычно это http://[IP-адрес-вашего-ПК]:1560.
  3. Убедитесь, что порт 1560 открыт на вашем компьютере для входящих соединений от ТСД.

Корректная настройка мобильного устройства (ТСД)

Многие разработчики ошибочно полагают, что на мобильном клиенте нет настроек отладки. На самом деле они скрыты в свойствах информационной базы. Выполним следующие шаги для настройки ТСД:

  1. Запустите мобильное приложение 1С на ТСД.
  2. В списке информационных баз найдите вашу базу, но не заходите в нее.
  3. Выполните длительное нажатие на название базы или нажмите на иконку настроек (обычно это символ "i").
  4. Найдите раздел Отладка.
  5. Установите флаг Разрешена.
  6. В поле Адрес сервера отладки ОБЯЗАТЕЛЬНО укажите тот же адрес, что и в конфигураторе (например, http://192.168.0.100:1560).

Важное наблюдение: Как показывает практика, в поле адреса на ТСД лучше указывать именно локальный IP-адрес сервера, а не его сетевое имя. Это исключает проблемы с разрешением имен (DNS) внутри локальной сети Wi-Fi.

Настройка публикации базы (файл default.vrd)

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

Посмотрим на пример правильной настройки в XML-файле:


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

Если этот параметр отсутствует или содержит неверный URL, мобильный клиент не сможет инициализировать подключение к отладчику, даже если серверная отладка (через службу -debug) будет работать исправно.

Как добиться одновременной отладки клиента и сервера?

Распространенное заблуждение гласит, что отладку на ТСД можно делать только "по очереди". Это не так. Чтобы точки останова работали одновременно и в &НаКлиенте, и в &НаСервере, необходимо использовать единый Сервер отладки (dbgs).

Рассмотрим алгоритм действий:

  1. Запустите на рабочем компьютере или на сервере автономный сервер отладки.
  2. В конфигураторе укажите адрес этого сервера.
  3. Этот же адрес пропишите в настройках ТСД и в файле default.vrd.
  4. В окне Предметы отладки нажмите кнопку Настройка и убедитесь, что установлены флажки для автоматического подключения и клиентских, и серверных сеансов.

Когда все три точки (Конфигуратор, Веб-сервер и ТСД) смотрят на один и тот же адрес dbgs, система корректно связывает клиентский сеанс с серверными вызовами, и вы сможете бесшовно перемещаться по коду кнопкой F11 (Шагнуть в), переходя из клиентской процедуры в серверную функцию.

Резюме и рекомендации

Если у вас на ТСД не работает клиентская отладка, из-за чего невозможно применить даже способ выполнения произвольного кода под мобильным клиентом, проверьте три критические точки:

Соблюдение этих правил позволит вам избежать утомительных перезаходов в базу, а в паре с таким инструментом, как помощник отладки, обеспечит полноценную разработку для мобильных платформ 1С.

← На главную