Клиенту необходимо было настроить отправку кодов маркировки на проверку через ТС ПИоТ. База УТ 10, сильно переписанная, на платформе 8.2. Основная проблема была в том, что запросы в ТС ПИоТ отправляются локально, что невозможно было сделать на неуправляемых формах. В связи с этим пришлось создавать промежуточный модуль обмена между УТ 10 и ТС ПИоТ.
Общая архитектура:
1. Перед продажей УТ отправляет данные (json) в модуль через https-сервис.
2. Модуль обрабатывает данные и через WebSocket отправляет их на клиент.
3. В модуле открыта форма, которая ожидает данные с сервера и при получении отправляет запрос на проверку кодов маркировки в ТС ПИоТ. После получения ответа от Честного знака (ЧЗ), результат проверки сохраняется и считывается на сервере.
4. Сервер, в свою очередь, после отправки по таймауту ожидает ответ от клиента и при получении ответа отправляет результат обратно в УТ. Время ожидания сервера - 30 секунд, его можно изменить в модуле.
На стороне УТ уже реализована отправка кассой тегов (reqId, reqTimestamp, Inst, Ver, Time, UUID) в ЧЗ. По сути, это теги для Разрешительного Режима.
В модуле необходимо открыть форму обработки МодульОбменаПИОТ (см.скрин) для прослушивания канала WebSocket. URL в сокете требуется добавить свой вместо того, что указано в модуле. WebSocket-сервер разворачивается в фоне средствами 1с. Однако, оптимальнее это делать сторонними программами, например Python + Библиотека simple-websocket. Обмен параметрами запрос-ответ между клиентом и сервером осуществляется с помощью "хранилища" WebSocket-клиентов. Уникальность хранилища привязана к пользователю и ИД запроса.
Для принятия данных из УТ уже описаны http-методы KAM_ismotp в дереве конфигурации, но процедуры запроса и ответа придется допиливать под свой функционал.
Модуль написан на базе БСП 3.1.11.239. Также добавлены общие процедуры и модули пакета интеграции WebSocket, MCP и конфигурации Розница 3.0. Чтобы работали веб сокеты, версия платформа должна быть не ниже 8.3.27. В модуле настроено логирование по части обмена с ТС ПИоТ.
Данный метод является временным решением проблемы для пользователей на платформе 8.2, на текущий момент данный подход проверен и функционирует на стороне компании-заказчика. Несколько кассиров параллельно могут открывать модуль, УТ и реализовывать продажу.
Вступайте в нашу телеграмм-группу Инфостарт