Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel

Table of Contents


Panelwarning

Начиная с версии 4.6.145 добавлена возможность возврата обувных товаров по чеку продажи на другой кассе.

...

264 работу с обувными товарами рекомендуется осуществлять в плагине маркированных товаров.

Информационная система маркировки и мониторинга оборота обувных товаров ) создана с целью информационного обеспечения маркировки товаров средствами идентификации и мониторинга оборота обувных товаров.

...

Модуль МООТ активируется параметром moot в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [plugins].

НаименованиеТип данныхВозможные значенияОписаниеПримечания
mootлогическийстроковый
  • on
  • off
Активация модуля МООТПо умолчанию off


Code Block
titleПример настройки
[plugins]
; Мониторинг оборота обувных товаров (обуви)
moot = off

Настройка модуля МООТ производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot].

Маска для проверки кода маркировки обувных товаров задается настройкой dataMatrixMask.

НаименованиеТип данныхОписаниеПримечания
dataMatrixMaskстроковыйМаска для проверки Data Matrix DataMatrix обувных товаров

По умолчанию "01\d{14}21.{13}(240[a-zA-Z0-9]{4}|\s+){0,1}91.{4}92.{8884,95}"


Code Block
titleПример настройки
[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
; Маска для проверки DataMatrix обуви
; По умолчанию 01\d{14}21.{13}(240[a-zA-Z0-9]{4}|\s+){0,1}91.{4}92.{8884,95}
;dataMatrixMask=01\d{14}21.{13}(240[a-zA-Z0-9]{4}|\s+){0,1}91.{4}92.{8884,95}


Warning

Код маркировки должен подходить только под одну маску для проверки DataMatrix.

Продажа обувных товаров

Добавление обувных товаров

Для определения обувного товара у товара должен быть установлен признак op_mode = 65536 (БД Dictionaries таблица tmc таблица Tmc). При добавлении товара требуется считывание кода маркировки товара.

...

  • последовательным сканированием штрих-кода/кода/артикула товара и кода маркировки,
  • сканированием кода маркировки (код маркировки содержит в себе данные штрих-кода, поэтому сканировать штрих-код не требуется) - настраивается с помощью правил разбора штрих-кода..

Так как код маркировки представляет собой уникальный код, то в товарной позиции может быть не более 1 единицы товара. Применение модификатора "Изменение количества" к позиции с обувным товаром запрещено.

Добавление в чек обувных товаров, как обычных (без ввода кода маркировки), определяется параметром addWithoutScanMark в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]

  • при значении true при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить обувь без маркировки;,
  • при значении false при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки.
НаименованиеТип данныхВозможные значенияОписаниеПримечания
addWithoutScanMarkлогический
  • true
  • false
Добавлять обувь в чек без ввода кода маркировкиПо умолчанию false


Code Block
languagetext
titleПример настройки
[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
...
; Добавлять обувь в чек без ввода кода маркировки
; По умолчанию false
;addWithoutScanMark = false

Удаление обувных товаров

При сторнировании обувных товаров требуется считывание кода маркировки товара. После сканирования кода маркировки из чека удаляется именно та позиция, данные которой были считаны, независимо от того, какая позиция была выделена при операции сторнирования. При сторнировании всего чека, содержащего обувные товары, операция выполняется без считывания кодов маркировки.

Возврат обувных товаров

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

  • если код маркировки присутствует, то возврат обуви осуществляется с использованием режимов возврата и возврата по чеку продажи;
  • если код маркировки не сохранился, то возврат обуви может быть осуществлен без сканирования кода маркировки в режиме возврата по чеку продажи.

При возврате по чеку продажи позицию для возврата можно выбрать одним из способов:

  • выбрав товар из списка в режиме выбора позиций для возврата и считав код маркировки товара;
  • выбрав товар из списка в режиме выбора позиций для возврата и нажав "без маркировки" в диалоге считывания кода маркировки;
  • считав код маркировки товара.
Info

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

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

Проверка кодов маркировки обувных товаров

Регламент работы по проверке кодов маркировки при продаже и возврате по чеку продажи обувных товаров определяется структурой торговой сети. Проверка кодов маркировки предполагает:

  • проверку на факт продажи/возврата обувных товаров (в БД кассовой программы),
  • проверку статуса кода маркировки на кассовом сервере,
  • проверку кода маркировки в "белом" списке на сервере.
Info
Проверка статуса кода маркировки и его наличия в списке кодов маркировки, разрешенных к продаже, на кассовом сервере при использовании режима возврата не осуществляется.

...

В кассовом ПО Artix реализована возможность блокировать сканер при отображении диалога подтверждения ошибки сканирования кода маркировки. Данная возможность задается при помощи параметра showScanErrorDialog в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]. В случае возникновения ошибки сканирования:

  • при значении true сканер будет заблокирован, будет отображен диалог подтверждения ошибки с сообщением "Ошибка сканирования кода маркировки", товар не добавляется в чек,

    Info
    После закрытия диалога сканер будет разблокирован.


  • при значении false блокировка сканера не осуществляется, будет отображен диалог сканирования кода маркировки "Ошибка считывания кода маркировки, повторите сканирование", товар не добавляется в чек.

После ввода верного кода маркировки товар добавляется в чек.

НаименованиеТип данныхВозможные значенияОписаниеПримечания
showScanErrorDialogлогический
  • true
  • false
Блокировать сканер и отображать диалог подтверждения ошибки сканирования кода маркировкиПо умолчанию false


Code Block
languagetext
titleПример настройки
[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
... 
; Блокировать сканер и отображать диалог подтверждения ошибки сканирования кода маркировки
; По умолчанию false
;showScanErrorDialog = false

Разрешенные типы данных для ввода кода маркировки

В кассовом ПО Artix реализована возможность настройки разрешенных типов данных для ввода кода маркировки, задается параметром permittedInput в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini

...

в секции [Moot]:

  • при значении параметра true осуществляется проверка в БД Documents в таблице goodsitem на возможность продажи/возврата обувных товаров:
    • если код маркировки был продан/возвращен ранее, то при попытке продать/вернуть товар на экран выводится сообщение об ошибке "Код маркировки уже был зарегистрирован ранее", товар в чек не добавляется;
    • если код маркировки не был продан/возвращен ранее, то товар добавляется в чек.
  • при значении параметра false проверка кода маркировки в проданной продукции не осуществляется.

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

  • сканированием кода маркировки с типом данных, не указанным в настройке, на экран будет выведена ошибка "Неверный тип ввода данных",
  • последовательным сканированием штрих-кода и кода маркировки с типом данных, не указанным в настройке, код маркировки будет проигнорирован. 
НаименованиеТип данныхВозможные значенияОписаниеПримечания

...

permittedInput

...

  • true
  • false

...

целочисленный

(битовая маска)

  • 0 – запрет ввода любых данных,
  • 1 – текстовые данные,
  • 2 – бинарные данные (если устройство может посылать непечатные символы),
  • 3 – текстовые и бинарные данные.
Разрешенные типы вводимых данных

По умолчанию разрешены все типы вводимых данных


Code Block
languagetext
titleПример настройки
[Moot]

...


...
; 

...

Разрешенные 

...

типы 

...

вводимых 

...

данных
; По умолчанию

...

 "" - все типы вводимых данных
;

...

permittedInput =

...

Структура сети с кассовыми серверами

Структура сети с кассовыми серверами позволяет осуществлять контроль:

  • дублей кодов маркировки (запрет повторной продажи/возврата одного и того же обувного товара),
  • разрешенных к продаже кодов маркировки (запрет продажи/возврата товаров, коды маркировки которых не были внесены в "белый" список).

Настройки подключения к кассовому серверу задаются в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

...

  • true
  • false

...

По умолчанию http://localhost:8080.

Для работы с КС используется следующий url "http://<host>:<port>/CSrest/rest/sales/exciseMark/status".

...

  • true
  • false

...

  • true
  • false

...

Удаление обувных товаров

При сторнировании обувных товаров требуется считывание кода маркировки товара. После сканирования кода маркировки из чека удаляется именно та позиция, данные которой были считаны, независимо от того, какая позиция была выделена при операции сторнирования. При сторнировании всего чека, содержащего обувные товары, операция выполняется без считывания кодов маркировки.

Возврат обувных товаров

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

  • если код маркировки присутствует, то возврат обуви осуществляется с использованием режимов возврата и возврата по чеку продажи,
  • если код маркировки не сохранился, то возврат обуви может быть осуществлен без сканирования кода маркировки в режиме возврата по чеку продажи.

При возврате по чеку продажи позицию для возврата можно выбрать одним из способов:

  • выбрав товар из списка в режиме выбора позиций для возврата и считав код маркировки товара,
  • выбрав товар из списка в режиме выбора позиций для возврата и нажав "без маркировки" в диалоге считывания кода маркировки,
  • считав код маркировки товара.

Для возврата обувных товаров по чеку продажи реализована возможность выбора позиции без сканирования кода маркировки, которая определяется параметром addWithoutScanMarkInBackBySale в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]

  • при значении true при выборе товара для возврата на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить обувь без маркировки,
  • при значении false при выборе товара для возврата на экран будет выведен диалог сканирования кода маркировки.
НаименованиеТип данныхВозможные значенияОписаниеПримечания
addWithoutScanMarkInBackBySaleлогический
  • true
  • false
Добавлять обувь в чек возврата по чеку продажи без ввода кода маркировкиПо умолчанию true


Code Block
languagetext
titleПример настройки
[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
... 
; ПроверкаДобавлять кодовобувь маркировкив начек сервере
;возврата Попо умолчанию false
enableMarkVerify=true
; Url сервера проверки кодовчеку продажи без ввода кода маркировки
; ДляПо работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status" 
; По умолчанию http://<host>:<port>
markVerifyUrl=http://<host>:<port>/CSrest/rest/sales/exciseMark/status
; Таймаут обращения к серверу проверки кодов маркировки в секундах
; По умолчанию 30
markVerifyTimeout=30
; Игнорировать ошибки обращения к серверу проверки кодов маркировки
; По умолчанию true
ignoreMarkVerifyErrors=true
; Игнорировать проверку АМ при возврате по чеку (для онлайн-чеков при некорректных АМ)
; По умолчанию false
;skipCheckExciseMark = false

Проверка кодов маркировки на сервере задается при помощи параметра enableMarkVerify в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

  • при значении true осуществляется проверка кода маркировки на сервере,
  • при значении false проверка кода маркировки на сервере не выполняется.

Подключение к серверу задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot] параметрами:

  • markVerifyUrl - URL кассового сервера;
  • markVerifyTimeout - таймаут ожидания ответа от кассового сервера при проверке кодов маркировки.

...

умолчанию true
;addWithoutScanMarkInBackBySale = true

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

Проверка кодов маркировки обувных товаров

Регламент работы по проверке кодов маркировки при продаже и возврате по чеку продажи обувных товаров определяется структурой торговой сети. Проверка кодов маркировки предполагает:

  • проверку на факт продажи/возврата обувных товаров (в БД кассовой программы),
  • проверку статуса кода маркировки на кассовом сервере,
  • проверку кода маркировки в "белом" списке на сервере.
Info
Проверка статуса кода маркировки и его наличия в списке кодов маркировки, разрешенных к продаже, на кассовом сервере при использовании режима возврата не осуществляется.

Проверка кода маркировки в проданной продукции на кассе задается параметром checkLocalUniqueness в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

  • при значении параметра true осуществляется проверка в БД Documents в таблице Goodsitem на возможность продажи/возврата обувных товаров:
    • если код маркировки был продан/возвращен ранее, то при попытке продать/вернуть товар на экран выводится сообщение об ошибке "Код маркировки уже был зарегистрирован ранее", товар в чек не добавляется,
    • если код маркировки не был продан/возвращен ранее, то товар добавляется в чек.
  • при значении параметра false проверка кода маркировки в проданной продукции не осуществляется.
НаименованиеТип данныхВозможные значенияОписаниеПримечания
checkLocalUniquenessлогический
  • true
  • false
