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

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

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

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

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

Привет всем !

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

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

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

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

2.jpg
Вложения
Honest-2026-02-24.rar
Версия от 24.02.2026 г.
(491.16 КБ) 14 скачиваний
Последний раз редактировалось Игорь Столяров 24 Февраль 2026, 15:30, всего редактировалось 67 раз.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
zmi
Посетитель
Сообщения: 40
Зарегистрирован: 26 Октябрь 2017, 21:51

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

Сообщение zmi »

finsoftrz писал(а): 25 Февраль 2026, 8:43 Если пустой список, то возвращать специальный код ошибки.
Поддерживаю. Тоже хотел предложить такой вариант. Очень хороший выход, чтобы не вводить пользователя в ступор внезапным отсутствием ЛМ. Хотя я у себя такую ситуацию и исключил, но "на всякий пожарный".
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8542
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 127 раз

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

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

zmi писал(а): 25 Февраль 2026, 10:44 Поддерживаю. Тоже хотел предложить такой вариант.
Отлично ! А теперь давайте пожалуста подумаем, что нам даст этот код. :D

Сейчас метод PIoT_CheckReceipt() предназначен для проверки КМ перед печатью чека и
здесь возможны два варианта: печатаем чек и не печатаем чек. Надеюсь здесь нет повода для спора.

Метод может с помощью простых сообщений показывать ошибки на всех этапах проверки (часть из которых теперь можно
отключать флагом) и выполняет все требования ЦРПТ по методике разрешительной проверки КМ с использованием ТС ПИоТ.

Какую ценную информацию Вы узнаете из кода ошибки что где-то в списке из X записей Y записей не прошли проверку ?
Проверку в каком режиме ? Какое состояние ТС ПИоТ ? Выполнялась проверка в ПО ЛМ ? Если нет - то почему ?
(глупости вроде отправки на проверку пустого списка сейчас даже не рассматриваем)

Конечно можно сделать метод, который будет возвращать в ПМСР все ошибки проверки + результат по каждому КМ.
И дальше, в каждом месте, для каждой программы - уже всё это нужно будет разгребать и визуализировать.
Например, с помощью красивых хинтов, класс которых недавно любезно опубликовали. А почему нет ? Я за !

Но это уже совсем другая история. Если Вам это нужно, то без проблем можно сделать в форке или субклассе.
Мне удобно что результат проверки ДА / НЕТ. Тем более что ЦРПТ постоянно колбассит структуры данных и версии API. :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5844
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

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

Сообщение finsoftrz »

Чтобы не переделывать существующую логику, можно добавить отдельный метод для проверки наличия маркированных товаров и использовать его в верхнем ПО.
C6/C12, ШВС, tps/btrieve.
zmi
Посетитель
Сообщения: 40
Зарегистрирован: 26 Октябрь 2017, 21:51

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

Сообщение zmi »

Можно ничего и не делать в классе. :D

Меня волнует появившаяся с версии 16.02 некорректная диагностика при работе с ЛМ ЧЗ. Это связано с опиской в классе?
Вложения
qLM_Check.jpeg
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 282
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 29 раз
Поблагодарили: 1 раз

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

Сообщение SergioRaguzini »

Привет Всем!
А собственно ТС ПИоТ для целей тестирования где скачать?
Последний раз редактировалось SergioRaguzini 25 Февраль 2026, 13:55, всего редактировалось 1 раз.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8542
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 127 раз

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

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

zmi писал(а): 25 Февраль 2026, 13:26 некорректная диагностика при работе с ЛМ ЧЗ
Спасибо ! Да, это типичная ошибка копипаста ... 😢
Интересно, что для проверки в ПО ЛМ из ТС ПИоТ я её уже исправил сам, а в самом ПО ЛМ почему-то нет. ХЗ ! 🤷‍♀️
Конечно должны быть данные из списка с результатом локальной проверки:

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

             sErrorGS1  = sErrorGS1 & '||'                                             & | 
                          qCodes.ProductName & Choose(qCodes.ProductName <> '','|','') & |  ! 1. Предмет расчёта
                          Honest::ClearMarking(qCodes.GS1)                             & |  ! 2. КМ 
                          Choose(qLM_Check.LockName <> '','|' & qLM_Check.LockName,'')      ! 3. Ошибка проверки 
Последний раз редактировалось Игорь Столяров 25 Февраль 2026, 14:02, всего редактировалось 1 раз.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8542
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 127 раз

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

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

SergioRaguzini писал(а): 25 Февраль 2026, 13:52 А собственно ТС ПИоТ для целей тестирования где взять?
Для тестирования работы с ТС ПИоТ нужно использовать стенд ЦРПТ (см. начало документации)
или АО "ЕСП" (здесь с интерфейсом): https://esm-emu.ao-esp.ru/?mode=online&tab=instructions
Кстати, на них же и проводится сертификация ПМСР ...

Ну а EndPoint для вызова REST запросов есть в классе:

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

!!! Endpoint для ТС ПИоТ
PIoT:RootHost       Equate('https://localhost:51401')            ! REAL ЕСМ
PIoT:RootHost       Equate('https://tspiot.sandbox.crptech.ru')  ! SandBox ЦРПТ
PIoT:RootHost       Equate('https://esm-emu.ao-esp.ru')          ! SandBox ЕСМ
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 282
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 29 раз
Поблагодарили: 1 раз

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

