Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Модератор: Дед Пахом

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8751
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 40 раз
Поблагодарили: 149 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение Игорь Столяров »

Привет всем !

Класс для разрешительной проверки КМ (кодов маркировки) через API ТС ПИоТ ЕСМ от АО «ЕСП».
Поддержка работы с API ЦРПТ: ПО Локальный модуль и Национальный каталог.
Полный боевой комплект с описанием интерфейса API и примерами.

Реализованный в классе функционал соответствует ПФС версии 1.18 от 26.06.2026 г. (27 сценариев),
для получения сертификата совместимости и допуска к работе в промышленной среде ТС ПИоТ ЦРПТ. 😎

Благодарность за помощь на старте проекта: FinsoftRZ и Alex412.
Любые замечания, исправления и дополнения - приветствуются !

Список изменений в версии от 19.07.2026 г.
----------------------------------------------------------------------------------------------------
- Внесены изменения по Методическим рекомендациям ЦРПТ версии 17 от 15.07.2026 г.
- Устранены проблемы по запросам и внесены изменения в примеры.
----------------------------------------------------------------------------------------------------
Рекомендуем использовать актуальные версии классов LibCURL, cJSON и PrintF.

esp.png
esp.png (13.96 КБ) 205719 просмотров
Вложения
Honest.rar
Пароль: крайний С6 релиз
(59.27 КБ) 21 скачивание
Последний раз редактировалось Игорь Столяров 19 Июль 2026, 21:07, всего редактировалось 137 раз.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
SergioRaguzini
Ветеран
Сообщения: 316
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 46 раз
Поблагодарили: 1 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение SergioRaguzini »

Спасибо за оперативный отклик, но прошу уточнить:
Игорь Столяров писал(а): 06 Май 2026, 12:01 ...
При проверке в ТС ПИоТ - система сама будет проверять локальные дубликаты в ПО ЛМ при отсутсутвии подключения к ГИС МТ,
и устанавливать признак SOLD для проверямого КМ. А значит для этого нужно записывать выбытие КМ в БД ПО ЛМ.
...
Т.е., например, КМ успешно прошла проверку через пр-ру Honest::CheckReceipt, далее анализируем передачу чека в ФР, если чек в ФР закрыт корректно, то выполняем запись КМ с использованием пр-ры Honest::EditSoldList,
если же чек в ФР не закрылся (например, нет чековой ленты), то тогда, после устранения ошибки ФР, делаем повторную попытку передачи в ФР чека и, если, на этот раз удалось безошибочно закрыть, то выполняем Honest::EditSoldList
Так?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8751
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 40 раз
Поблагодарили: 149 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение Игорь Столяров »

SergioRaguzini писал(а): 06 Май 2026, 12:47Так?
Да. Успешное создание фискального кассового чека (печать на ленту или электронный чек) означает передачу
КМ из содержания чека Вашему ОФД и далее в "Честный ЗНАК", где фиксируется выбытие КМ для On-Line проверки.

А Вы после этого, на своей стороне, фиксируете выбытие этих же КМ в БД ПО ЛМ или своей БД для Off-Line проверки,
на то случай если БД ГИС МТ будет не доступна On-Line. Конкретно ТС ПИоТ это переключение проверки выполняет сам.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 6096
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 25 раз
Поблагодарили: 90 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение finsoftrz »

Если кассовое ПО само умеет проверять дубли марок, то использовать для этого ЛМ не обязательно. Это вспомогательный механизм, не обязательный для использования. Я не стал такое реализовывать, так как будут еще всякие заморочки с резервным копированием/восстановлением базы ЛМ, которая и так периодически может на свое усмотрение очищаться и требовать инициализации. Буквально сегодня такое видел в нескольких магазинах.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8751
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 40 раз
Поблагодарили: 149 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение Игорь Столяров »

