Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

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

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

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

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

Привет всем !

Класс для выполнения разрешительной проверки КМ (кодов маркировки)
через API ГСЦМ "Честный ЗНАК" (ГИС МТ + ПО Локальный Модуль) и ТС ПИоТ.

Полный боевой комплект с описанием интерфейса API и примерами.

Реализованный в классе функционал полностью соответствует ПФС ЦРПТ (версия 1.11 / 26 сценариев)
для получения сертификата совместимости и допуска в промышленную среду работы с ТС ПИоТ. 😎

Благодарность за помощь на старте проекта: FinsoftRZ и Alex412.
Любые замечания, исправления и дополнения - приветствуются !
----------------------------------------------------------------------------------------------------
НАСТОЯТЕЛЬНО рекомендуем использовать актуальные версии классов LibCURL, cJSON и PrintF.

2.jpg
Вложения
Honest-2026-03-14.rar
Версия от 14.03.2026 г.
(40.76 КБ) 38 скачиваний
Последний раз редактировалось Игорь Столяров 14 Март 2026, 21:12, всего редактировалось 71 раз.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8588
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 129 раз

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

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

finsoftrz писал(а): 26 Февраль 2026, 16:35 продажи не в диапазоне цен сами не блокируют
Этому есть объяснение. МРЦ устанавливает производитель (импортёр), а ЕМЦ / МЦ - Минсельхоз раз в год.
Поэтому товар тупо может заваляться на складе и при продаже произойти конфликт с текущими ограничителями цен.
Регламент предписывает переустановить розничную цену реализации или вернуть товар производителю (импортёру). 🤷‍♀️

Вы (ПМСР) при проверке не сообщаете в ГИС МТ розничную цену реализации. Поэтому принятие решения на стороне ПМСР.
Последний раз редактировалось Игорь Столяров 26 Февраль 2026, 23:25, всего редактировалось 1 раз.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8588
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 129 раз

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

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

finsoftrz писал(а): 26 Февраль 2026, 16:35 Скоро, действительно, все, кроме федералов, закроются.
1.jpg
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8588
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 129 раз

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

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

Всем привет !

Обновление версии класса для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ.
-----------------------------------------------------------------------------------------
Версия от 27.02.2026 г.
- Обработка ошибки 3002 с пустым списком проверки;
- Поддержка новых версий API: ПО ЛМ 2.1 / ТС ПИоТ 2 и 3 (см. примеры);
- Передача на проверку в TC ПИоТ / ПО ЛМ - ID товарной группы КМ;
- Контроль МЦ для НСП при Off-Line проверке в ПО ЛМ версии 2.1;
- Для метода PIoT_CheckOneCode() изменён способ передачи КМ на проверку (см. примеры);
- Устранены проблемы по запросам.

Версия от 28.02.2026 г.
- Внесены изменения в соответствии с Методическими рекомендациями ЦРПТ № 15 от 27.02.2026 г.
- Добавлены новые товарные группы для маркируемых товаров;
- В методе LM_ViewStatus() показано кол-во МЦ на НСП в БД ПО ЛМ (только версия 2.1);
- Добавлена процедура Honest::GetIntoExpired() - попадание КМ в товарные группы c проверкой срока годности;
- Унифицирована проверка в ПО ЛМ из методов ТС ПИоТ (подготовка к переходу на API версии 3);
- При HTTP статусе запроса ТС ПИоТ: 514 -> выполняется проверка в ПО ЛМ ЧЗ;
- Устранены проблемы по запросам.

Версия от 06.03.2026 г.
- Опция демо API: Self.bTypeApi заменена на флаг Self.gContact.bSandBox;
- В методе LM_ViewStatus() показан используемый контур ГИС МТ;
- Методы CheckResponse() и PIoT_CheckResponse() возвращают HTTP статус ответа на запрос;
- Обработка ошибок с кодом 500, 504, 5000;
- Отдельное сообщение для ошибки 400 "Неверный формат или параметры запроса";
- Блокировка повторного сообщения об ошибке 203 "Переход ТС ПИоТ в аварийный режим";
- Проверка КМ в ПО ЛМ при ошибке 203 для получения значений тега 1260 в чеке;
- Добавлена дополнительная информация в сообщениях об ошибках;
- Устранена проблема с кодировкой при копировании сообщений в ClipBoard Windows.
- Устранены проблемы по запросам.

