Публичное пространство
SetRetail10 ◾️ Установка и настройка ТС ПИоТ
Описание
В данной статье приведена инструкция по установке и настройке компонентов Технического средства получения информации о товаре (ТС ПИоТ), включая контроллер ЛМ и модуль ЕСМ.
Установка контроллера ЛМ
Контроллер ЛМ устанавливается на ПК с ЛМЧЗ. Настройка модуля не требуется.
Скачайте дистрибутив контроллера ЛМ из личного кабинета ЕСП в зависимости от ОС.
Установите модуль:
Windows: установка в интерактивном режиме через
.exe.Ubuntu: установка с помощью утилиты
dpkg:
sudo dpkg -i ./esm-lm-controller_*_amd64.debУстановка ЕСМ
ОС Ubuntu
Скачайте дистрибутив ЕСМ из личного кабинета ЕСП на кассу.
Дайте права на выполнение сценария и запустите его:
sudo chmod +x esm_*_ubuntu22.run
./esm_*_ubuntu22.runДождитесь окончания установки.
Перезапустите кассу командой
cash reboot.
ОС TinyCore
Скачайте дистрибутив ЕСМ из личного кабинета ЕСП на кассу.
Дайте права на выполнение сценария и запустите его:
sudo chmod +x esm_*_tinycore8.run
./esm_*_tinycore8.runДождитесь окончания установки.
Добавьте ЕСМ и ДККТ в автозагрузку, добавив строки
esm-csi-dkkt.tczиesm.tczв файл/etc/sysconfig/tcedir/onboot.lst.
Перезапустите кассу командой
cash reboot.
Настройка ЕСМ
Откройте смену на кассе.
Выполните запрос получения списка подключенных ДККТ:
curl --location 'http://127.0.0.1:51077/api/v1/dkktList'Выполните запрос создания сервиса ЕСМ с
id = kktSerialиз запроса выше:
curl --location --request POST 'http://127.0.0.1:51077/api/v1/tspiot' --header 'Content-Type: application/json' --data '{"id": "0123456789"}'Запустите сервис, при необходимости:
curl --location --request POST 'http://127.0.0.1:51077/api/v1/service/start/0123456789'Выполните запрос регистрации сервиса ЕСМ с данными из запроса списка подключенных ДККТ:
curl --location --request PUT 'http://127.0.0.1:51077/api/v1/tspiot' --header 'Content-Type: application/json' --data '{"id": "0123456789", "kktSerial": "0123456789", "fnSerial": "9999000123456789", "kktInn": "0987654321"}'Выполните запрос установки настроек связи ЕСМ с ЛМ ЧЗ, указав актуальные учетные данные от вашего сервера ЛМЧЗ с контроллером ЛМ:
curl --location --request PUT 'http://127.0.0.1:51077/api/v1/settings/lm/0123456789' --header 'ContentType: application/json' --data '{"address":"192.168.0.1","port":50063,"login":"admin","password":"admin"}'Настройка ТС ПИоТ на сервере
На сервере перейдите в раздел Интеграция → Внешние процессинги → добавьте процессинг Валидация в ТС ПИоТ.
Выберите магазин или установите флажок
Для всей сети → настройте параметры → сохраните изменения.
Адрес сервера валидации:
https://127.0.0.1:51401Таймаут соединения, мс: укажите необходимое значение (по умолчанию 2000 мс).
Настройте необходимые группы товаров.
В БД на сервере настройте приоритет валидации на ТС ПИоТ с помощью скрипта.
По всей сети:
UPDATE sales_management_properties
SET property_value='true',
send_status=0
WHERE property_key='check.excise.tspiot.primary'
AND module_name='MARK_PRODUCT_SERVICE';На кассе или в магазине:
DO $$
DECLARE
_shop bigint := 148; -- Магазин для настройки
_cash bigint := 20; -- Касса для настройки, 0 если для всех
_property_value text := 'true'; -- 'false' если хотим отключить
_property_id bigint;
_exists boolean;
BEGIN
-- 1. Получаем ID свойства один раз
SELECT id INTO _property_id
FROM sales_management_properties
WHERE property_key = 'check.excise.tspiot.primary';
-- Проверка, нашли ли свойство вообще
IF _property_id IS NULL THEN
RAISE EXCEPTION 'Свойство check.excise.tspiot.primary не найдено в базе!';
END IF;
-- 2. Проверяем существование КОНКРЕТНО этой настройки (добавили id в условие)
SELECT EXISTS(
SELECT 1
FROM sales_management_properties_shop_cash
WHERE id = _property_id AND shop = _shop AND cash = _cash
) INTO _exists;
IF NOT _exists THEN
INSERT INTO sales_management_properties_shop_cash (id, shop, property_value, cash, send_status)
VALUES (_property_id, _shop, _property_value, _cash, 0);
RAISE NOTICE 'Запись для магазина % добавлена.', _shop;
ELSE
-- 3. Если есть - обновляем значение (чтобы можно было выключить обратно)
UPDATE sales_management_properties_shop_cash
SET property_value = _property_value, send_status = 0
WHERE id = _property_id AND shop = _shop AND cash = _cash;
RAISE NOTICE 'Запись для магазина % ОБНОВЛЕНА.', _shop;
END IF;
END $$;После спуска настроек перезапустите кассовый модуль командой
cash restart.
Проверка работы
Выполните запрос для проверки работы ЕСМ:
curl -k --location https://127.0.0.1:51401/api/v1/codes/check --header 'Content-Type: application/json' --data '{"codes":["MDQ2MDE2NTMwMzU4MjlIO2RWKWJGQUNWVWRHVno="],"client_info":{"name":"1","version":"2","id":"e61ef225-8892-4986-be93-c4fac3dfbe04","token":"4"}}'Проведите тестовую продажу маркированного товара.
Проверьте появление кассы в ЛК ЕСП.