finsoftrz писал(а): 06 Май 2026, 15:11 так периодически может на свое усмотрение очищаться и требовать инициализации
Есть такое дело ! ПО ЛМ реализовали в виде BackEnd, как REST сервер.
И это классно, делайте FrontEnd хоть на Windows, хоть на распилочных "русских" Linux.

Но вот когда этот REST сервис с суверенной БД Енисей стали ставить на ноутбуки с 4 GB RAM,
торрентами и несколькими бесплатными антивирусами - всё пошло немного не по плану ... :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
SergioRaguzini
Ветеран
Сообщения: 316
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 46 раз
Поблагодарили: 1 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение SergioRaguzini »

Привет Всем!
Прошу помощи в следующем - при попытке выполнить пр-ру "Удалить КИ всех проданных товаров" PIoT::DelAllKI(gContact), получаю ошибку:
piot_img1.png
piot_img1.png (6.92 КБ) 4810 просмотров
список должен быть пустой, т.к. пр-ру Honest::EditSoldList еще не использовал, может в этом и проблема что "пусто"?
Отладочный Honest_PIoT_lmSold_Request.txt содержит:

Код: Выделить всё

https://tspiot.sandbox.crptech.ru/api/v3/lmSold?skip=0&limit=100
а ответ Honest_PIoT_lmSold_Response1.json:

Код: Выделить всё

{"timestamp":"2026-05-12T17:09:05.477+00:00","status":404,"error":"Not Found","path":"/api/v3/lmSold"}
При этом иные пр-ры, например, Honest::CheckReceipt(gContact, qCodes, gVerified) или LOC:Honest.PIoT_Info(gInfo) выполняются корректно.
установлен следующий ЛМ:
piot_img2.png
piot_img2.png (8.71 КБ) 4810 просмотров
Что делаю не так?

Спасибо
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8751
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 40 раз
Поблагодарили: 149 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение Игорь Столяров »

SergioRaguzini писал(а): 12 Май 2026, 20:13 Что делаю не так?
Всё. :D
Вы пытаетесь заставить ТС ПИоТ на тестовом стенде ЦРПТ очистить Вашу локальную БД ПО ЛМ.
А он сопротивляется. И выдаёт вполне логичный HTTP статус:
• 404 — Запрашиваемая информация не найдена;
Нужно установить локальный ТС ПИоТ ЕСМ и уже через него штатно взаимодействовать с Вашей БД ПО ЛМ.
Ну или удалять записи через процедуру прямого взаимодействия с ПО ЛМ: POLM::DelAllKI(gContact)

Код: Выделить всё

  ! Удалить КИ всех проданных товаров 
  If Loc:gContact.bPIoT
     PIoT::DelAllKI(Loc:gContact)
  else   
     POLM::DelAllKI(Loc:gContact)
  end  
Сейчас всё уже сводится к штатной работе с локальным ТС ПИоТ, т.к. on-line стенд, в принципе, не обеспечивает весь функционал.

У них было время. Но оно закончилось. (С) Бугония :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 6096
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 25 раз
Поблагодарили: 90 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение finsoftrz »

А в реестр совместимого ПО на сайте ЧЗ через какое время программа попадает? У меня 2 недели прошло, пока не нахожу.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8751
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 40 раз
Поблагодарили: 149 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение Игорь Столяров »

Список изменений в текущей версии публикуется в заглавном сообщении темы.
Последний раз редактировалось Игорь Столяров 28 Май 2026, 21:51, всего редактировалось 1 раз.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
SergioRaguzini
Ветеран
Сообщения: 316
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 46 раз
Поблагодарили: 1 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение SergioRaguzini »

Привет Всем!
Прошу поделиться опытом - как проходит сертификация, что необходимо из оборудования подготовить, нужен ли подключенный ФР с МГМ-ФН.
Как указать что хочу, например, для сертификации использовать стенд https://tspiot.sandbox.crptech.ru
Спасибо
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8751
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 40 раз
Поблагодарили: 149 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение Игорь Столяров »

