Информационная система мониторинга оборота товаров создана с целью информационного обеспечения маркировки товаров средствами идентификации и мониторинга оборота различных маркированных товаров.
Система маркировки товаров охватывает все этапы оборота товара: от производителя до потребителя. На каждом шаге код маркировки товара проверяется.
Для контроля маркированных товаров используется двумерный штрих-код Data Matrix, наносимый на потребительскую упаковку, товар или товарный ярлык. Data Matrix содержит в себе сведения о штрих-коде товара и коде идентификации.
Модуль маркированных товаров активируется параметром markedgoods
в конфигурационном файле /linuxcash/cash/conf/ncash.
ini.d/markedgoods.ini
в секции [plugins]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
markedgoods | логический |
| Активация модуля маркированных товаров | По умолчанию off |
[plugins] ; on - модуль включен, off - выключен. ; По умолчанию off ;markedgoods = off |
Настройка модуля маркированных товаров производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
.
Для каждой категории маркированных товаров в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
может быть создана своя подсекция [MarkedGoods.<имя_подсекции>]
. Каждая из подсекций должна содержать маску для проверки Data Matrix, которая задается параметром mask
.
Если у подсекции отсутствует маска для проверки Data Matrix или она не уникальна, то настройки подсекции работать не будут. Если для разных категорий товаров значение маски совпадает, то для данных категорий товаров рекомендуется использовать одну подсекцию. |
;[MarkedGoods.Milk] ; Маркированное молоко ; Маска для проверки DataMatrix молочной продукции ;mask = "\s*01(?<barcode>[0-9]{14})(21.{13}\s*(17\d{6}|7003\d{10})|21.{6}|21.{8})\s*93.{4}(\s*3103(?<weight>\d{6}))?" ;[MarkedGoods.Camera] ; Маркированные фотокамеры ; Маска для проверки DataMatrix фотокамер ;mask = "01(?<barcode>[0-9]{14})21.{20}\s*91.{4}\s*92.{44}" ;[MarkedGoods.Common] ; Маркированные парфюм, велосипеды, товары легкой промышленности, шины и покрышки и кресла-коляски ; Маска для проверки DataMatrix для парфюма, велосипедов, товаров легкой промышленности, шин и покрышек и кресел-колясок ;mask = "01(?<barcode>[0-9]{14})21.{13}\s*91.{4}\s*92.{44}" ;[MarkedGoods.Water] ; Маркированная вода ; Маска для проверки DataMatrix водной продукции ;mask = "01(?<barcode>[0-9]{14})21.{13}\s*93.{4}\s*" |
Код маркировки должен подходить только под одну маску для проверки DataMatrix. |
В случае последовательного сканирования штрих-кода товара и кода маркировки, содержащий другой штрих-код, необходимо использовать маску без именованного захвата значений " Если используется маска без именного захвата значений, то при сканировании кода маркировки (без сканировния штрих-кода) на экран будет выведено предупреждение о том, что товар с таким штрих-кодом не найден. |
В зависимости от типа сканера разделительные символы в коде маркировки могут быть представлены в различных видах: произвольное количество пробелов или ' Для того чтобы код маркировки, содержащий разделительный символ '
|
Для каждой подсекции могут быть назначены индивидуальные настройки, подробнее в разделе "Разделение настроек для разных категорий маркированных товаров" (см. ниже).
Для маркированных товаров должен быть установлен признак tmctype = 7
(БД Dictionaries
таблица Barcodes
). При добавлении маркированных товаров требуется считывание кода маркировки.
Добавление в чек товара с кодом маркировки осуществляется двумя способами:
Так как код маркировки представляет собой уникальный код, то в товарной позиции может быть не более 1 единицы товара. Применение модификатора "Количества" к позиции с маркированным товаром запрещено.
Добавление в чек маркированных товаров, как обычных (без ввода кода маркировки), определяется параметром addWithoutScanMark
в конфигурационном файле /linuxcash/cash/conf/ncash.
ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить товар без маркировки,false
при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки.Добавление в чек маркированного товара, как обычного товара (по коду маркировки), задаётся параметром allowUnmarked
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
товар будет добавлен в чек. В выгрузке продаж такой товар будет считаться как обычный, а также будет передан код маркировки. В ОФД товар передается как обычный,false
при добавлении товара в чек на экран будет выведена ошибка "Товар не маркирован. Обратитесь в службу техподдержки". Товар в чек не добавляется.Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
addWithoutScanMark | логический |
| Добавлять маркированные товары в чек без ввода кода маркировки | По умолчанию false |
allowUnmarked | логический |
| Разрешить продажу товара по коду маркировки как не маркированного | По умолчанию false |
[MarkedGoods] ... ; Добавлять маркированные товары в чек без ввода кода маркировки ; По умолчанию false ;addWithoutScanMark = false ... ; Разрешить продажу товара по коду маркировки как не маркированного ; По умолчанию false ;allowUnmarked = false |
Для корректного закрытия чека на ФР Атол с ФФД 1.2 необходимо задать соотнесение единиц измерения товара и меры количества предмета расчета. |
В кассовом ПО Artix реализована возможность изменять количество для весового маркированного товара, регулируется параметром allowChangeQuantity
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
разрешено изменять количество весового товара. При применении модификатора "Количество" на экран будет выведен диалог ввода количества,false
запрещено изменять количество весового товара. При применении модификатора "Количество" на экран будет выведена ошибка "Изменение количества для маркированной позиции запрещено".Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
allowChangeQuantity | логический |
| Разрешить изменять количество для весового товара | По умолчанию false |
[MarkedGoods] ... ; Разрешить изменять количество для весового товара ; По умолчанию false ;allowChangeQuantity = false |
В кассовом ПО Artix реализована возможность продажи маркированного товара, если штрих-код товара и штрих-код, содержащийся в коде маркировки, не соответствуют друг другу. Данное поведение определяется параметром allowNotMatchingBarcodes
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
допускается:false
:Маска разрешенных для несоответствия штрих-кодов может быть задана параметром notMatchingBarcodesMask
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
.
В кассовом ПО Artix реализована возможность проверки несоответствия штрих-кода из кода маркировки карточке товара, найденной по штрих-коду. Данное поведение определяется параметром checkBarcodesOneArticle
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
параметров allowNotMatchingBarcodes
и checkBarcodesOneArticle
производится дополнительная проверка на принадлежность штрих-кода из кода маркировки карточке товара, найденной по штрих-коду,false
проверка принадлежности не осуществляется.Наименование | Тип данных | Возможные значения | Описание | Примечания | |
---|---|---|---|---|---|
allowNotMatchingBarcodes | логический |
| Разрешить несоответствие штрих-кода из кода маркировки штрих-коду товара | По умолчанию false | |
notMatchingBarcodesMask | строковый | Маска разрешенных для несоответствия штрих-кодов | По умолчанию " Работает в сочетании с настройкой
| ||
checkBarcodesOneArticle | логический |
| Проверять несоответствие штрих-кода из кода маркировки карточке товара, найденной по штрих-коду | По умолчанию Работает в сочетании с настройкой
|
[MarkedGoods] ... ; Разрешить несоответствие штрих-кода из кода маркировки штрих-коду товара. ; Запрашивать штрих-код товара, если штрих-код из кода маркировки не найден в базе данных. ; Отправлять в ФР штрих-код из кода маркировки ; По умолчанию false ;allowNotMatchingBarcodes = false ; Маска разрешенных для несоответствия штрих-кодов при включенной настройке allowNotMatchingBarcodes ; По умолчанию "[0-9]*" ;notMatchingBarcodesMask = "[0-9]*" ; Проверять несоответствие штрих-кода из кода маркировки карточке товара, найденной по штрих-коду ; Работает в сочетании с настройкой allowNotMatchingBarcodes ; По умолчанию false ;checkBarcodesOneArticle = false |
" 010460704243920021nqmQ&IjzWJ+T*93dGVs – код маркировки, штрих-код из которого отсутствует в БД кассы 2103321055451 – штрих-код маркированного товара из БД с весом 5.545
|
4607042439162 – штрих-код маркированного товара из БД кассы 010460704243920021nqmQ&IjzWJ+T*93dGVz – код маркировки, штрих-код из которого отсутствует в БД кассы
|
2912345678900 – первый штрих-код маркированного товара 4607022741898 – второй штрих-код маркированного товара 010291234567890021QWERTYUIOPASD1720101093RKWP – код маркировки, соответствующий первому штрих-коду товара 010460702274189821QWERTYUIOPASD1720101093RKWP – код маркировки, соответствующий второму штрих-коду товара
|
4607022741896 – первый штрих-код маркированного товара из карточки товара 4607022741898 – второй штрих-код маркированного товара из карточки товара 010460702274189821QWERTYUIOPASD1720101093RKWP – код маркировки, соответствующий второму штрих-коду товара
|
В кассовом ПО Artix реализована возможность добавления весовых маркированных товаров из каталога. Для этого необходимо:
штрих-код, содержащий вес товара.
Штрих-коды должны относиться к одному товару. |
/linuxcash/cash/conf/ncash.
ini.d/markedgoods.ini
в секции [MarkedGoods]
для параметра askForBarcodeFromCatalogs
задать коды каталогов, которые содержат маркированные товары.Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
askForBarcodeFromCatalogs | логический | Запрашивать штрих-код товара, если он входит в каталог из списка и добавляется по коду маркировки | Может указываться через запятую |
[MarkedGoods] ... ; Запрашивать штрих-код товара, если он входит в каталог из списка и добавляется по коду маркировки ; Разрешить несоответствие штрих-кода из кода маркировки штрих-коду товара при условии, что оба штрих-кода относятся к одному товару, входящему в каталог из списка ; Отправлять в ФР штрих-код из кода маркировки ; По умолчанию "" ;askForBarcodeFromCatalogs = "" |
" 4607042430633 – штрих-код маркированного товара из БД кассы (входит в каталог 2) 010460704243063321nqmQ&IjzWJ+T*93dGVz – код маркировки, штрих-код из которого есть в БД кассы 2103321055451 – штрих-код маркированного товара из БД с весом 5.545
|
Реализовано только для молочной продукции. |
Маркированный товар может содержать в коде маркировки вес товара. Для получения веса из маркировки, при добавлении товара в чек, необходимо в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в нужной подсекции настроить маску с капчурингом weight
для параметра mask
.
;[MarkedGoods.Milk] ; Маркированное молоко ; Маска для проверки DataMatrix молочной продукции ;mask = "\s*01(?<barcode>[0-9]{14})(21.{13}\s*(17\d{6}|7003\d{10})|21.{6}|21.{8})\s*93.{4}(\s*3103(?<weight>\d{6}))?" |
При сканировании кода маркировки " 0103041094787443215Qbag! 93Zjqw 3103000353 " в чек будет добавлен товар со штрих-кодом 3041094787443 и весом 0.353. После закрытия чека в БД
|
В кассовом ПО Artix реализована возможность настройки разрешенных типов данных для ввода кода маркировки, задается параметром permittedInput
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods
]:
При добавлении в чек маркированного товара:
Наименование | Тип данных | Возможные значения | Описание | Примечания | |||
---|---|---|---|---|---|---|---|
permittedInput | целочисленный |
| Разрешенные типы вводимых данных | По умолчанию разрешены все типы вводимых данных |
[MarkedGoods] ... ; Разрешенные типы вводимых данных ; По умолчанию "" - все типы вводимых данных ;permittedInput = |
При необходимости настройку можно выносить в отдельную подсекцию |
При сторнировании маркированных товаров требуется считывание кода маркировки товара. После сканирования кода маркировки из чека удаляется именно та позиция, данные которой были считаны, независимо от того, какая позиция была выделена при операции сторнирования. При сторнировании всего чека, содержащего маркированные товары, операция выполняется без считывания кодов маркировки.
Возврат маркированных товаров в торговую сеть может быть осуществлен в режиме возврата или возврата по чеку продажи.
В режиме возврата добавление маркированного товара в чек выполняется аналогично добавлению в чек продажи.
При возврате по чеку продажи позицию для возврата можно выбрать одним из способов:
Для возврата маркированных товаров реализована возможность добавления позиции в чек без сканирования кода маркировки, которая определяется параметром addWithoutScanMarkInBackBySale
в конфигурационном файле /linuxcash/cash/conf/ncash.
ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
при добавлении в чек товара для возврата на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить товар без маркировки,false
при добавлении в чек товара для возврата на экран будет выведен диалог сканирования кода маркировки.Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
addWithoutScanMarkInBackBySale | логический |
| Добавлять маркированные товары в чек возврата и в чек возврата по чеку продажи без ввода кода маркировки | По умолчанию false |
[MarkedGoods] ... ; Добавлять маркированные товары в чек возврата по чеку продажи без ввода кода маркировки ; По умолчанию false ;addWithoutScanMarkInBackBySale = false |
Если при возврате по чеку продажи не используется форма выбора товаров, то при переходе к формированию чека возврата маркированные товары удаляются из чека.
Выбор маркированных товаров в форме выбора товара для возврата не может быть отменен. Сторнирование маркированных товаров в этом случае выполняется в режиме формирования чека возврата.
Если при добавлении маркированного товара в чек возврата по чеку продажи код маркировки не использовался, то при сторнировании данной позиции не будет требоваться считывание кода маркировки.
В кассовом ПО Artix реализована возможность задавать вручную значение кода маркировки для товаров, добавленных в чек возврата без ввода кода маркировки. Значение кода маркировки регулируется параметром addWithoutScanMarkMarkingCode
в конфигурационном файле /linuxcash/cash/conf/ncash.
ini.d/markedgoods.ini
в секции [MarkedGoods]
:
Base64
в БД Documents
в таблицу Goodsitem
в поле markingcode
,Documents
в таблицу Goodsitem
в поле markingcode
будет сохраняться код маркировки, указанный в чеке продажи,Если возврат товара был осуществлен с вводом кода маркировки, то независимо от того, что указано в параметре |
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
addWithoutScanMarkMarkingCode | строковый |
| Код маркировки товаров, добавленных в чек возврата без ввода маркировки, который сохраняется в БД в формате Base64 | По умолчанию " " – пустое значение |
[MarkedGoods] ... ; Код маркировки, который сохраняется для товаров, добавленных без ввода маркировки ; По умолчанию "" addWithoutScanMarkMarkingCode = "Пример" |
В БД Documents в таблицу Goodsitem в поле markingcode в данном случае сохранится значение "0J/RgNC40LzQtdGA" ("Пример" в формате Base64 ). |
В кассовом ПО Artix реализована возможность установить ограничения для добавления товара без сканирования кода маркировки в зависимости от роли пользователя. Для этого необходимо:
Активировать плагин проверки ограничений в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/restrictions.ini
в секции [plugins]
с помощью параметра restrictions
.
Наименование | Тип данных | Возможные значения | Описание |
---|---|---|---|
restrictions | строковый |
| Активация плагина проверки ограничений |
Указать роли, для которых разрешено добавление маркированного товара без сканирования кода маркировки. Данное поведение регулируется с помощью параметров addWithoutScanMarkRoles
и addWithoutScanMarkInBackBySaleRoles
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/restrictions.ini
в секции [Restrictions.Card.MarkedGoods]
.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
addWithoutScanMarkRoles | строковый | Список ролей, которым разрешено добавлять маркированный товар без сканирования маркировки | Список задается через запятую. По умолчанию ограничения не заданы |
addWithoutScanMarkInBackBySaleRoles | строковый | Список ролей, которым разрешено добавлять маркированный товар без сканирования маркировки при возврате по чеку продажи |
[plugins] ; Плагин проверки ограничений ;restrictions = off ... ;[Restrictions.MarkedGoods] ; Настройка ограничений при работе с маркированными товарами ; Список ролей, которым разрешено добавлять маркированный товар без сканирования маркировки ; По умолчанию "" ;addWithoutScanMarkRoles = "" ; Список ролей, которым разрешено добавлять маркированный товар без сканирования маркировки ; при возврате по чеку продажи ; По умолчанию "" ;addWithoutScanMarkInBackBySaleRoles = "" |
Регламент работы по проверке кодов маркировки при продаже и возврате по чеку продажи маркированных товаров определяется структурой торговой сети. Проверка кодов маркировки предполагает:
Проверка кода маркировки в проданной продукции на кассе задается параметром checkLocalUniqueness
в конфигурационном файле /linuxcash/cash/conf/
ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
осуществляется проверка в БД Documents
в таблице Goodsitem
на возможность продажи/возврата маркированного товара:false
проверка кода маркировки в проданной продукции не осуществляется.Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
checkLocalUniqueness | логический |
| Проверка кода маркировки в проданной продукции на кассе | По умолчанию true |
[MarkedGoods] ... ; Проверка кода маркировки в проданной продукции на кассе ; По умолчанию true ;checkLocalUniqueness = true |
Проверка кодов маркировки в "белом" списке в БД кассовой программы задается параметром enableMarkVerifyLocal
в конфигурационном файле /linuxcash/cash/conf/
ncash.
ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
проверка кода маркировки осуществляется в БД Dictionaries
в таблице Excisemarkwhite
:false
проверка кода маркировки в "белом" списке не выполняется.Проверка кодов маркировки в "белом" списке на кассе выполняется только при значении параметра |
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
enableMarkVerifyLocal | логический |
| Проверять коды маркировки на кассе | По умолчанию false |
[MarkedGoods] ... ; Проверять коды маркировки на кассе ; По умолчанию false ;enableMarkVerifyLocal = false |
Структура сети с кассовыми серверами позволяет осуществлять контроль:
Настройки подключения к кассовому серверу задаются в конфигурационном файле /linuxcash/cash/conf/ncash.
ini.d/markedgoods.ini
в секции [MarkedGoods]
:
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
enableMarkVerify | логический |
| Проверка кодов маркировки на сервере | По умолчанию false |
markVerifyUrl | строковый | Url сервера проверки кодов маркировки | По умолчанию Для работы с КС используется url " | |
markVerifyTimeout | строковый | Таймаут обращения к серверу проверки кодов маркировки в секундах | По умолчанию 30 | |
ignoreMarkVerifyErrors | логический |
| Игнорировать ошибки обращения к серверу проверки кодов маркировки | По умолчанию true |
skipCheckExciseMark | логический |
| Игнорировать проверку АМ при возврате по чеку (для онлайн-чеков при некорректных АМ) | По умолчанию false |
[MarkedGoods] ... ; Проверка кодов маркировки на сервере ; По умолчанию false ;enableMarkVerify=false ; Игнорировать проверку АМ при возврате по чеку (для онлайн-чеков при некорректных АМ) ; По умолчанию false ;skipCheckExciseMark = false ; Url сервера проверки кодов маркировки ; Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status" ; По умолчанию http://localhost:8080 ;markVerifyUrl=http://localhost:8080 ; Таймаут обращения к серверу проверки кодов маркировки в секундах ; По умолчанию 30 ;markVerifyTimeout=30 ; Игнорировать ошибки обращения к серверу проверки кодов маркировки ; По умолчанию true ;ignoreMarkVerifyErrors=true |
Проверка кодов маркировки на сервере задается при помощи параметра enableMarkVerify
в конфигурационном файле /linuxcash/cash/conf/ncash.
ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
осуществляется проверка кода маркировки на сервере,false
проверка кода маркировки на сервере не выполняется.Подключение к серверу задается в конфигурационном файле /linuxcash/cash/conf/ncash.
ini.d/markedgoods.ini
в секции [MarkedGoods]
параметрами:
markVerifyUrl
– URL кассового сервера,markVerifyTimeout
– таймаут ожидания ответа от кассового сервера при проверке кодов маркировки.Настройками программы можно разрешать или запрещать продажу/возврат маркированных товаров при возникновении ошибок обращения к кассовому серверу. Возможность игнорирования возникающих ошибок определяется параметром ignoreMarkVerifyErrors
в конфигурационном файле /linuxcash/cash/conf/ncash.
ini.d/markedgoods.ini
в секции [MarkedGoods]
:
true
ошибки, возвращаемые кассовым сервером, игнорируются,false
в случае возникновения ошибок при проверке кода маркировки на кассовом сервере продажа/возврат товара не может быть выполнена.Для корректной проверки кодов маркировки на кассовом сервере также необходимо: В настройках Artix Control Center:
|
При добавлении маркированных товаров в чек продажи на кассовый сервер отправляется REST-запрос на получение статуса кода маркировки. Дальнейшее поведение программы определяется полученным статусом.
Статус кода маркировки | Поведение кассы при продаже |
---|---|
Марка не зарегистрирована в БД | Товар с акцизной маркой добавляется в чек и может быть продан |
Товар с такой маркой продан | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был продан" |
Товар с такой маркой возвращен | Товар добавлен в чек и может быть продан |
Марка зарезервирована в чеке продажи | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован" |
Марка снята с резерва в чеке продажи | Товар добавляется в чек и может быть продан |
Марка зарезервирована в чеке возврата (чеке возврата по чеку продажи) | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован" |
Марка снята с резерва в чеке возврата (чеке возврата по чеку продажи) | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был продан" |
Акцизная марка отсутствует в списке разрешенных к продаже | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже" |
Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не передан | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен штрих-код для проверки в белом списке" |
Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найдено | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не найдено соответствие акцизной марки и штрих-кода в белом списке" |
Неизвестный статус акцизной марки | Товар в чек не добавляется, на экран выводится ошибка "Неизвестный статус акцизной марки на сервере" |
После добавления товара в чек продажи/возврата по чеку продажи код маркировки ставится в резерв на кассовом сервере.
Изменение статуса кода маркировки на кассовом сервере в зависимости от операции выполняется:
При необходимости настройки можно переопределить для каждой категории маркированных товаров. Таким образом для каждой подсекции маркированных товаров указываются свои правила поведения. Возможность выделения параметра в отдельную подсекцию указана в таблице:
Наименование настройки | Статус |
---|---|
markedgoods | общая |
addWithoutScanMark | |
skipCheckExciseMark | |
allowNotMatchingBarcodes | |
askForBarcodeFromCatalogs | |
allowChangeQuantity | |
scanMarkInInventory | |
addWithoutScanMarkInBackBySale | |
markScanImage | |
checkBarcodesOneArticle | |
addWithoutScanMarkMarkingCode | |
markVerifyCrptUrl | |
enableMarkVerify | индивидуальная |
markVerifyUrl | |
markVerifyTimeout | |
ignoreMarkVerifyErrors | |
enableMarkVerifyLocal | |
mask | |
checkLocalUniqueness | |
allowUnmarked | |
ignoreCrptStatusValid | |
ignoreCrptStatusVerified | |
ignoreCrptStatusUtilised | |
ignoreCrptStatusRealizable | |
ignoreCrptStatusExpireDate | |
ignoreCrptStatusSold | |
ignoreCrptStatusIsBlocked | |
ignoreCrptStatusFound | |
permittedInput | |
ignoreCrptStatusSold | |
ignoreCrptStatusIsBlocked | |
ignoreCrptStatusFound |
По умолчанию все настройки размещены в секции [MarkedGoods]
. При необходимости все или часть индивидуальных настроек можно вынести в отдельную подсекцию [MarkedGoods.<имя_подсекции>]
. Если в подсекции [MarkedGoods.<имя_подсекции>]
указана только часть индивидуальных настроек, то для остальных настроек будет использовано значение из секции [MarkedGoods]
.
В подсекции |
[plugins] markedgoods = on [MarkedGoods] ; Проверка кодов маркировки на сервере ; По умолчанию false enableMarkVerify = true ; Url сервера проверки кодов маркировки ; Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status" ; По умолчанию http://localhost:8080 markVerifyUrl = http://localhost:8080 ; Таймаут обращения к серверу проверки кодов маркировки в секундах ; По умолчанию 30 markVerifyTimeout = 30 ; Игнорировать ошибки обращения к серверу проверки кодов маркировки ; По умолчанию true ignoreMarkVerifyErrors = true ; Проверять коды маркировки на кассе ; По умолчанию false enableMarkVerifyLocal = false ; Добавлять маркированные товары в чек без ввода кода маркировки ; По умолчанию false addWithoutScanMark = false ; Разрешить несоответствие штрих-кода из DataMatrix линейному штрих-коду товара ; По умолчанию false ;allowNotMatchingBarcodes = true ; Разрешить изменять количество для весового товара ; По умолчанию false ;allowChangeQuantity = true ; Сканирование кода маркировки для документа инвентаризации ; По умолчанию false ;scanMarkInInventory = true ;[MarkedGoods.Milk] ;mask = "\s*01(?<barcode>[0-9]{14})(21.{13}\s*(17\d{6}|7003\d{10})|21.{6}|21.{8})\s*93.{4}(\s*3103(?<weight>\d{6}))?" ; Проверка кодов маркировки на сервере ; По умолчанию false enableMarkVerify = false ; Проверять коды маркировки на кассе ; По умолчанию false enableMarkVerifyLocal = true ; Проверка кода маркировки в проданной продукции на кассе ; По умолчанию true checkLocalUniqueness = true ; Запрашивать линейный штрих-код, если товар входит в каталог из списка ; По умолчанию "" ;askForBarcodeFromCatalogs = "1" ;[MarkedGoods.Camera] ;mask = "01(?<barcode>[0-9]{14})21.{20}\s*91.{4}\s*92.{44}" ; Проверка кодов маркировки на сервере ; По умолчанию false enableMarkVerify = true ; Проверять коды маркировки на кассе ; По умолчанию false enableMarkVerifyLocal = false ; Проверка кода маркировки в проданной продукции на кассе ; По умолчанию true checkLocalUniqueness = false ;[MarkedGoods.Common] ;mask = "01(?<barcode>[0-9]{14})21.{13}\s*91.{4}\s*92.{44}" ; Игнорировать ошибки обращения к серверу проверки кодов маркировки ; По умолчанию true ignoreMarkVerifyErrors = false ; Проверка кода маркировки в проданной продукции на кассе ; По умолчанию true checkLocalUniqueness = false ;[MarkedGoods.Water] ;mask = "01(?<barcode>[0-9]{14})21.{13}\s*93.{4}\s*" |
В кассовом ПО Artix реализован разрешительный режим – обязательная проверка кодов маркировки в системе цифровой маркировки "Честный знак".
|
Обязательная проверка кодов маркировки на сервере системы "Честный знак" задается при помощи параметра enableMarkVerifyCrpt
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
и в подсекциях [MarkedGoods.<имя_подсекции>]
:
true
осуществляется проверка кода маркировки на сервере системы "Честный знак",false
проверка кода маркировки на сервере системы "Честный знак" не осуществляется.Возможность игнорировать ошибки обращения к серверу системы "Честный знак" задается при помощи параметра ignoreMarkVerifyCrptConnectionErrors
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
и в подсекциях [MarkedGoods.<имя_подсекции>]
:
true
ошибки обращения к серверу системы "Честный знак" игнорируются, продажа может быть выполнена,false
в случае возникновения ошибок при проверке кода маркировки на сервере системы "Честный знак" на экран будет выведено сообщение "Не удалось выполнить проверку кода маркировки (Ошибка соединения с сервером)", продажа не может быть выполнена.Возможность запросить подтверждение добавления товара при провале проверки маркировки задается при помощи параметра markVerifyCrptAskConfirmation
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
и в подсекциях [MarkedGoods.<имя_подсекции>]
:
true
на экран будет выведен диалог с сообщением об ошибке: по нажатию клавиши "Ввод" товар будет добавлен в чек, по нажатию клавиши "Отмена" товар не будет добавлен в чек,false
на экран будет выведен диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек.Наименование | Типа данных | Возможные значения | Описание | Примечание |
---|---|---|---|---|
enableMarkVerifyCrpt | логический |
| Проверка кодов маркировки на сервере честного знака | По умолчанию false |
markVerifyCrptUrl | строковый | Url сервера проверки кодов маркировки честного знака | По умолчанию Можно указать несколько значений через запятую | |
markVerifyCrptTimeout | целочисленный | Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах | По умолчанию Минимальное значение, которое можно указать – | |
ignoreMarkVerifyCrptConnectionErrors | логический |
| Игнорировать ошибки обращения к серверу честного знака | По умолчанию true |
markVerifyCrptAskConfirmation | логический |
| Запросить подтверждение добавления товара при провале проверки маркировки | По умолчанию false |
[MarkedGoods] ... ; Проверка кодов маркировки на сервере честного знака ; По умолчанию false ;enableMarkVerifyCrpt = false ; Url сервера проверки кодов маркировки честного знака ; По умолчанию https://cdn.crpt.ru ;markVerifyCrptUrl = https://cdn.crpt.ru ; Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах ; По умолчанию 30 ;markVerifyCrptTimeout = 30 ; Игнорировать ошибки обращения к серверу честного знака ; По умолчанию true ;ignoreMarkVerifyCrptConnectionErrors = true ; Запросить подтверждение добавления товара при провале проверки маркировки ; По умолчанию false ;markVerifyCrptAskConfirmation = false ... |
В кассовом ПО Artix реализована возможность авторизации по токену УОТ (участника оборота товаров) в системе цифровой маркировки "Честный знак". Данная возможность задается при помощи параметра xapikey
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
:
Наименование | Тип данных | Описание | Примечания | ||
---|---|---|---|---|---|
xapikey | строковый | Токен для доступа к серверу честного знака |
|
[MarkedGoods] ... ; Токен для доступа к серверу честного знака ; При использовании нескольких юрлиц задаются токены для отделов: ; xapikey = [<отдел1>:<токен1>],[<отдел2>.<отдел3>:<токен2>] ; При использовании одного юрлица токен задается для отдела -1 ; xapikey = [-1:<токен>] ;xapikey = ... |
Если задан невалидный токен, то будет выведено уведомление "Честный знак: ошибка токена. Чеки будут сформированы некорректно". |
После авторизации по токену УОТ (участника оборота товаров) в момент запуска кассы в системе цифровой маркировки "Честный знак" будет получен список CDN-площадок для осуществления проверки кодов маркировки.
CDN-площадка для проверки кодов маркировки выбирается в порядке приоритета в зависимости от среднего времени ответа, получаемого при запросе статуса CDN-площадок. Самый высокий приоритет имеет CDN-площадка с наименьшим средним временем ответа.
Если соединение с приоритетной CDN-площадкой было потеряно, то данная CDN-площадка будет недоступна для проверки кодов маркировки в течение 15 минут, проверка будет осуществляться в той CDN-площадке, которая следует далее по приоритету.
Если в течение таймаута, заданного в настройке markVerifyCrptTimeout
, ни одна из CDN-площадок из списка не ответила или оказалась недоступна, то товар может быть добавлен в чек без проверки кода маркировки.
Настройки получения информации о CDN-площадках осуществляются в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/crpt.ini
в секции [CRPT
]:
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
getInfoTimeout | целочисленный | Таймаут получения списка CDN-площадок | По умолчанию 10 секунд |
healthCheckTimeout | целочисленный | Таймаут получения состояния CDN-площадки | По умолчанию 10 секунд |
[CRPT] ; Настройки взаимодействия с ЦРПТ ; Таймаут получения списка CDN-площадок ; по умолчанию 10 секунд ;getInfoTimeout = 10 ; Таймаут получения состояния CDN-площадки ; по умолчанию 10 секунд ;healthCheckTimeout = 10 |
При добавлении маркированных товаров в чек продажи на сервер системы "Честный знак" отправляется REST-запрос на получение статуса кода маркировки.
Статус кода маркировки | Поведение кассы при продаже по умолчанию |
---|---|
Товар с некорректным кодом маркировки | Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки некорректен" |
Товар с такой маркой не прошел проверку подлинности | Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не прошел проверку крипто подписи" |
Товар не имеет признака нанесения марки на упаковку | Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. У кода маркировки отсутствует признак нанесения на упаковку" |
Товар с такой маркой продан или снят с продажи | Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не в обороте" |
Товар с такой маркой имеет истекший срок годности | Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки просрочен" |
Код маркировки данного товара выведен из оборота | Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки выведен из оборота" |
Товар с таким кодом маркировки не найден | Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не найден" |
Товар заблокирован одной из CDN-площадок | Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки заблокирован "<CDN-площадкой>" |
В кассовом ПО Artix реализована возможность игнорировать конкретные статусы, получаемые при проверке кода маркировки на сервере системы "Честный знак".
Функционал доступен только при выключенной настройке markVerifyCrptAskConfirmation .
|
Данное поведение задается при помощи параметров, соответствующих полученным статусам, в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
и в подсекциях [MarkedGoods.<имя_подсекции>]
:
deny
в случае возникновения ошибок на экран будет выведен диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек, ask
в случае возникновения ошибок на экран будет выведен диалог с сообщением об ошибке: по нажатию клавиши "Продолжить" товар добавляется в чек, по нажатию клавиши "Отмена" товар не будет добавлен в чек,allow
статус игнорируется, товар будет добавлен в чек.Наименование | Типа данных | Возможные значения | Описание | Примечание |
---|---|---|---|---|
ignoreCrptStatusValid | строковый |
| Игнорировать результат проверки валидности кода маркировки | По умолчанию deny |
ignoreCrptStatusVerified | строковый | Игнорировать результат проверки крипто подписи кода маркировки | ||
ignoreCrptStatusUtilised | строковый | Игнорировать признак нанесения кода маркировки на упаковку | ||
ignoreCrptStatusRealizable | строковый | Игнорировать признак возможности реализации кода маркировки | ||
ignoreCrptStatusExpireDate | строковый | Игнорировать срок годности | ||
ignoreCrptStatusSold | строковый | Игнорировать вывод из оборота | ||
ignoreCrptStatusIsBlocked | строковый | Игнорировать блокировку КМ | ||
ignoreCrptStatusFound | строковый | Игнорировать не найденный КМ |
[MarkedGoods] ... ; Игнорировать получаемые статусы кода маркировки при проверке на сервере честного знака ; Возможные значения: "deny" - запретить продажу товара, если сервер вернул неверный статус, ; "ask" - запросить подтверждение продажи у кассира, ; "allow" - всегда разрешать продажу товара, независимо от получаемого статуса ; По умолчанию "deny" ; Игнорировать результат проверки валидности КМ ;ignoreCrptStatusValid = deny ; Игнорировать результат проверки крипто подписи КМ ;ignoreCrptStatusVerified = deny ; Игнорировать признак нанесения КМ на упаковку ;ignoreCrptStatusUtilised = deny ; Игнорировать признак возможности реализации КМ ;ignoreCrptStatusRealizable = deny ; Игнорировать срок годности ;ignoreCrptStatusExpireDate = deny ; Игнорировать вывод из оборота ;ignoreCrptStatusSold = deny ; Игнорировать блокировку КМ ;ignoreCrptStatusIsBlocked = deny ; Игнорировать не найденный КМ ;ignoreCrptStatusFound = deny ... |
Чтобы добавить проверку кодов маркировки на сервере системы "Честный знак" для заданной категории маркированных товаров, необходимо скопировать данные настройки в подсекцию [MarkedGoods.<имя_подсекции>] в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini и отредактировать их. Если в подсекции [MarkedGoods.<имя_подсекции>] не указаны настройки для проверки кодов на сервере системы "Честный знак", то для нее будут использованы значения настроек из секции [MarkedGoods] . |
Отраслевые реквизиты передаются в ОФД только в чеках продажи. Их заполнение обязательно всеми участниками оборота для тех товарных групп, которые подлежат обязательной проверке в системе цифровой маркировки "Честный знак".
Настройки отраслевых реквизитов задаются в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini
в секции [MarkedGoods]
:
Наименование | Тип данных | Описание | Примечания | |
---|---|---|---|---|
foiv | строковый | Отраслевой реквизит: идентификатор ФОИВ | По умолчанию Указывается идентификатор ФОИВ. Идентификатор ФОИВ – это идентификатор федерального органа исполнительной власти.
Реквизит передается в ОФД в теге 1262 | |
documentDate | строковый | Отраслевой реквизит: дата документа основания (дд.мм.гггг) | По умолчанию Указывается дата документа основания.
Реквизит передается в ОФД в теге 1263 | |
documentNumber | строковый | Отраслевой реквизит: номер документа основания | По умолчанию Указывается номер документа основания.
Реквизит передается в ОФД в теге 1264 |
[MarkedGoods] ... ; Отраслевой реквизит: идентификатор ФОИВ ; По умолчанию "030" ;foiv = 030 ; Отраслевой реквизит: дата документа основания (дд.мм.гггг) ; По умолчанию "21.11.2023" ;documentDate = 21.11.2023 ; Отраслевой реквизит: номер документа основания ; По умолчанию "1944" ;documentNumber = 1944 ... |
Если один из параметров |
По результатам проверки в системе цифровой маркировки "Честный знак" формируется отраслевой реквизит вида " Значения атрибутов подставляются из ответа от сервера системы цифровой маркировки "Честный знак":
|