Версия от 14.03.2026 г.
- Внесены изменения в соответсвии с документацией API ТС ПИоТ 1.07 от 03.03.2026 г.;
- Изменения в запросах ТС ПИоТ API версии 3 по результатам тестирования на стенде;
- Раздельная обработка ошибочных статусов HTTP и ошибок внутри ответа на запрос для статуса HTTP = 200;
- Ошибки ТС ПИоТ разбираются внутри методов PIoT_CheckCodes / PIoT_CheckResponse;
- Блокировка сообщения для внутренней ошибки 500 ПО ЛМ версии 2;
- Из сообщения о состоянии ПО ЛМ удалены параметры не поддерживаемые в версии 2;
- В сообщение о состоянии ПО ЛМ добавлена ссылка на сервис (EndPoint) ПО ЛМ;
- В запросах ТС ПИоТ токен ПМСР передаётся как GUID (36 символов);
- Работа класса протестирована на тестовом конуре ГИС МТ и ПО ЛМ (версия 2.1);
- Устранены проблемы по запросам.


Переделываем ПМСР под новые методические рекомендации ЦРПТ ! :)
Переделываем ПМСР под новые методические рекомендации ЦРПТ ! :)
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8588
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 129 раз

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

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

Галя, у нас отмена ! :D

Начались непонятки на сертификации с протоколами ТС ПИоТ (ошибка 403).
На сайте ЦРПТ / АО "ЕСП" представлены 2 несовместимых варианта формата запроса API версии 3:

1.png

Сейчас реализован вариант для отладочного стенда (на рисунке слева).
Запросил информацию в тех. поддержке, но это не быстро будет ...
До выяснения рекомендую переключить класс на версию API 1 или 2 для ТС ПИоТ - с ними всё OK ! :(

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

PIoT:VerAPI          Equate('1')    ! Версия API: 1, 2, 3
P/S:
Тех. поддержка ответила, что правильный вариант всё-таки в эмуляторе (слева на рисунке).
Он сейчас и реализован в классе. Т.е. пока ничего не переделываем (мне не сложно) и ждём
обновления описания протоколов и самого локального ТС ПИоТ с поддержкой API версии 3 ... Мда. 8)
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 289
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 31 раз
Поблагодарили: 1 раз

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение SergioRaguzini »

Привет Всем!
Хотел бы уточнить несколько методологических моментов по работе ЛМ ЧЗ.
На первом этапе (до того как появился сам ЛМ), когда марка проверялась "напрямую", то, при получениии положительного результата проверки от ЧЗ, заполнялись соответствующие атрибуты тегов ККМ и в ККМ выполнялась регистрация продажи. Но в документации по ЛМ, присутсвуют "Метод регистрации факта продажи товаров" и, соответственно, "Метод возврата товаров".
Исходя из данных пунктов, напрашивается необходимость, что после успешной(безошибочной, с точки зрения функционала ФР) регистрации продажи в ККМ, необходимо записать КМ товаров в ЛМ, в список проданных (и аналогично, при возврате, удалить).
Будет ли правильным такой алгоритм действий?
Спасибо

p.s. А вообще, для чего(?) в ЛМ хранить продажи/возвраты в базе ЛМ, если в той же документации по ЛМ сказано:
• БД проданных товаров хранится только в месте установки ЛМ ЧЗ, рекомендуется периодически делать резервную копию;
• по умолчанию добавленные КИ удаляются из базы проданных товаров через 30 дней.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8588
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 129 раз

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

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

SergioRaguzini писал(а): 19 Март 2026, 8:48 когда марка проверялась "напрямую"
Что бы не запуться, я предлагаю придерживаться терминологии ЦРПТ (которая далека от идеала, но всё-таки).
Да, разрешительная проверка КМ выполняется в ГИС МТ и по новой версии это будет работать до 01.07.2026 г.
SergioRaguzini писал(а): 19 Март 2026, 8:48 что после успешной(безошибочной, с точки зрения функционала ФР) регистрации продажи в ККМ, необходимо записать КМ товаров в ЛМ, в список проданных (и аналогично, при возврате, удалить). Будет ли правильным такой алгоритм действий?
Да. Но это делать необязательно. Запись продаж / возвратов с использованием указанных Вами методв ПО ЛМ выполняется
только для контроля дубликатов в режиме проверки Off-Line (без доступа к ГИС МТ через CDN площадки). Вы можете вести
самостоятельно в БД ПМСР список проданных КМ и проверять дубликаты по нему. Важно что бы такая проверка выполнялась.

Считается, что 30 дней достаточно для того, что избежать путанцы и пересортицы с повторной продажей КМ.

Но это не значит, что Вы можете обойтись в режиме проверки OFF-LINE без ПО ЛМ, т.к. всё равно должны проверять в нём КМ
на предмет блокировки ОГВ, ну и собственно получать данные для тега 1260 кассового чека. Как-то так ... :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Ответить