В кассовом По Artix реализована возможность передачи кодов маркировок (СИ и УКЗ) в ПКС "iKassa".

  • СИ (средство идентификации) - код маркировки в машиночитаемой форме, представленный в виде штрихового кода,
  • УКЗ (унифицированный контрольный знак) – документ с определенной степенью защиты, предназначенный для маркировки товаров.


Пакет tsrv устарел, его использование возможно до конца декабря 2024.


Для корректной работы маркировок необходимо использовать новый пакет tsrv-marking и новый токен. Подробнее об этом можно прочитать в разделе "ПКС «iKassa»".


Для передачи КМ необходимо, чтобы модуль маркированных товаров markedgoods был активирован в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini в секции [plugins]. Подробнее об этом можно прочитать в разделе "Реализация маркированных товаров".

Передача маркировки СИ

Данный способ используется для добавления в чек товара только с маркировкой СИ, если в БД Dictionaries таблице Tmc для поля op_mode не заданы значения 2097152 и 4194304.

Для передачи маркировки СИ в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini должны быть настроены соответствующие подсекции. Подробнее об этом можно прочитать в разделе "Реализация маркированных товаров".

Добавление в чек товара с маркировкой СИ возможно следующими способами:

Передача маркировки УКЗ

  • Для добавления товара только с маркировкой УКЗ в БД Dictionaries таблице Tmc для поля op_mode необходимо задать значение 4194304.
  • При закрытии чеков продажи и возврата код маркировки УКЗ для добавленных позиций сохраняются в БД Documents таблице Goodsitem в поле excisemark.

Для передачи маркировки УКЗ необходимо добавить подсекцию [MarkedGoods.Ukz] в конфигурационный файл /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini:

Настройки в подсекции являются скрытыми, необходимо прописать их вручную.


[MarkedGoods.Ukz]
; Товары с унифицированными контрольными знаками (Республика Беларусь)
 
; Товары являются товарами с унифицированными контрольными знаками
ukz = true

; Маска для проверки УКЗ
mask = "01([0-9]{14})21([0-9]{9})([a-zA-Z]{3})"

Добавление в чек товара с маркировкой УКЗ возможно двумя способами:

Сканирование одной маркировки

Параметр separateMarks необходимо добавить в файл вручную.

Порядок сканирования одной маркировки СИ или УКЗ определяется параметром separateMarks в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/markedgoods.ini в секции [MarkedGoods.Ukz]:

НаименованиеТип данныхВозможные значенияОписаниеПримечания
separateMarksлогический
  • true
  • false
Включает разделение обработки марок СИ и УКЗПо умолчанию false


[MarkedGoods.Ukz]

; Включает разделение обработки марок СИ и УКЗ
; По умолчанию false
;separateMarks = false

Добавление товаров с двумя видами маркировки

  • Для добавления товаров с двумя видами маркировки в БД Dictionaries таблице Tmc для поля op_mode необходимо задать значение 2097152.
  • При закрытии чека продажи коды маркировки для добавленных позиций сохраняются в БД Documents таблице Goodsitem:
    • СИ – в поле excisemark,
    • УКЗ – в поле additionalexcisemark.

Добавление в чек товара с двумя видами маркировки возможно следующими способами:

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

Для добавления товаров с двумя маркировками в чек возврата по чеку продажи достаточно отсканировать одну из маркировок – СИ или УКЗ. 

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

Добавление товара в чек возврата без сканирования кода маркировки

При закрытии чека возврата по чеку продажи для добавленных позиций в БД Documents таблице Stornogoodsitem сохраняются:

  • код маркировки СИ или УКЗ – в поле excisemark (если не было пропущено сканирование),
  • код маркировки УКЗ – в поле additionalexcisemark (если были отсканированы оба кода маркировки – СИ и УКЗ),
  • код маркировки до любых преобразований – в поле markingcode (сохраняется всегда).

В кассовом ПО реализована возможность пропускать сканирование кодов маркировок в чеке возврата по чеку продажи и в режиме возврата (отображается кнопка "Без маркировки"). Для этого необходимо вручную добавить и включить параметр skipScanMarksInBackBySale в конфигурационном файле /linuxcash/cash/conf/ncash. ini.d/markedgoods.ini в секцию [MarkedGoods.Ukz]:

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


[MarkedGoods.Ukz]
...
; Пропускать сканирование кодов маркировок в чеке возврата по чеку продажи
skipScanMarksInBackBySale = true


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

Преобразование NTIN в GTIN для весовых товаров

Для немаркированного весового товара с заданным кодом национального классификатора могут быть применены правила преобразования строки NTIN в GTIN.

Данное поведение может быть задано в конфигурационном файле ФР параметром normalizedGtinEnabled и по умолчанию false.

Подробнее о настройке через конфигурационные файлы можно прочитать в разделе "Создание устройств".

НаименованиеТип данныхВозможные значенияОписаниеПримечания

normalizedGtinEnabled

логический
  • true
  • false
Применить правила преобразования строки NTIN в GTIN

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

Правила преобразования строки, если значение NTIN:

Если NTIN не соответствует ни одному из правил, то строка будет преобразована в соответствии с правилами для штучного товара.

Преобразованный в соответствии с правилами для преобразования весового товара NTIN передается через параметр code.gtin при закрытии чека.

Преобразование весовой маркированной фискальной позиции

Преобразование весовой маркированной фискальной позиции производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/fr.ini в секции [HW.FR.TransformPosition].

НаименованиеТип данныхОписаниеПримечания

frUnit

строковыйМера количества предмета расчета преобразованной позиции

По умолчанию задается значение поля frunit в БД Dictionaries таблицы Units 

frPositionMask

строковыйФормат печати наименования позиции в чеке

По умолчанию "%(frposition.name[s]) %(position.bquant[.3f]) %(position.unitName[s])"


;[HW.FR.TransformPosition]
;
; Преобразование весовой маркированной(только markedgoods и markedgoodsukz) фискальной позиции
;

; Мера количества предмета расчёта преобразованной позиции
; По умолчанию не задан, берётся значение из БД(dictionaries.units.frunit)
;frUnit =

; Формат печати наименования позиции в чеке
; По умолчанию "%(frposition.name[s]) %(position.bquant[.3f]) %(position.unitName[s])"
;frPositionMask = "%(frposition.name[s]) %(position.bquant[.3f]) %(position.unitName[s])"


Пусть необходимо настроить преобразование весовой маркированной фискальной позиции таким образом, чтобы в ФР передавалось:

наименование позиции = наименование товара + количество(вес) + единица измерения

В этом случае в настройках необходимо задать:

[HW.FR.TransformPosition]
frPositionMask = "%(frposition.name[s]) %(position.bquant[.3f]) %(position.unitName[s])"

Например, в чеке позиция с весовым товаром:

  1. СЫР ПЛАВЛЕНЫЙ 1.670 кг * 42.50 р = 70.98 

В ФР передается наименование позиции:

СЫР ПЛАВЛЕНЫЙ  1.670 кг