Проверка кода маркировки в проданной продукции на кассеПо умолчанию true


Code Block
languagetext
titleПример настройки
[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
...
; Проверка кода маркировки в проданной продукции на кассе
; По умолчанию true
;checkLocalUniqueness = true

Структура сети с кассовыми серверами

Структура сети с кассовыми серверами позволяет осуществлять контроль:

  • дублей кодов маркировки (запрет повторной продажи/возврата одного и того же обувного товара),
  • разрешенных к продаже кодов маркировки (запрет продажи/возврата товаров, коды маркировки которых не были внесены в "белый" список).

Настройки подключения к кассовому серверу задаются в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

НаименованиеТип данныхВозможные значенияОписаниеПримечания
enableMarkVerifyлогический
  • true
  • false
Проверка кодов маркировки на сервереПо умолчанию false
markVerifyUrlстроковый
Url сервера проверки кодов маркировки

По умолчанию http://localhost:8080.

Для работы с КС используется url "http://<host>:<port>/CSrest/rest/sales/exciseMark/status"

markVerifyTimeoutстроковый
Таймаут обращения к серверу проверки кодов маркировки в секундахПо умолчанию 30
ignoreMarkVerifyErrorsлогический
  • true
  • false
Игнорировать ошибки обращения к серверу проверки кодов маркировкиПо умолчанию true
skipCheckExciseMarkлогический
  • true
  • false
Игнорировать проверку АМ при возврате по чеку (для онлайн-чеков при некорректных АМ)По умолчанию false


Code Block
languagetext
titleПример настройки
[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
...
; Проверка кодов маркировки на сервере
; По умолчанию false
enableMarkVerify=true
; Url сервера проверки кодов маркировки
; Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status" 
; По умолчанию http://<host>:<port>
markVerifyUrl=http://<host>:<port>/CSrest/rest/sales/exciseMark/status
; Таймаут обращения к серверу проверки кодов маркировки в секундах
; По умолчанию 30
markVerifyTimeout=30
; Игнорировать ошибки обращения к серверу проверки кодов маркировки
; По умолчанию true
ignoreMarkVerifyErrors=true
; Игнорировать проверку АМ при возврате по чеку (для онлайн-чеков при некорректных АМ)
; По умолчанию false
;skipCheckExciseMark = false

Проверка кодов маркировки на сервере задается при помощи параметра enableMarkVerify в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

  • при значении true осуществляется проверка кода маркировки на сервере,
  • при значении false проверка кода маркировки на сервере не выполняется.

Подключение к серверу задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot] параметрами:

  • markVerifyUrl – URL кассового сервера,
  • markVerifyTimeout – таймаут ожидания ответа от кассового сервера при проверке кодов маркировки.

Настройками программы можно разрешать или запрещать продажу/возврат обувных товаров при возникновении ошибок обращения к кассовому серверу. Возможность игнорирования возникающих ошибок определяется параметром ignoreMarkVerifyErrors в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

  • при значении true ошибки, возвращаемые кассовым сервером, игнорируются,
  • при значении false в случае возникновения ошибок при проверке кода маркировки на кассовом сервере продажа/возврат товара не может быть выполнена.
Panel

Для корректной проверки кодов маркировки на кассовом сервере также необходимо:

В настройках Artix Control Center:

  1. Перейти в меню "Настройки сервера" в раздел "Маркированная продукция".
  2. В настройке "Проверять список разрешенных к продаже кодов маркировки обуви" установить значение "Проверять по коду маркировки".

При добавлении обувных товаров в чек продажи на кассовый сервер отправляется REST-запрос на получение статуса кода маркировки. Дальнейшее поведение программы определяется полученным статусом.

Статус кода маркировкиПоведение кассы при продаже
Код маркировки не зарегистрирован в БДТовар с кодом маркировки добавляется в чек и может быть продан
Товар с таким кодом маркировки проданТовар в чек не добавляется, на экран выводится ошибка "Товар с таким кодом маркировки уже был продан"
Товар с таким кодом маркировки возвращенТовар добавлен в чек и может быть продан
Код маркировки зарезервирован в чеке продажиТовар в чек не добавляется, на экран выводится ошибка "Товар с таким кодом маркировки уже был зарезервирован"
Код маркировки снят с резерва в чеке продажиТовар добавляется в чек и может быть продан
Код маркировки зарезервирован в чеке возврата (чеке возврата по чеку продажи)Товар в чек не добавляется, на экран выводится ошибка "Товар с таким кодом маркировки уже был зарезервирован"
Код маркировки снят с резерва в чеке возврата (чеке возврата по чеку продажи)Товар в чек не добавляется, на экран выводится ошибка "Товар с таким кодом маркировки уже был продан"
Код маркировки отсутствует в списке разрешенных к продажеТовар в чек не добавляется, на экран выводится ошибка "Товар с таким кодом маркировки запрещен к продаже"
Штрих-код для проверки в списке кодов маркировок, разрешенных к продаже, не переданТовар в чек не добавляется, на экран выводится ошибка "Товар с таким кодом маркировки запрещен к продаже. Не заполнен штрих-код для проверки в белом списке"
Соответствие кода маркировки и штрих-кода в списке кодов маркировок, разрешенных к продаже, не найденоТовар в чек не добавляется, на экран выводится ошибка "Товар с таким кодом маркировки запрещен к продаже. Не найдено соответствие кода маркировки и штрих-кода в белом списке"
Неизвестный статус кода маркировкиТовар в чек не добавляется, на экран выводится ошибка "Неизвестный статус кода маркировки на сервере"

После добавления товара в чек продажи/возврата по чеку продажи код маркировки ставится в резерв на кассовом сервере.

Изменение статуса кода маркировки на кассовом сервере в зависимости от операции выполняется:

  • в режиме онлайн (по REST-запросу) – резервирование кода маркировки,
  • в режиме оффлайн (через очередь Artix-Queue) – снятие с резерва кода маркировки (сторнирование), после закрытия чека перевод в статус "продан", "возвращен".

Разрешительный режим

Panel

В кассовом ПО Artix реализован разрешительный режим – обязательная проверка кодов маркировки в системе цифровой маркировки "Честный знак".

Warning

На основании Постановления Правительства Российской Федерации от 21.11.2023 № 1944 с 1 апреля 2024 года в розничных магазинах при продаже маркированных товаров должна осуществляться обязательная проверка кодов маркировки в системе цифровой маркировки "Честный знак".

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

Рекомендуется дополнительно ознакомиться с методическими рекомендациями по разрешительному режиму здесь, со сроками запуска разрешительного режима и с другой информацией на официальной странице "Честного знака".


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


Info

Помимо проверки валидности марки осуществляется проверка срока годности товара. Если у срока годности товара указана дата, но не указано время (в часах, минутах и секундах), то данный товар будет запрещен к продаже в полночь того же дня.


Info

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


Info

Разрешительный режим также поддержан для софт-чеков и онлайн-чеков:

  • проверка кодов маркировок происходит при восстановлении онлайн-чеков,
  • для софт-чеков проверка кода маркировки товара происходит при сканировании маркированной позиции в заказе.


Note

Если параметры проверки заданы некорректно или задан недействительный токен авторизации, то:

  • продажа маркированных товаров будет осуществляться без проверки в системе цифровой маркировки "Честный знак",
  • тег 1265 с результатом проверки заполняться не будет.


Обязательная проверка кодов маркировки на сервере системы "Честный знак" задается при помощи параметра enableMarkVerifyCrpt в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

  • при значении true осуществляется проверка кода маркировки на сервере системы "Честный знак",
  • при значении false проверка кода маркировки на сервере системы "Честный знак" не осуществляется.

Возможность игнорировать ошибки обращения к серверу системы "Честный знак" задается при помощи параметра ignoreMarkVerifyCrptConnectionErrors в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

  • при значении true ошибки обращения к серверу системы "Честный знак" игнорируются, продажа может быть выполнена,
  • при значении false в случае возникновения ошибок при проверке кода маркировки на сервере системы "Честный знак" на экран будет выведено сообщение "Не удалось выполнить проверку кода маркировки (Ошибка соединения с сервером)", продажа не может быть выполнена.

Возможность запросить подтверждение добавления товара при провале проверки маркировки задается при помощи параметра markVerifyCrptAskConfirmation в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

  • при значении true на экран будет выведен диалог с сообщением об ошибке: по нажатию клавиши "Ввод" товар будет добавлен в чек, по нажатию клавиши "Отмена" товар не будет добавлен в чек,
  • при значении false на экран будет выведен диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек.
НаименованиеТипа данныхВозможные значенияОписаниеПримечание
enableMarkVerifyCrptлогический
  • true
  • false
Проверка кодов маркировки на сервере честного знака

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

Info

Для корректной работы при включенной настройке необходимо задать токен для доступа к серверу системы "Честный знак".


markVerifyCrptUrlстроковый
Url сервера проверки кодов маркировки честного знака

По умолчанию https://cdn.crpt.ru

Можно указать несколько значений через запятую

markVerifyCrptTimeoutцелочисленный


Таймаут обращения к серверу проверки кодов маркировки честного знака в секундахПо умолчанию 30
ignoreMarkVerifyCrptConnectionErrorsлогический
  • true
  • false
Игнорировать ошибки обращения к серверу честного знакаПо умолчанию false
markVerifyCrptAskConfirmationлогический
  • true
  • false
Запросить подтверждение добавления товара при провале проверки маркировкиПо умолчанию false


Code Block
languagetext
titleПример настройки
[Moot]
...
; Проверка кодов маркировки на сервере честного знака
; По умолчанию false
;enableMarkVerifyCrpt = false

; Url сервера проверки кодов маркировки честного знака
; По умолчанию https://cdn.crpt.ru
;markVerifyCrptUrl = https://cdn.crpt.ru

; Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах
; По умолчанию 30
;markVerifyCrptTimeout = 30

; Игнорировать ошибки обращения к серверу честного знака
; По умолчанию false
;ignoreMarkVerifyCrptConnectionErrors = false

; Запросить подтверждение добавления товара при провале проверки маркировки
; По умолчанию false
;markVerifyCrptAskConfirmation = false
...

Anchor
xapikey
xapikey
В кассовом ПО Artix реализована возможность авторизации по токену УОТ (участника оборота товаров) в системе цифровой маркировки "Честный знак". Данная возможность задается при помощи параметра xapikey в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

НаименованиеТип данныхОписаниеПримечания
xapikeyстроковыйТокен для доступа к серверу честного знака
  • При использовании одного токена для нескольких юридических лиц:
    xapikey = [<отдел1>.<отдел2>:<токен>]
  • При использовании токена только для одного из юридических лиц, например, только для <отдел2>:
    xapikey = [<отдел1>:1],[<отдел2>:<токен>]
  • При использовании токена для одного юридического лица:
    xapikey = [-1:<токен>]
Info

Использование токена вида xapikey = [1:<токен>] недопустимо.


Tip

С информацией о получении токена можно ознакомиться в Методических рекомендациях по разрешительному режиму.



Code Block
languagetext
titleПример настройки
[Moot]
...
; Токен для доступа к серверу честного знака
; При использовании нескольких юрлиц задаются токены для отделов:
; xapikey = [<отдел1>:<токен1>],[<отдел2>.<отдел3>:<токен2>]
; При использовании одного юрлица токен задается для отдела -1
; xapikey = [-1:<токен>]
;xapikey =
...


Info

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


Info

Если при работе с несколькими юридическими лицами не задан токен хотя бы для одного из отделов, то будет выведено предупреждение "Честный знак: токен для проверки не найден. Товар не будет добавлен".

При использовании нескольких юрлиц выполняется перебор токенов для авторизации (начиная с последнего указанного токена в параметре xapikey). Если после перебора всех токенов авторизация не выполнится, то получить доступ к серверу для проверки кодов маркировки будет невозможно.

После авторизации по токену УОТ (участника оборота товаров) в момент запуска кассы в системе цифровой маркировки "Честный знак" будет получен список CDN-площадок для осуществления проверки кодов маркировки.

CDN-площадка для проверки кодов маркировки выбирается в порядке приоритета в зависимости от среднего времени ответа, получаемого при запросе статуса CDN-площадок. Самый высокий приоритет имеет CDN-площадка с наименьшим средним временем ответа.

Если соединение с приоритетной CDN-площадкой было потеряно, то данная CDN-площадка будет недоступна для проверки кодов маркировки в течение 15 минут, проверка будет осуществляться в той CDN-площадке, которая следует далее по приоритету.

Если в течение таймаута, заданного в настройке markVerifyCrptTimeout, ни одна из CDN-площадок из списка не ответила или оказалась недоступна, то, в зависимости от значения параметра ignoreMarkVerifyCrptConnectionErrors, товар может быть добавлен в чек без проверки кода маркировки.

Настройки получения информации о CDN-площадках осуществляются в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/crpt.ini в секции [CRPT]:

НаименованиеТип данныхОписаниеПримечания
getInfoTimeoutцелочисленныйТаймаут получения списка CDN-площадокПо умолчанию 10 секунд
healthCheckTimeoutцелочисленныйТаймаут получения состояния CDN-площадкиПо умолчанию 10 секунд


Code Block
languagetext
titleПример настройки
[CRPT]
; Настройки взаимодействия с ЦРПТ

; Таймаут получения списка CDN-площадок
; по умолчанию 10 секунд
;getInfoTimeout = 10

; Таймаут получения состояния CDN-площадки
; по умолчанию 10 секунд
;healthCheckTimeout = 10

Обработка статусов кода маркировки

При добавлении маркированных товаров в чек продажи на сервер системы "Честный знак" отправляется REST-запрос на получение статуса кода маркировки.

Статус кода маркировкиПоведение кассы при продаже по умолчанию
Товар с некорректным кодом маркировкиТовар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки некорректен"
Товар с такой маркой не прошел проверку подлинностиТовар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не прошел проверку крипто подписи"
Товар не имеет признака нанесения марки на упаковкуТовар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. У кода маркировки отсутствует признак нанесения на упаковку"
Товар с такой маркой продан или снят с продажиТовар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не в обороте"
Товар с такой маркой имеет истекший срок годностиТовар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки просрочен"
Код маркировки данного товара выведен из оборотаТовар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки выведен из оборота"
Товар с таким кодом маркировки не найденТовар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не найден"
Товар заблокирован одной из CDN-площадокТовар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки заблокирован "<CDN-площадкой>"

В кассовом ПО Artix реализована возможность игнорировать конкретные статусы, получаемые при проверке кода маркировки на сервере системы "Честный знак".

Info
Функционал доступен только при выключенной настройке markVerifyCrptAskConfirmation.

Данное поведение задается при помощи параметров, соответствующих полученным статусам, в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

  • при значении deny в случае возникновения ошибок на экран будет выведен диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек,
  • при значении ask в случае возникновения ошибок на экран будет выведен диалог с сообщением об ошибке: по нажатию клавиши "Продолжить" товар добавляется в чек, по нажатию клавиши "Отмена" товар не будет добавлен в чек,
  • при значении allow статус игнорируется, товар будет добавлен в чек.
НаименованиеТипа данныхВозможные значенияОписаниеПримечание
ignoreCrptStatusValidстроковый
  • deny
  • ask
  • allow
Игнорировать результат проверки валидности кода маркировкиПо умолчанию deny
ignoreCrptStatusVerifiedстроковыйИгнорировать результат проверки крипто подписи кода маркировки
ignoreCrptStatusUtilisedстроковыйИгнорировать признак нанесения кода маркировки на упаковку
ignoreCrptStatusRealizableстроковыйИгнорировать признак возможности реализации кода маркировки
ignoreCrptStatusExpireDateстроковыйИгнорировать срок годности
ignoreCrptStatusSoldстроковыйИгнорировать вывод из оборота
ignoreCrptStatusIsBlockedстроковыйИгнорировать блокировку КМ
ignoreCrptStatusFoundстроковыйИгнорировать не найденный КМ


Code Block
languagetext
titleПример настройки
[Moot]
...
; Игнорировать получаемые статусы кода маркировки при проверке на сервере честного знака
; Возможные значения: "deny" - запретить продажу товара, если сервер вернул неверный статус,
; "ask" - запросить подтверждение продажи у кассира,
; "allow" - всегда разрешать продажу товара, независимо от получаемого статуса
; По умолчанию "deny"
; Игнорировать результат проверки валидности КМ
;ignoreCrptStatusValid = deny
; Игнорировать результат проверки крипто подписи КМ
;ignoreCrptStatusVerified = deny
; Игнорировать признак нанесения КМ на упаковку
;ignoreCrptStatusUtilised = deny
; Игнорировать признак возможности реализации КМ
;ignoreCrptStatusRealizable = deny
; Игнорировать срок годности
;ignoreCrptStatusExpireDate = deny
; Игнорировать вывод из оборота
;ignoreCrptStatusSold = deny
; Игнорировать блокировку КМ
;ignoreCrptStatusIsBlocked = deny
; Игнорировать не найденный КМ
;ignoreCrptStatusFound = deny 
...

Отраслевые реквизиты

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

Настройки отраслевых реквизитов задаются в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/moot.ini в секции [Moot]:

  • при значении true ошибки, возвращаемые кассовым сервером, игнорируются;
  • при значении false в случае возникновения ошибок при проверке кода маркировки на кассовом сервере продажа/возврат товара не может быть выполнена.

При добавлении обувных товаров в чек продажи на кассовый сервер отправляется REST-запрос на получение статуса кода маркировки. Дальнейшее поведение программы определяется полученным статусом.

...

После добавления товара в чек продажи/возврата по чеку продажи код маркировки ставится в резерв на кассовом сервере.

Изменение статуса кода маркировки на кассовом сервере в зависимости от операции выполняется:

...

.d/moot.ini в секции [Moot]:

НаименованиеТип данныхОписаниеПримечания
foivстроковыйОтраслевой реквизит: идентификатор ФОИВ

По умолчанию "030".

Указывается идентификатор ФОИВ.

Идентификатор ФОИВ – это идентификатор федерального органа исполнительной власти.

Tip

На текущий момент, согласно Постановлению Правительства Российской Федерации от 21.11.2023 № 1944, федеральный орган исполнительной власти – Министерство промышленности и торговли Российской Федерации.

Соответственно параметр foiv должен принимать значение идентификатора ФОИВ – 030.

Реквизит передается в теге 1262

documentDateстроковыйОтраслевой реквизит: дата документа основания (дд.мм.гггг)

По умолчанию "21.11.2023".

Указывается дата документа основания.

Tip
На текущий момент документ основания – это Постановление Правительства Российской Федерации от 21.11.2023 № 1944, соответственно дата документа основания – 21.11.2023.

Реквизит передается в теге 1263

documentNumberстроковыйОтраслевой реквизит: номер документа основания

По умолчанию "1944".

Указывается номер документа основания.

Tip
На текущий момент документ основания – это Постановление Правительства Российской Федерации от 21.11.2023 № 1944, соответственно номер документа основания – 1944.

Реквизит передается в теге 1264


Code Block
languagetext
titleПример настройки
[Moot]
...  
; Отраслевой реквизит: идентификатор ФОИВ
; По умолчанию "030"
;foiv = 030
; Отраслевой реквизит: дата документа основания (дд.мм.гггг)
; По умолчанию "21.11.2023"
;documentDate = 21.11.2023
; Отраслевой реквизит: номер документа основания
; По умолчанию "1944"
;documentNumber = 1944 
...


Info

Если один из параметров foiv, documentDate, documentNumber пуст, то будет выведено уведомление "Честный знак: ошибка в отраслевых реквизитах. Чеки будут сформированы некорректно".


Info

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

Значения атрибутов подставляются из ответа от сервера системы цифровой маркировки "Честный знак":

  • reqId=2ce10bdb-6510-4d37-be04-dd473b98c728,
  • reqTimestamp=1692691702065.