Сообщение SergioRaguzini »

Игорь, Спасибо! Мне один директор кафе доказывал что для Horeca (мое направление) ничего не меняется, но думаю, он не прав...

p.s. я за последние 5 лет потерял всех пользователей у которых, в небольших розничных магазинах (магазины просто закрылись), стояло наше кассовое решение. Как саказал один из них - "сетевые магазины в розницу продают по ценам ниже чем у меня закупка". Эпоха маленьких магазинчиков, видимо, заканичивается
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8542
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 127 раз

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

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

SergioRaguzini писал(а): 25 Февраль 2026, 14:06 для Horeca (мое направление) ничего не меняется
Здесь неоднозначно и через попу (впрочем как и всё что связано с разрешительной проверкой).
Вот здесь можно почитать: https://rkeeper.ru/blog/ts-piot-i-r-kee ... 2026-godu/
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5844
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

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

Сообщение finsoftrz »

SergioRaguzini писал(а): 25 Февраль 2026, 14:06 p.s. я за последние 5 лет потерял всех пользователей у которых, в небольших розничных магазинах (магазины просто закрылись), стояло наше кассовое решение. Как саказал один из них - "сетевые магазины в розницу продают по ценам ниже чем у меня закупка". Эпоха маленьких магазинчиков, видимо, заканичивается
Он, конечно, загнул, но да, очень многие закрываются. Ждем апрель-май, когда появится статистика по первому кварталу. Мелким очень сложно выдержать все эти эксперименты с "цифровизацией". И нам им помочь сложно, так как правила спускают сверху, сегодня одно, завтра другое, без здравого смысла, без обсуждений, просто исполняйте. Все устали, а конца и края этому валу не видно.
C6/C12, ШВС, tps/btrieve.
zmi
Посетитель
Сообщения: 40
Зарегистрирован: 26 Октябрь 2017, 21:51

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

Сообщение zmi »

finsoftrz писал(а): 25 Февраль 2026, 14:37 сетевые магазины в розницу продают по ценам ниже чем у меня закупка
Вот и мне один ИПэшник сказал, что покупает кое-что в Мэтро и продает у себя... При этом никто не может объяснит, как это учитывать в ЧЗ. Отсюда и требование собственной обработки КМ.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5844
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

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

Сообщение finsoftrz »

zmi писал(а): 25 Февраль 2026, 15:16
finsoftrz писал(а): 25 Февраль 2026, 14:37 сетевые магазины в розницу продают по ценам ниже чем у меня закупка
Вот и мне один ИПэшник сказал, что покупает кое-что в Мэтро и продает у себя... При этом никто не может объяснит, как это учитывать в ЧЗ. Отсюда и требование собственной обработки КМ.
Метро мелко-оптовый магазин. Они могут продавать, как оптовики, не пробивая марки на кассе. Если же покупка была на частное лицо, то этот ИП дальше торгует этими товарами вне правовой зоны, так как розничная торговля не подразумевает реализацию для перепродажи.

Обычно такие закупки делаются в период скидок, когда товары продаются по цене раза в 1.5 дешевле, чем обычно. Связано бывает с необходимостью обновить ассортимент или проходят рекламные акции. Я так тоже в Метро иногда покупаю замороженную рыбу в вакуумной упаковке.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 282
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 29 раз
Поблагодарили: 1 раз

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

Сообщение SergioRaguzini »

finsoftrz писал(а): 25 Февраль 2026, 14:37 Мелким очень сложно выдержать все эти эксперименты с "цифровизацией".
Сейчас Магнитов с Пяторочкой в шаговой доступности стало много, ходовые товары, например "молочка", сейчас в сетевых магазинах и дешевле и свежее, поэтому люди, часто ходят и менно туда
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 282
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 29 раз
Поблагодарили: 1 раз

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

Сообщение SergioRaguzini »

Прошу "не кидать тапками" (читаю интернет, но хез как, все-таки, правильно...), для начала отладки cla-приложения, на свой ПК необходимо предварительно скачать и установить:

1. ЕСМ (ТС ПИоТ), для этого зарегистрироваться на сайте ao-esp.ru и только после регистрации появится возможность скачать.
2. ЛМ "ЧЗ"

Верно, или что-то еще "внешнее" необходимо?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8542
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 127 раз

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

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

SergioRaguzini писал(а): 25 Февраль 2026, 19:14 для начала отладки cla-приложения
То что Вы описали - необходимо для реальной работы УОТ с ТС ПИоТ.

Дело в том, что даже если Вы зарегистрируесь в АО "ЕСП" (это не сложно) и скачаете там их ТС ПИоТ - то он у Вас не будет
работать без привязки к реальному ЛК в "Честном ЗНАКе". А если Вы привяжете ТС ПИоТ к реальному ЛК УОТ в ЧЗ + ККТ
с регистрацией ФН в ФНС (обязательно) то через него пойдут отладочные операции (в т.ч. с ошибками и повторами)
и Вас достаточно быстро забанят. А может быть даже и оштрафуют. 🤦‍♀️

А ПО ЛМ конечно скачайте и установите. Он по любому нужен для разрешительной проверки.
Для его инициализации потребуется токен из ЛК ЧЗ. Только читайте поддержку версий Windows и API.
см. https://xn--80ajghhoc2aj1c8b.xn--p1ai/local-module/
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Ответить