Реализовано начиная с версии 4.6.272-7.

Начиная с версии 4.6.280 реализована возможность офлайн-проверки кодов маркировки для нескольких юридических лиц.

Начиная с версии 4.6.285 реализована возможность отправки запроса для активации проверки товаров из серых списков GTIN.

Проверка производится только для товаров в чеке продажи.

Для проверки в локальном модуле будет отправлен код идентификации. Выделение кода идентификации из кода маркировки осуществляется в соответствии с Методическими рекомендациями.

В кассовом ПО Artix реализован разрешительный режим – обязательная проверка кодов маркировки в системе цифровой маркировки "Честный знак". При отсутствии связи или ошибках обращения к CDN-площадкам будет выполнена офлайн-проверка кодов маркировки. Возможность офлайн-проверки реализована в модуле LMCHZ (ЛМЧЗ – локальный модуль системы "Честный знак").

Функционал поддержан для следующих плагинов маркированных товаров:

Конфигурирование модуля

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

Для локальной установки и использования модуля на кассе необходимо:

  1. Установить пакет regime из репозитория Artix для Ubuntu 22.04, выполнив команду:

    aptitude install regime

    При установке пакета необходимо указать адрес сервера конфигурации ЛМЧЗ, а также логин и пароль, которые будут использованы для авторизации.

    Установка пакета regime из репозитория возможна только для Ubuntu 22.04.

  2. Настроить модуль в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/crpt.ini в секции [LMCHZ].

    НаименованиеТипа данныхВозможные значенияОписаниеПримечание
    enableлогический
    • true
    • false
    Использование ЛМЧЗ для офлайн-проверок

    По умолчанию false

    maintainлогический
    • true
    • false
    Управление инициализацией ЛМЧЗ

    По умолчанию false

    tokenстроковый
    Аутентификационный токен участника оборота

    Используется для инициализации, если указан.

    Значение параметра token должно совпадать со значением параметра xapikey из плагина (например: markedgoods), в котором настроена онлайн-проверка кода маркировки на сервере системы "Честный знак".

    Пример:

    xapikey = [-1;xtoken]

    token = xtoken

    Заполнение параметра строго обязательно.
    urlстроковый
    Адрес сервиса ЛМЧЗ

    По умолчанию "http://127.0.0.1:5995"

    userстроковый
    Имя пользователя для доступа к ЛМЧЗ


    password 

    строковый
    Пароль для доступа к ЛМЧЗ


    timeoutчисловой
    Таймаут обращения к ЛМЧЗ

    По умолчанию 5 секунд

    Пример настройки
    [LMCHZ]
    ; Использование ЛМЧЗ для офлайн-проверок
    ; по умолчанию false
    ;enable = false
    
    ; Управление инициализацией ЛМЧЗ
    ; по умолчанию false
    ;maintain = false
    
    ; Аутентификационный токен участника оборота
    ; Используется для инициализации, если указан
    ; По умолчанию ""
    ;token = ""
    
    ; Адрес сервиса ЛМЧЗ
    ; по умолчанию "http://127.0.0.1:5995"
    ;url = "http://127.0.0.1:5995"
    
    ; Имя пользователя для доступа к ЛМЧЗ
    ; по умолчанию ""
    ;user = ""
    
    ; Пароль для доступа к ЛМЧЗ
    ; по умолчанию ""
    ;password = ""
    
    ; Таймаут обращения к ЛМЧЗ
    ; по умолчанию 5 секунд
    ;timeout = 5

Активация серых списков GTIN

В кассовом ПО Artix реализована возможность активации серых списков GTIN, которая определяется параметрами enableGreyList и maintain в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/crpt.ini в секции [LMCHZ]

  • при maintain = true:
    • если enableGreyList = true, то на сервер отправляется запрос на включение проверки серых списков GTIN,
    • если enableGreyList = false, то на сервер отправляется запрос на отключение проверки серых списков GTIN,
    • если enableGreyList не задан, то запрос на сервер не отправляется.
  • при maintain = false значение параметра enableGreyList игнорируется. 
НаименованиеТипа данныхВозможные значенияОписаниеПримечание
enableGreyListлогический
  • true
  • false
Активация серых списков GTIN

По умолчанию не задан

При включении данной настройки вы соглашаетесь, что не сможете выполнять офлайн-проверку товаров, по которым есть блокировки кодов идентификации. Вы также несете риск неблагоприятных последствий – в том числе риск убытков, которые могут возникнуть у третьих лиц.
Работает только при включенной настройке maintain.
Пример настройки
[LMCHZ]
...
; Активация серых списков GTIN
; При включении данной опции вы соглашаетесь, что не сможете проверять в офлайне товары, по которым есть
; блокировки кодов идентификации и несёте риск неблагоприятных последствий, в том числе риск
; убытков, которые могут возникнуть у третьих лиц
; Работает в сочетании с настройкой maintain
; При true - включает использование списков GTIN
; При false - выключает использование списков GTIN
; По умолчанию не задан
;enableGreyList =
...

