Отладка вызовов к внешней системе через коннекторы

Последние изменение: 29.08.2019

Когда оператор терминала сбора данных сканирует штрихкод для запроса остатков товара, со стороны внешней системы (учетной системы, товарной базы) кто-то должен обработать этот запрос и вернуть результат. В случае 1С это будет метод глобального контекста или контекста внешнего соединения, для Axapta это будет публичный статический метод в каком-то классе, а в случае SQL базы данных это может быть хранимая процедура (хотя можно выполнить и простой запрос).

Для отладки работы кода внешней системы, который должен будет вызываться с ТСД, в панели управления Mobile SMARTS предусмотрено специальное окно, вызываемое из контекстного меню коннектора:

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

Как видно, коннектору передаются именованные параметры. Метод внешней системы, который будет принимать эти параметры, может получить их в двух вариантах, в зависимости от реализации коннектора. Первый вариант – будет учитываться только порядок передачи параметров, а имена не имеют значения и отбрасываются. Второй вариант – метод принимает единственный строковой аргумент, в котором передается XML с сериализованным объектом Cleverence.Warehosue.InvokeArgs; это выглядит примерно как «<?xml version="1.0" encoding="utf-8" ?><InvokeArgs xmlns:clr="http://schemas...».

Отладка процедур и функций базы 1С драйвера

Разберем, как подключить отладчик 1С к конфигурации, с которой взаимодействует Mobile SMARTS, чтобы отладить выполнение какой-нибудь функции, которая вызывается с терминала.

Рассмотрим подключение на основе операции «Просмотр товаров из 1С» из стандартной поставки Wi-Fi ПРОФ драйвера. Разберем, что вызывается и отладим процедуру, которая вызывается.

Для начала найдем соответствующий алгоритм в панели управления и посмотрим, как называется метод, вызываемый из 1С.

Для данной операции метод, который вызывается из 1С называется «ПолучитьНоменклатуруПоГруппам».

Затем посмотрим какая обработка подключена. Для этого нужно посмотреть Внешние соединения.

В данном примере подключена обработка «ВнешниеВызовыУТ11».

Теперь найдем данную процедуру в модуле обработки.

Открываем модуль объекта, данной обработки, ищем нашу функцию и нажимаем кнопку «Перейти».

Клиент-файловый вариант работы

В клиент-файловом варианте необходимо проверить подключена ли отладка. Для этого запускаем режим «Предприятие», заходим в Сервис -> Параметры -> вкладка Системные. Смотрим, проставлен ли флаг «Устанавливать режим разрешения отладки при запуске». Если не проставлено необходимо проставить и сохранить.

В случае, если флаг «Устанавливать режим разрешения отладки при запуске» не сохраняется, необходимо скопировать файл comcntrcfg.xml (предварительно скачать и извлечь из архива comcntrcfg.zip) в папки «c:\Program Files\1cv82\8.х.хх.ххх\bin\conf\», «c:\Program Files\1cv82\conf\».

В файле прописано, что отладка разрешена и по умолчанию включается на локальной машине.

Дальше поставим «точку останова».

Запустим вызов процедуры, выбрав операцию.

Создалось подключение сервера Mobile SMARTS к базе драйвера и теперь необходимо подключиться к той сессии, которая создалась. Выбираем Отладка -> Подключение.

Производим подключение.

Вызовем нашу процедуру еще раз.

Система остановилась, на нашей «точке останова».

Далее стандартными методами 1С (зайти в процедуру, шагнуть) можно отладить соответствующую процедуру 1С.

Клиент-серверный вариант работы

Для клиент-серверного варианта работы отладку нужно производить на том же компьютере, где запущен «Агент сервера 1С:Предприятия».

Для клиент-серверного варианта необходимо остановить «Агент сервера 1С:Предприятия».

В реестре (Компьютер\HKEY_LOCAL_MACHINE\SISTEM\CurrentControlSet\services\1C:Enterprise 8.2 Server Agent) найти параметр ImagePath и написать ключик -debug.

Запускаем службу.

Запускаем конфигуратор базы драйвера.

И аналогично, как в клиент-файловом варианте, ставим «точку останова», вызываем метод 1С из Мobile SMARTS, отлаживаем код в 1С.

В 1С 8.3 появился параметр «Номер порта для тонкого и толстого клиента».



Для отладки это значение должно находится в пределах портов установленных в параметрах: