Страница 23 из 28

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

Добавлено: 31 Август 2024, 7:30
Игорь Столяров
Привет всем !

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

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

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

Список изменений в версии от 28.05.2026 г.
----------------------------------------------------------------------------------------------------
- Завершена поддержка работы с API ТС ПИоТ версии 2 (в т.ч. и в ЕСМ ПО ЛМ);
- Поддержка изменений в ЕСМ от АО "ЕСП" версии 1.6.3;
- Получение через ТС ПИоТ токена для инициализации ПО ЛМ;
- В сообщение об ошибке показаны версии API и хост для каждого сервиса;
- Добавлены ссылки Национального каталога и получения API KEY доступа;
- Получение номера товарной группы по коду GTIN из Национального каталога;
- Устранены проблемы по запросам и внесены изменения в примеры.
----------------------------------------------------------------------------------------------------
Рекомендуем использовать актуальные версии классов LibCURL, cJSON и PrintF.

esp.png
esp.png (13.96 КБ) 48053 просмотра

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

Добавлено: 25 Февраль 2026, 10:44
zmi
finsoftrz писал(а): 25 Февраль 2026, 8:43 Если пустой список, то возвращать специальный код ошибки.
Поддерживаю. Тоже хотел предложить такой вариант. Очень хороший выход, чтобы не вводить пользователя в ступор внезапным отсутствием ЛМ. Хотя я у себя такую ситуацию и исключил, но "на всякий пожарный".

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

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

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

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

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

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

Но это уже совсем другая история. Если Вам это нужно, то без проблем можно сделать в форке или субклассе.
Мне удобно что результат проверки ДА / НЕТ. Тем более что ЦРПТ постоянно колбассит структуры данных и версии API. :D

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

Добавлено: 25 Февраль 2026, 13:11
finsoftrz
Чтобы не переделывать существующую логику, можно добавить отдельный метод для проверки наличия маркированных товаров и использовать его в верхнем ПО.

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

Добавлено: 25 Февраль 2026, 13:26
zmi
Можно ничего и не делать в классе. :D

Меня волнует появившаяся с версии 16.02 некорректная диагностика при работе с ЛМ ЧЗ. Это связано с опиской в классе?

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

Добавлено: 25 Февраль 2026, 13:52
SergioRaguzini
Привет Всем!
А собственно ТС ПИоТ для целей тестирования где скачать?

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

Добавлено: 25 Февраль 2026, 13:53
Игорь Столяров
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. Ошибка проверки 

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

Добавлено: 25 Февраль 2026, 13:57
Игорь Столяров
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 ЕСМ

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

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

p.s. я за последние 5 лет потерял всех пользователей у которых, в небольших розничных магазинах (магазины просто закрылись), стояло наше кассовое решение. Как саказал один из них - "сетевые магазины в розницу продают по ценам ниже чем у меня закупка". Эпоха маленьких магазинчиков, видимо, заканичивается

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

Добавлено: 25 Февраль 2026, 14:12
Игорь Столяров
SergioRaguzini писал(а): 25 Февраль 2026, 14:06 для Horeca (мое направление) ничего не меняется
Здесь неоднозначно и через попу (впрочем как и всё что связано с разрешительной проверкой).
Вот здесь можно почитать: https://rkeeper.ru/blog/ts-piot-i-r-kee ... 2026-godu/

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

Добавлено: 25 Февраль 2026, 14:37
finsoftrz
SergioRaguzini писал(а): 25 Февраль 2026, 14:06 p.s. я за последние 5 лет потерял всех пользователей у которых, в небольших розничных магазинах (магазины просто закрылись), стояло наше кассовое решение. Как саказал один из них - "сетевые магазины в розницу продают по ценам ниже чем у меня закупка". Эпоха маленьких магазинчиков, видимо, заканичивается
Он, конечно, загнул, но да, очень многие закрываются. Ждем апрель-май, когда появится статистика по первому кварталу. Мелким очень сложно выдержать все эти эксперименты с "цифровизацией". И нам им помочь сложно, так как правила спускают сверху, сегодня одно, завтра другое, без здравого смысла, без обсуждений, просто исполняйте. Все устали, а конца и края этому валу не видно.

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

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

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

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

Обычно такие закупки делаются в период скидок, когда товары продаются по цене раза в 1.5 дешевле, чем обычно. Связано бывает с необходимостью обновить ассортимент или проходят рекламные акции. Я так тоже в Метро иногда покупаю замороженную рыбу в вакуумной упаковке.

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

Добавлено: 25 Февраль 2026, 17:56
SergioRaguzini
finsoftrz писал(а): 25 Февраль 2026, 14:37 Мелким очень сложно выдержать все эти эксперименты с "цифровизацией".
Сейчас Магнитов с Пяторочкой в шаговой доступности стало много, ходовые товары, например "молочка", сейчас в сетевых магазинах и дешевле и свежее, поэтому люди, часто ходят и менно туда

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

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

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

Верно, или что-то еще "внешнее" необходимо?

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

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

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

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