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

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

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

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

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

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

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

2.jpg

Класс для 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/