Страница 6 из 7

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

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

Класс для разрешительной проверки КМ (кодов маркировки) через API ГСЦМ "Честный знак".
Поддержка целевой реализации в ПО ЛМ "Честный Знак" (обязательна с 01.09.2025 г.)
Полный боевой комплект с описанием интерфейса API и примерами.

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

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 18 Июнь 2025, 15:24
SergioRaguzini
Игорь Столяров писал(а): 17 Июнь 2025, 20:26 ...
- Отработаны изменения в Методических указаниях ЧЗ версии 11 от 05.06.2025 г.
(прилагаются в комплекте)
...
Очень нужная док! :ty:

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 18 Июнь 2025, 21:40
Игорь Столяров
SergioRaguzini писал(а): 18 Июнь 2025, 15:24 Очень нужная док!
Говорят, что Шекспира лучше читать в подлиннике ! 🤦‍♀️
Вот ссылка: https://xn--80ajghhoc2aj1c8b.xn--p1ai/b ... gulations/

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 01 Июль 2025, 17:41
Игорь Столяров
1.jpg

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 01 Июль 2025, 18:24
finsoftrz
Они уж задолбали. Ветис 2 недели лежал, справки на бумажках выписывали, все нормально. :shock:
Кстати, заметили, что после продажи табачных в офд совсем не те марки, которые сканируются на кассах? Похожи на маркировку партий, а не отдельных пачек. Видимо, не тянут поштучный учёт (он в продуктовые только на табачных) и переходят втихоря на парционный. Или я что-то пропустил. Случайно обратил внимания во время разборок полётов по одной из проблем.

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 22 Август 2025, 13:50
Игорь Столяров
Всем привет !

Версия класса для API НСЦМ "Честный знак" от 22.08.2025 г.
----------------------------------------------------------------------
- Отработаны изменения в Методических указаниях ЧЗ версии 12 от 15.07.2025 г.
(прилагаются в комплекте)

- Ведение списка проданных кодов маркировки (точнее кодов идентификации в формате RFC 1738).
- Обработка ошибки повторной реализации при разрешительной проверке КМ через ПО ЛМ ЧЗ.

Не будьте как Игорь !
Т.е. сначала обновляем ПО ЛМ ЧЗ до версии 1.5 (и выше), а потом уже
пробуем работаем с новыми методами регистрации проданных товаров ... :)

----------------------------------------------------------------------
Мы используем актуальную версии LibCurl и класс cJSON с сайта автора.

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 22 Август 2025, 14:08
finsoftrz
А что означает "Обработка ошибки повторной реализации при разрешительной проверке КМ через ПО ЛМ ЧЗ"?
У себя я контроль повторных продаж марок реализовывал самостоятельно, так как не было гарантированного отслеживания дублей со стороны ЧЗ, а предупреждения с требованием исправить они начали слать. Их интересует процент дублей продаж в отдельных магазинах. Если в магазине несколько кассовых проходов, то на хостинге создаем базу продаж марок в магазине, куда пишется/читается через http запросы.

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 22 Август 2025, 14:30
Игорь Столяров
finsoftrz писал(а): 22 Август 2025, 14:08 У себя я контроль повторных продаж марок реализовывал самостоятельно
Безусловно, Вы можете у себя делать всё так, как считаете правильным и нужным.

А порядок действий рекомендуемый НСЦМ "Честный Знак" по пунктам расписан в
разделе «5. Сценарий проверки продукции перед продажей» и мы его реализовали. :)
(см. страницу 65 в Методических указаниях ЧЗ версии 12 от 15.07.2025 г.)
finsoftrz писал(а): 22 Август 2025, 14:08 Если в магазине несколько кассовых проходов, то на хостинге создаем базу продаж марок в магазине, куда пишется/читается через http запросы.
Ну в принципе, ПО ЛМ ЧЗ реализует те же яйца, только в профиль.

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

