Разработка для мобильных устройств (ТСД) в экосистеме 1С имеет свои специфические особенности, особенно когда речь заходит о поиске ошибок. Часто возникает ситуация: вы запускаете отладку, точки останова в серверных процедурах &НаСервере срабатывают моментально, а процедуры с директивой &НаКлиенте игнорируются системой. При этом в списке предметов отладки виден только серверный вызов, а клиентское приложение ТСД просто отсутствует.
В этой статье мы подробно разберем, почему так происходит, проанализируем взаимосвязь настроек конфигуратора и мобильного клиента, а также настроим рабочее окружение так, чтобы отладка стала стабильной и предсказуемой.
Первое, что нам необходимо понять: механизмы подключения мобильного клиента к отладчику зависят от выбранного типа сервера отладки. Проблема, с которой сталкиваются многие разработчики, заключается в том, что платформа 1С по-разному регистрирует "предметы отладки" (сеансы) в зависимости от настроек в меню Сервис — Параметры — Отладка.
Проанализируем результаты опытных проверок, которые показывают следующую закономерность:
Это происходит потому, что мобильный клиент при запуске должен четко понимать, куда именно ему отправлять информацию о своем состоянии. Если настройки в конфигураторе и на самом ТСД не согласованы, один из уровней (клиент или сервер) неизбежно выпадает из процесса отладки.
Начиная с современных версий платформы (8.3.20 и выше), протокол TCP для мобильной отладки считается устаревшим. Если вы используете платформу 8.3.24 и выше, как в нашем примере, крайне важно переключиться на HTTP-отладку. Протокол TCP часто блокируется брандмауэрами или нестабильно работает в Wi-Fi сетях, что приводит к исчезновению клиентских предметов отладки.
Рассмотрим, как правильно настроить HTTP-отладку:
http://[IP-адрес-вашего-ПК]:1560.Многие разработчики ошибочно полагают, что на мобильном клиенте нет настроек отладки. На самом деле они скрыты в свойствах информационной базы. Выполним следующие шаги для настройки ТСД:
http://192.168.0.100:1560).Важное наблюдение: Как показывает практика, в поле адреса на ТСД лучше указывать именно локальный IP-адрес сервера, а не его сетевое имя. Это исключает проблемы с разрешением имен (DNS) внутри локальной сети Wi-Fi.
Если ваша база опубликована на веб-сервере (IIS или Apache), настройки в конфигураторе могут игнорироваться мобильным клиентом, если они не прописаны в файле публикации default.vrd. Проанализируем структуру этого файла. В нем должна присутствовать секция, разрешающая отладку.
Посмотрим на пример правильной настройки в XML-файле:
<debug enable="true" url="http://192.168.0.100:1560" />
Если этот параметр отсутствует или содержит неверный URL, мобильный клиент не сможет инициализировать подключение к отладчику, даже если серверная отладка (через службу -debug) будет работать исправно.
Распространенное заблуждение гласит, что отладку на ТСД можно делать только "по очереди". Это не так. Чтобы точки останова работали одновременно и в &НаКлиенте, и в &НаСервере, необходимо использовать единый Сервер отладки (dbgs).
Рассмотрим алгоритм действий:
default.vrd.Когда все три точки (Конфигуратор, Веб-сервер и ТСД) смотрят на один и тот же адрес dbgs, система корректно связывает клиентский сеанс с серверными вызовами, и вы сможете бесшовно перемещаться по коду кнопкой F11 (Шагнуть в), переходя из клиентской процедуры в серверную функцию.
Если у вас на ТСД не работает клиентская отладка, из-за чего невозможно применить даже способ выполнения произвольного кода под мобильным клиентом, проверьте три критические точки:
default.vrd и на мобильном устройстве?Соблюдение этих правил позволит вам избежать утомительных перезаходов в базу, а в паре с таким инструментом, как помощник отладки, обеспечит полноценную разработку для мобильных платформ 1С.