Конфигурирование ЛМЧЗ для нескольких юридических лиц

Для каждого юридического лица должен быть установлен собственный модуль LMCHZ на отдельной машине.

Для авторизации по токену УОТ (участника оборота товаров) в системе цифровой маркировки "Честный знак" должно быть задано соответствие отделов (юридических лиц) и токенов.

При работе на кассе может возникнуть необходимость офлайн-проверки кодов маркировки для маркированных товаров, соответствующих разным юридическим лицам. В этом случае для каждого юридического лица необходимо использовать сервер с собственным модулем LMCHZ. Допускается установка одного из модулей локально на кассе.

В кассовом ПО реализована возможность подключения к нескольким локальным модулям системы "Честный знак". Для работы с несколькими юридическими лицами необходимо задать параметры в подсекциях вида [LMCHZ.<номер>]. Для каждого юридического лица должна быть настроена подсекция с индивидуальными параметрами подключения к одному из модулей LMCHZ.

Для корректной работы параметр token должен быть задан во всех подсекциях.

Значения токенов должны быть уникальны в пределах всех подсекций.

Пример настройки для работы с несколькими юридическими лицами
[LMCHZ.1]
; Использование ЛМЧЗ для офлайн-проверок
; по умолчанию false
enable = true

; Управление ЛМЧЗ
; по умолчанию false
;maintain = false

; Аутентификационный токен участника оборота
; По умолчанию "" 
token = token1 

; Адрес сервиса ЛМЧЗ
; по умолчанию "http://127.0.0.1:5995" 
url = "url1" 

; Имя пользователя для доступа к ЛМЧЗ
; по умолчанию "" 
;user = "user1" 

; Пароль для доступа к ЛМЧЗ
; по умолчанию "" 
;password = "pass1" 

; Таймаут обращения к ЛМЧЗ
; по умолчанию 5 секунд
;timeout = 5

[LMCHZ.2]
; Использование ЛМЧЗ для офлайн-проверок
; по умолчанию false
enable = true

; Управление ЛМЧЗ
; по умолчанию false
;maintain = false

; Аутентификационный токен участника оборота
; По умолчанию "" 
token = token2 

; Адрес сервиса ЛМЧЗ
; по умолчанию "http://127.0.0.1:5995" 
url = "url2" 

; Имя пользователя для доступа к ЛМЧЗ
; по умолчанию "" 
user = "user2" 

; Пароль для доступа к ЛМЧЗ
; по умолчанию "" 
password = "pass2" 

; Таймаут обращения к ЛМЧЗ
; по умолчанию 5 секунд
;timeout = 5

При добавлении маркированного товара для офлайн-проверки будет осуществлен поиск значения токена, соответствующего отделу, к которому привязан товар. В зависимости от значения токена будут осуществлены:

  1. Поиск подсекции, в которой заполнен параметр token с полученным значением.
  2. Определение адреса сервиса ЛМЧЗ и других параметров для обращения к модулю LMCHZ.
  3. Офлайн-проверка кода маркировки на сервисе ЛМЧЗ с использованием нужного модуля LMCHZ
Пример обращения к разным модулям ЛМЧЗ в зависимости от отдела

Пусть:

  • в подсекциях для параметров url и token заданы следующие значения:

    [LMCHZ.1]
    ...
    
    ; Аутентификационный токен участника оборота
    token = token1 
    
    ; Адрес сервиса ЛМЧЗ
    url = "url1"   
    
    [LMCHZ.2]
    ...
    
    ; Аутентификационный токен участника оборота
    token = token2 
    
    ; Адрес сервиса ЛМЧЗ
    url = "url2"  
  • в параметре xapikey плагина для работы с маркированными товарами задано соответствие отделов (юридических лиц) и токенов:

    Пример задания соответствия отделов и токенов в настройках плагина Markedgoods
    [MarkedGoods]
    ...
    ; xapikey = [<отдел1>:<токен1>],[<отдел2>:<токен2>], ... , [<отделN>:<токенN>]
    xapikey = [1:token1],[2:token2]

При добавлении маркированного товара:

  • из отдела 1 – запрос для офлайн-проверки кода маркировки в модуле LMCHZ будет отправлен по адресу "url1" с токеном "token1" (см. подсекцию [LMCHZ.1]),
  • из отдела 2 – запрос для офлайн-проверки кода маркировки в модуле LMCHZ будет отправлен по адресу "url2" с токеном "token2" (см. подсекцию [LMCHZ.2]).