2.1 Особенности работы в режиме офлайн 
...
ЛМ ЧЗ устанавливается на торговую точку в единственном экземпляре вне 
зависимости от числа касс, каждый экземпляр ЛМ ЧЗ имеет свой уникальный идентификационный 
номер (для каждого ИНН должен быть установлен отдельный экземпляр ЛМ ЧЗ);
Отказаться от ПО ЛМ ЧЗ Вы не можете, а значит вешаете дублирующий код.
Который, кстати, возможно и полезен для внутренних задач статистики дубликатов и т.д.,
но к разрешительной проверки КМ уже не имеет никакого отношения ... :)

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 22 Август 2025, 14:47
finsoftrz
Что-то я сомневаюсь, что ЛМ может контролировать повторные продажи марок. Если только они кардинально не изменили схему его работы, про что не было информации (у меня, во всяком случае).
1. Обращение к ЛМ происходит только тогда, когда недоступна онлайн проверка марок.
2. В ЛМ имеется информация только о заблокированных со стороны надзорных органов марках. Эта информация периодически синхронизируется с их серверами. Осуществить другие проверки (статус марки, срок годности и т.п.) через ЛМ нельзя.

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 22 Август 2025, 15:03
Игорь Столяров
finsoftrz писал(а): 22 Август 2025, 14:47 Обращение к ЛМ происходит только тогда, когда недоступна онлайн проверка марок
Абсолютно верно, но к контролю дублирования КМ при продажах это не имеет отношения.
Запись данных о проданных КМ может (и видимо должна) выполнятся в ЛМ при любом режиме разрешительной проверки.
finsoftrz писал(а): 22 Август 2025, 14:47 Осуществить другие проверки (статус марки, срок годности и т.п.) через ЛМ нельзя
Полностью с Вами согласен. Но проверка статуса КМ и попытка продажи дубликата КМ - это иное. Совсем.
Кстати, интересно, что КМ добавленный в список дубликатов ЛМ ЧЗ автомтически удаляется оттуда через 30 дней.

Т.е. это механизм для оперативного исключения ошибок при продажах внутри предприятия.
Пробили одни товары, а отгрузили другие. Потом начали повторно списывать марки и т.д.

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 22 Август 2025, 15:16
finsoftrz
Пока не попадалась информация, что надо регистрировать продажу марок в ЛМ.
Если действительно так, то это печалька, так как работу ЛМ мы не можем в достаточной мере контролировать. Например, не так давно грохнулась база данных ЛМ при обновлении списка заблокированных марок, пришлось инициализировать заново, так как опять наложилось с недоступность сервиса белорусов. 30 дней тоже смущает, а если дубль будет позже? Потом все дополнительные телодвижения нужны, когда в магазине несколько проходов. Если касса одна, то дубли просто контролируются локально по базе кассовой программы.

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 22 Август 2025, 15:23
Игорь Столяров
finsoftrz писал(а): 22 Август 2025, 15:16 Например, не так давно грохнулась
Есть метод выгрузки КИ из БД, отдельно указано, что можно его использовать для создания резервных копий списка КИ ...
Вообще развитие продуктов НСЦМ идёт по принципу падающего самолёта, плодятся новые костыли, вместо сломанных. :D

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 24 Август 2025, 7:47
Игорь Столяров
Всем привет !

Версия класса для API НСЦМ "Честный знак" от 24.08.2025 г.
----------------------------------------------------------------------
- Отработаны изменения в Методических указаниях ЧЗ версии 12 от 15.07.2025 г.
(прилагаются в комплекте)

- Исправлены методы ведения списка проданных КМ (в описании ошибочно указана кодировка RFC 1738 !);
- Новая функция Honest::EditSoldList() - изменить список проданных КМ товаров в ПО ЛМ ЧЗ (см. примеры).

Не будьте как Игорь !
Т.е. сначала обновляем ПО ЛМ ЧЗ до версии 1.5 (и выше), а потом уже
пробуем работать с новыми методами регистрации проданных товаров ... :)

----------------------------------------------------------------------
Мы используем актуальную версии LibCurl и класс cJSON с сайта автора.

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 28 Август 2025, 18:45
Игорь Столяров
Всем привет !

Где-то в это время, год назад, был запущен пилот проекта в тестирование.
Т.е. у нас первый юбилей ! ✨ 🎁 🎉

Пользуясь случаем, хотел бы поблагодарить всех, кто напрямую или косвенно
принял участие в этом проекте и помог сделать его лучше.

Я рад, что проект получился открытый, свободный и востребованный.
Постараемся и далее не уронить и не расплескать собранные в нём идеи. Ура ! :D