SergioRaguzini писал(а): 22 Май 2026, 10:55 как проходит сертификация
Я уже отвечал на этот вопрос.
см. пожалуйста: viewtopic.php?p=57242&hilit=zoom#p57242

Но нужно понимать, что мой ответ про ЦРПТ был актуален более 3-х месяцев назад. 🤷‍♀️

Всё меняется. Насколько я могу судить по тем вопросам, что люди задавали на крайнем
вебинаре в АО "ЕСП" и изменениям в самом ПФС, то там всё пошло по пути закручивания гаек.

Система козлит, пользователи истерят, а ЦРПТ считает что основная причина проблем с ТС ПИоТ -
это именно низкий уровень готовности и недостаточная совместимость прикладных ПМСР. 🤦‍♀️
Последний раз редактировалось Игорь Столяров 22 Май 2026, 13:11, всего редактировалось 1 раз.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 6096
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 25 раз
Поблагодарили: 90 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение finsoftrz »

Я в конце прошлого месяца проходил, могу даже показать. :-)
Вначале записал ролик, отправил им, думал, вдруг прокатит. Про прокатит не ответили, сказали, лучше мы к вам подключимся через zoom. Время назначили где-то за 3 недели. Я скопировал программу на ноутбук, подключил их, показал экран и сделал все тоже самое, что в ролике. По ходу пару каких-то вопросов задали, типа что если режим работы с пиот не будет включен (сказал, что в этом случае работает текущий вариант проверок без него) и нельзя ли отключить работу с маркировкой (нет, конечно же). После этого сказали, нам нужно увидеть пробитый чек в офд, достаточно прислать скриншот. Я скопировал программу в один из магазинов, сделал продажу и возврат с маркой из теста, где-то через полчаса отправил скриншот тегов из офд им на электронную почту. Ответили, все норм.
В ролике только осталась описка в названии ЕМЦ, к демонстрации поправил.

https://finsoftrz.ru/tests/piot_test.mp4
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8751
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 40 раз
Поблагодарили: 149 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение Игорь Столяров »

Тогда всё складывается ! :D

1.jpg
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
SergioRaguzini
Ветеран
Сообщения: 316
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 46 раз
Поблагодарили: 1 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение SergioRaguzini »

Привет Всем!
finsoftrz писал(а): 22 Май 2026, 11:58 записал ролик
Вячеслав, посмотрел ролик, спасибо, правда смутил один момент - почему в ролике, упомянуты пункты с нумерацией начинающейся с "8"-ки:
move_1.png
ведь в эмуляторе https://tspiot.sandbox.crptech.ru/?mode ... ab=general все пункты ("Общий", "Аптеки", "Легкая промышленность") для тестирования начинаются с 5-ки, или это просто собственная внутренняя нумерация программы?
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 6096
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 25 раз
Поблагодарили: 90 раз

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение finsoftrz »

Я так понимаю, есть два варианта с описанием тестов. Мне они присылали ссылку, я по ней и сделал. Роли это никакой не играет.
C6/C12, ШВС, tps/btrieve.
zmi
Посетитель
Сообщения: 43
Зарегистрирован: 26 Октябрь 2017, 21:51

Класс для API ТС ПИоТ ЕСМ от АО «ЕСП»

Сообщение zmi »

Игорь, что-то у меня 21-й тест "сломался", а именно: как и положено осуществляется перевод в режим "Авария" с выдачей соответствующего сообщения, но сразу после этого вместо пропуска проверки и разрешения продажи возникает незапланированное сообщение:
ВНИМАНИЕ ! ВЫПИСКА КМ ЗАБЛОКИРОВАНА.
Молоко Сценарий 1, 2, 5, 7, 14, Авария
0104670540176099215LpGKy93dGVz
Ошибка проверки в ТС ПИоТ:
Это и на оригинальной версии класса от 28.05.2026 (только точку поменял на https://tspiot.sandbox.crptech.ru )
Посмотрите, плиз: или я опять что-то недоучел (в последней версии) или всё же ошибочка закралась.
Ответить