Конфигурирование модуля на кассовом сервере

Вместо настройки модуля LMCHZ на каждой кассе может быть выполнена централизованная настройка на кассовом сервере через Artix Control Center.
Для этого необходимо добавить конфигурационную метку для локального модуля:

  1. В группе классов "Маркированные товары" выбрать класс "ЛМЧЗ".
  2. Задать значения для параметров модуля LMCHZ:

    Индивидуальные настройки доступа к локальному модулю системы "Честный знак" (ЛМЧЗ) позволяют задать собственный адрес сервиса LMCHZ для каждого магазина.
  3. Настроить "Глобальные параметры" в выбранной конфигурации.
    Для глобального параметра lmchzTokens требуется указать пару вида: {<код магазина>=<ip-адрес сервера ЛМЧЗ:порт>_<токен>}.

    Пример заполнения глобального параметра
    • ключ – shopCode1,
    • значение – http://127.0.0.1:5995_token1.

    Если значение для магазина не заполнено, то оно будет считано из соответствующих полей url, token в классе "ЛМЧЗ".

Инициализация модуля ЛМЧЗ на кассе

Перед инициализацией отправляется запрос на сервис ЛМЧЗ. Если в ответе получен статус:

  • "not_configured" (не сконфигурирован, не готов к работе), то выполняется инициализация модуля,
  • "ready" (готов к работе), то инициализация модуля не выполняется.

Принцип работы

При попытке добавить товар в чек отсканированный код маркировки отправляется на удаленный сервер системы "Честный знак". Выполняется перебор CDN-площадок. 

Офлайн-проверка кодов маркировки в модуле LMCHZ выполняется:

  • при отсутствии ответа от сервера системы "Честный знак" в течение markverifycrpttimeout,
  • при возникновении аварийной ситуации,
  • при отсутствии связи с сервером системы "Честный знак",
  • при отсутствии доступных CDN-площадок.

Результат проверки определяется значением ключа "isBlocked" – товар с таким кодом маркировки заблокирован на сервере системы "Честный знак":

  • если ответ от сервера содержит "isBlocked":true, то будет выведено сообщение: "Ошибка проверки кода маркировки позиции '<Наименование товара>'. Товар с таким кодом маркировки заблокирован". Товар в чек не добавляется,
  • если ответ от сервера содержит "isBlocked":false, то товар будет добавлен в чек.

Значение ключа "isBlocked" можно посмотреть в логе /linuxcash/logs/current/terminal.log кассового ПО.

Если включена настройка для проверки товаров из серых списков, то результат проверки определяется значением ключа "isGreyGtin":

  • если ответ от сервера содержит "isGreyGtin":true, то будет выведено сообщение: "Ошибка проверки кода маркировки позиции '<Наименование товара>'. Продажа товара заблокирована, т.к проверка кода маркировки с таким GTIN возможна только в режиме онлайн",

  • если ответ от сервера содержит "isGreyGtin":false, то результат добавления будет зависеть от значения ключа "isBlocked".

При получении от сервера одновременно двух ключей "isGreyGtin" и "isBlocked" со значениями true будет обработано только значение ключа "isGreyGtin".

Значение ключа "isGreyGtin" можно посмотреть в логе /linuxcash/logs/current/terminal.log кассового ПО.

При закрытии чека формируется отраслевой реквизит вида "UUID=<reqId>&Time=<reqTimestamp>&Inst=<inst>&Ver=<version>", который передается в ОФД в теге 1265.

Значения атрибутов подставляются из ответа от сервера для каждой марки. Например:

  • reqId=2ce10bdb-6510-4d37-be04-dd473b98c728,
  • reqTimestamp=1692691702065,
  • inst=9fee3da1-ec4a-42c2-b6be-b4f502676caa,
  • version=7312a9ab-e26d-476d-848f-4d18030eb5d3.

Возможные ошибки

Если товар с кодом маркировки будет заблокирован на сервере системы "Честный знак", то на экран кассира будет выведено сообщение:

Если модуль LMCHZ не сконфигурирован или недоступен, то на экран кассира будет выведено сообщение:

Если один и тот же маркированный товар добавляется в чек повторно, то на экран кассира будет выведено сообщение:

Если включена проверка товаров из серых списков GTIN, то при попытке добавить такой товар в чек на экран кассира будет выведено сообщение:

Логирование

Логирование работы модуля ведется в файле /linuxcash/logs/current/terminal.log.

  • No labels