scale_1200.png

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 05 Сентябрь 2025, 6:48
Игорь Столяров
Всем привет !

Минпромторг расширяет перечень товаров для обязательной маркировки:
https://taxcom.ru/baza-znaniy/markirovk ... m=04092025

Моё любимое место:
в отношении обуви, шин, парфюмерии, туалетной воды, упакованной воды и пива вводится требование: продажа будет запрещена, если органы государственного контроля (надзора) признают ее разрешительные документы недействительными
Т.е. плевать, что купили партию товаров с документами и кодами маркировки, которые проходят проверку в ИСМ ОФД.
Если что-то переклинило в сервисе НСЦМ "Честный Знак" - то они теперь имеют право просто запретить продажу. :evil:

Класс для API НСЦМ «Честный ЗНАК»

Добавлено: 22 Сентябрь 2025, 22:45
Игорь Столяров
Всем привет !

Версия класса для API НСЦМ "Честный знак" от 22.09.2025 г.
----------------------------------------------------------------------
Новые типы данных
- Honest:G_Contact - Параметры подключения к сервису

Новые методы:
- Honest::LM_ExportKI - Выгрузить КИ проданных товаров в JSON
- Honest::LM_ImportKI - Загрузить КИ проданных товаров из JSON
- LM_ViewStatus - Показать статус подключения к ПО ЛМ «Честный ЗНАК»

Новые варинты методов (выполнить переход, старые будут удалены в следующем релизе):
- Honest.Init - Инициализация класса
- Honest.LM_SetParam - Установить параметры подключения к ЛМ (более не используется)
- Honest.CheckReceipt - Комбинированная проверка списка КМ

- Honest::EditSoldList - Изменить список КМ проданных товаров
- Honest::CheckReceipt - Комбинированная проверка списка КМ

Honest:ClassVersion - дата версии класса Honest в человеческом формате '22.09.2025'.
Процедура Honest::GetClassVersion() вернёт версию класса Honest в формате даты Clarion.

Обновлены примеры работы с классом.

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

Т.е. конструкции типа:

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

  Code
  Honest::CheckReceipt(qCodes,               |  ! Список КМ GS1 для проверки
                       'ВАШ ТОКЕН ИЗ ЛК ЧЗ', |  ! Токен  доступа к API НСЦМ «Честный ЗНАК»
                       'ПОЛЬЗОВАТЕЛЬ',       |  ! Имя    пользователя для ПО ЛМ «Честный ЗНАК»
                       'ПАРОЛЬ',             |  ! Пароль пользователя для ПО ЛМ «Честный ЗНАК»
                       'НОМЕР ФН ККТ',       |  ! Номер ФН ККТ (опционально)
                       -1,                   |  ! Кодовая страница записи протокола (без записи = -1 / CP_UTF8 / CP_ACP)
                       False)                |  ! Работа без запросов
Заменяются на:

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

gContact  Group(Honest:G_Contact).              ! Параметры подключения

  Code
  gContact.sToken         = 'ТОКЕН ИЗ ЛК ЧЗ'    ! Токен  доступа к API НСЦМ «Честный ЗНАК»
  gContact.sLM_User       = 'ПОЛЬЗОВАТЕЛЬ'      ! Имя    пользователя для ПО ЛМ «Честный ЗНАК»
  gContact.sLM_Password   = 'ПАРОЛЬ'            ! Пароль пользователя для ПО ЛМ «Честный ЗНАК»  
  gContact.sFN            = 'НОМЕР ФН ККТ'      ! Номер ФН ККТ (опционально)    
  gContact.lDebugCodePage = -1                  ! Кодовая страница записи протокола (без записи = -1 / CP_UTF8 / CP_ACP) 
  gContact.bSilentMode    = False               ! Отключить тихий режим без запросов
  ...
  Honest::CheckReceipt(gContact,qCodes)         ! Проверить список КМ
  Honest::EditSoldList(gContact,qCodes)         ! Изменить список КМ проданных товаров  
  Honest::LM_ExportKI( gContact,'MySave.json')  ! Выгрузить КИ проданных товаров в JSON
Вот и всё. :D

----------------------------------------------------------------------
Мы используем актуальную версии LibCurl и класс cJSON с сайта автора.