Введение

В статье описан Актуальный способ подключения фискального регистратора по 54-ФЗ к r_keeper 7.Поддержка всех фискальных регистраторов (ФР) под новый порядок 54-ФЗ в RK7 будет осуществляться на основе "Universal driver for fiscal printers" (UniFR.dll).
По своей сути UniFR является интерфейсом. Работу непосредственно с ФР осуществляет драйвер нижнего уровня.

Принципиальная схема работы: RK7 -> ФР <-> ОФД
Для отправки "Электронного чека" при формировании чека передаётся дополнительный реквизит(почта, телефон).
После оформления чека ФР связывается с ОФД и передаёт данные по чеку. На стороне ОФД эта информация парсится.
В случае если передан реквизит:

  • почта - ОФД отправляет чек на указанную почту
  • телефон - ОФД отправляет СМС.

Настройка драйвера нижнего уровня

Штрих

  • Com Port Number - номер порта RS232
  • Log Level - уровень логирования [0...5]
  • Message language - язык сообщений, совпадает с расширением файла локализации (RUS, LAT, ENG etc...)
  • Communication protocol - протокол обмена old (стандартный), alternative (протокол ККТ 2.0)
  • Connection type - интерфейс подключения
    • COM Port - RS232
    • TCP/IP - TCP сокет (Работает начиная с версии драйвера 7.32.27.0)
  • COMbaud - скорость обмена по интерфейсу RS232
  • TCPaddress - IP адрес интерфейса "TCP сокет" (Работает начиная с версии драйвера 7.32.27.0)
  • TCPport - порт интерфейса "TCP сокет" (Работает начиная с версии драйвера 7.32.27.0)
  • PasswOperat - пароль кассира
  • PasswAdmin - пароль администратора
  • Cut after lines - прокрутка бумаги на N линий перед отрезом
  • DoubleWFont - номер шрифта для печати текста удвоенной ширины
  • DoubleHFont - номер шрифта для печати текста удвоенной высоты
  • OFD Status Warning Timeout - время в секундах до вывода сообщения предупреждающего о том что существует чек не отправленный в ОФД
  • OFD Status Error Timeout - время в секундах до блокирования работы, если чек не отправлен в ОФД.
  • LineLength - максимальная длина строки печати обычным шрифтом
  • BoldLineLength - максимальная длина строки печати жирным шрифтом
  • LogRotateSize - Размер (MB) ограничения лога для ротации. Если размер лога превысит значение этого параметра, то будет произведена ротация лога. Если параметр ноль, то ротация по размеру не производится.
  • LogRotateCount - Количество логов для ротации. Если параметр ноль, то ротация не производится. При ротации логов, лог fpShtr54_0.LOG -> fpShtr54_0.1.LOG; fpShtr54_0.1.LOG -> fpShtr54_0.2.LOG. etc. до LogRotateCount.
  • ReceiptClose8E - По умолчанию 0. Для совместимости с аппаратами не поддерживающими команду FF45h. Если нуль, то при наличия TaxType в Receipt, чек будет закрываться командой FF45h (с СНО), иначе - командой 8Eh (без СНО). Если не нуль, то независимо от наличия TaxType в Receipt, чек будет закрываться командой 8Eh.
  • Fiscal documents format version:
    • FFD version 1.0
    • FFD version 1.05 - включается функционал авансового платежа и передачи ИНН кассира.
    • FFD version 1.1 - not implemented yet

Атол

  • log Level - уровень логирования [0...5]
  • Language of messages - язык сообщений, совпадает с расширением файла локализации (RUS, LAT, ENG etc...)
  • Port name - номер порта RS-232
  • Baud rate - скорость обмена с RS-232
  • System administrator password - пароль системного администратора [0...99999999]
  • InvertDrawerOpened - инверсия сигнала открытия денежного ящика
  • Communication password - пароль связи [0...65535]
  • DisabledTLVTags - По умолчанию пустой. Список номеров тегов, разделённых запятой, которые драйвер не будет пытаться передавать в ФР.
  • UseSectionAs - использование секции:
    • По умолчанию UseSectionAs пустой, в этом случае в байт секции подставляется Department, а в байт налога подставляется TaxRateIndex;
    • Секция - всегда передаётся налог с индексом 0, начисление налогов должно быть настроено для секции в ФР;
    • Индекс налога - передаётся индекс налога в номер секции.
  • Paper width for unfiscal print - ширина нефискальной печати в символах (не миллиметрах ширины бумаги). Если параметр = 0, то теперь драйвер пытается прочитать значение ширины печати из регистра 18h ФР. И только если в регистре 0, тогда ищет ширину печати по известному индексу модели.
  • OFD Status Warning Timeout - время в секундах до вывода сообщения предупреждающего о том что существует чек не отправленный в ОФД
  • OFD Status Error Timeout - время в секундах до блокирования работы, если чек не отправлен в ОФД.
  • LogRotateSize - Размер (MB) ограничения лога для ротации. Если размер лога превысит значение этого параметра, то будет произведена ротация лога. Если параметр ноль, то ротация по размеру не производится.
  • LogRotateCount - Количество логов для ротации. Если параметр ноль, то ротация не производится. При ротации логов, лог fpAtol54_0.LOG -> fpAtol54_0.1.LOG; fpAtol54_0.1.LOG -> fpAtol54_0.2.LOG. etc. до LogRotateCount.
  • FNNotInstalled - Значение по умолчанию 0. Если не 0, то номера SerialNum, LastShiftNum, LastDocNum, LastReceiptNum считываются не из ФН, а из регистров ФР. Нужно обратить внимание, что эти значения могут не совпадать с содержимым ФН и напечатанными значениями на чеке.
  • Fiscal documents format version:
    • FFD version 1.0
    • FFD version 1.05 - включается функционал авансового платежа и передачи ИНН кассира.
    • FFD version 1.1 - not implemented yet
  • Protocol Version
    • 2 - протокол Атол 2.4
    • 3 - протокол Атол 3.0

Атол платформа 5

Используется отдельный драйвер 169 FR Atol DTO10 (Russia) Версия RK7 - должна быть не ниже 7.6.4.391


!!!ВАЖНО!!! Для работы драйвера необходимо в папку из которой запускается касса поместить библиотеку fptr.dll(поставляется с драйверами Атол 5 платформы 10+ версии) 32-разрядной версии, либо указать полный путь до библиотеки в свойствах драйвера.


  • Log Level - уровень логирования [0...5]
  • Log Rotate Size - максимальный размер лога в мегабайтах
  • Log Rotate Count - максимальное количество файлов лога
  • Language of messages - язык сообщений, совпадает с расширением файла локализации (RUS, LAT, ENG etc...)
  • Path to DTO Library - полный путь до библиотеки DTO (fptr.dll) 32 разряда. Поставляется с драйверами Atol 5 платформы
  • Connection Type - тип соединения ФР: BlueTooth, COM, TCP/IP, USB
  • COM Port number - номер порта RS-232
  • COM Port baud rate - скорость обмена с RS-232
  • IP Adress - IP-адрес ФР
  • IP Port - порт TCP ФР
  • MAC Adress - МАК-адрес используется для типа подключения Bluetooth
  • Work without FN module - работать без наличия FN модуля
  • Serial number type - выбор способа генерации серийного номера ФР
  • OFD Status Warning Timeout - время в секундах до вывода сообщения предупреждающего о том что существует чек не отправленный в ОФД
  • OFD Status Error Timeout - время в секундах до блокирования работы, если чек не отправлен в ОФД.
  • OFD Chanel LIB - использование библиотеки fptr.dll для связи с ОФД
  • WEB service Device ID - ID устройства при иcпользовании WEB service Атол


Прим

  • log Level - Уровень логирования
    • 0 - Errors only
    • 1 - External function
    • 2 - All function calls
    • 3 - High level transport
    • 4 - Low level transport
    • 5 - All
  • Com Port Number - номер порта RS232
  • Com Port baudrate - скорость обмена с ФР
  • Message Language - Язык сообщений драйвера
  • Password - пароль доступа
  • Is inverted signal from drawer opened state - Инверсия сигнала с ящика
  • OFD unsending hours for error - время в часах до блокирования работы, если чек не отправлен в ОФД.
  • OFD unsending hours for warining- время в часах до вывода сообщения предупреждающего о том что существует чек не отправленный в ОФД
  • Multiple tax type - Несколько СНО: 0 - Одна, 1 - Несколько. При 0 всегда передается СНО по умолчанию.
  • Fiscal documents format version:
    • FFD version 1.0
    • FFD version 1.05 - включается функционал авансового платежа и передачи ИНН кассира.
    • FFD version 1.1 - not implemented yet


Версия прошивки прима должна быть не ниже 59




Спарк


<?xml version="1.0" encoding="utf-8"?>
<xmlConfig>
  <Parameters>
    <LogLevel>5</LogLevel>
    <LogRotateSize>1</LogRotateSize>
    <LogRotateCount>5</LogRotateCount>
    <MsgLanguage>ENG</MsgLanguage>
    <PasswKKT>111111</PasswKKT>
    <PasswCachier>11111</PasswCachier>
    <TCPaddress>127.0.0.1</TCPaddress>
    <TCPport>7200</TCPport>
    <PhysicalLayer>TCP</PhysicalLayer>
    <COMnum>2</COMnum>
    <COMspeed>9600</COMspeed>        
    <OFDStatusUnsendWarningTime>0</OFDStatusUnsendWarningTime>
    <OFDStatusUnsendErrorTime>0</OFDStatusUnsendErrorTime>
  </Parameters>
</xmlConfig>


  • Log Level - уровень логирования [0...5]
  • LogRotateSize - Размер (MB) ограничения лога для ротации. Если размер лога превысит значение этого параметра, то будет произведена ротация лога. Если параметр ноль, то ротация по размеру не производится.
  • LogRotateCount - Количество логов для ротации. Если параметр ноль, то ротация не производится. При ротации логов, лог fpAtol54_0.LOG -> fpAtol54_0.1.LOG; fpAtol54_0.1.LOG -> fpAtol54_0.2.LOG. etc. до LogRotateCount.
  • Language of messages - язык сообщений, совпадает с расширением файла локализации (RUS, LAT, ENG etc...)
  • PasswKKT - пароль доступа к ФР
  • PasswCachier - пароль кассира
  • PhysicalLayer - протокол связи
  • COMnum - номер порта RS232
  • COMspeed - скорость обмена с ФР.
  • TCPaddress - адрес sparksrv
  • TCPport - порт sparksrv
  • OFD Status Warning Timeout - время в секундах до вывода сообщения предупреждающего о том что существует чек не отправленный в ОФД
  • OFD Status Error Timeout - время в секундах до блокирования работы, если чек не отправлен в ОФД.


FR Pirit 54

<?xml version="1.0" encoding="UTF-8"?>
<xmlConfig>
    <Parameters>
        <LogLevel>5</LogLevel>
        <LogRotateSize>10</LogRotateSize>
        <LogRotateCount>1</LogRotateCount>
        <MsgLanguage>ENG</MsgLanguage>
        <COMnum>1</COMnum>
        <BaudRate>57600</BaudRate>
        <Password>PIRI</Password>
        <OFDunSendErr>240</OFDunSendErr>
        <OFDunSendWrn>1</OFDunSendWrn>
                <FFDversion>0</FFDversion>
    </Parameters>
</xmlConfig>
  • LogLevel - уровень логирования [0...5]
  • LogRotateSize - Размер (MB) ограничения лога для ротации. Если размер лога превысит значение этого параметра, то будет произведена ротация лога. Если параметр ноль, то ротация по размеру не производится.
  • LogRotateCount - Количество логов для ротации. Если параметр ноль, то ротация не производится. При ротации логов, лог fpAtol54_0.LOG -> fpAtol54_0.1.LOG; fpAtol54_0.1.LOG -> fpAtol54_0.2.LOG. etc. до LogRotateCount.
  • MsgLanguage - язык сообщений, совпадает с расширением файла локализации (RUS, LAT, ENG etc...)
  • COMnum - номер порта RS232
  • BaudRate - скорость обмена с ФР.
  • Password - пароль доступа к ФР.
  • OFDunSendErr - время в часах до вывода сообщения предупреждающего о том что существует чек не отправленный в ОФД. 0 - не проверять.
  • OFDunSendWrn - время в часах до блокирования работы, если чек не отправлен в ОФД. 0 - не проверять.
  • FFDversion - версия ФФД (формат фискальных данных) Fiscal documents format version:
    • FFD version 0 - ФФД 1.0
    • FFD version 1 - ФФД 1.5 - включается функционал авансового платежа и передачи ИНН кассира.
    • FFD version 1.1 - not implemented yet
Некоторые ФР возвращают только дату в запросе статуса, лучше выставлять значения OFDunSendErr/Wrn более 24



Настройка фискальных типов валют

Необходимо указать фискальные типы для различных валют в данном ФР.
В свойствах групп валют и валют справочника "Деньги" - "Валюты" в группе "Фискальные типы" появится свойство с наименованием используемого ФР: необходимо установить соответствие между типом валюты и её фискальным типом в фискальном регистраторе используемой модели.

Добавление кнопки "Электронный чек"

В случае если у вас автоматически не появилась кнопка "Электронный чек" - необходимо добавить её в селектор вручную:

  • Настройки - графический интерфейс - селекторы

  • Выясняем какой селектор сейчас используется (Быстрый чек: селектор, Чек: селектор)

  • Копируем селектор

  • Вставляем с подэлементами

  • Добавляем drag&drop функциональную клавишу "Пользов. свойства" в скопированный селектор.

Если клавиши "Пользов. свойства" нет в Настройки - Графический интерфейс - Функциональные клавиши в группе [Функц. Дизайн Функциональные клавиши] - [ФД Операции с заказом] - [ФД Селектор операций], сделать поиск по всем кнопкам, она может находиться в других разделах

  • Как переименовать кнопку селектора?
  • Открываем макет селектора
  • Находим место куда хотим вставить кнопку
  • Вставляем кнопку
  • Выравниваем
  • Настраиваем цвет
  • Переименовываем

  • Добавляем новый селектор в использование

  • Перезагружаем кассу, проверяем

  • Форма для ввода реквизитов Почта, Телефон


Работа с несколькими системами налогообложения

НомерТип системы налогообложенияФормат на печатной форме
0ОбщаяОСН
1Упрощенная доходУСН доход
2Упрощенная доход минус расходУСН доход - расход
3Единый налог на вмененный доходЕНВД
4Единый сельскохозяйственный налогЕСН
5Патентная система налогообложенияПатент
  • Использование нескольких СНО реализовано начиная с версии 7.5.8.31
  • Все настройки касающиеся налогов, применяются только к закрытой смене.


Покупатель в чеке: ООО, ИНН.

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

  • Включить параметр UseInvoice

  • Использовать драйвер нижнего уровня который возвращает опцию "foFiscInvoice"
    • посмотреть можно в логе UniFR foFiscInvoice:


Необходимо найти что-то подобное

{GetFiscRegOptions} sOptions = (foText, foDeleteReceipt, foZReport, foMoneyInOut, foXReport, foSpecialReport,
foProgram, foTextInReceipt, foBarCodeInNotFisc, foItemDepartments, foDrawerOpen, foDrawerState, foCalcChange,
foFiscInvoice, foCashRegValue, foDeleteReturn, foCorrectPriceToPay, foRoundDiscountOnly, foCorrectionReceipt, foOpenShiftReport)
CODE


  • При оплате нажать кнопку счёт-фактура

  • Заполнить или выполнить поиск

  • Оплатить.
Важно: Данные по клиентам сохраняются .../midbase/Entity.UDB при закрытии смены они синхронизируются с .../base/entitydb.abs. Синхронизация с ref -> mid происходит тоже при закрытии смены!

Настройка фискальных типов налогов

Необходимо указать фискальные типы для различных налогов в данном ФР.
В свойствах налоговых ставок справочника "Деньги" - "Налоги" в группе "Фискальные типы" появится свойство с наименованием используемого ФР: необходимо установить соответствие между номером налога и индексом налога в фискальном регистраторе используемой модели.

Связь с ОФД

За всю передачу данных в ОФД отвечает ФР.

Ограничения

Запрещено использовать настройку на макете чека "Только сумму" поскольку в ОФД необходимо передавать все позиции.
Запрещено использовать настройку на макете чека "Использовать альт. название" если не заполнены альтернативные названия.


Полезная информация


ЕСЛИ В МАКЕТЕ НЕ ВЫБРАН ЧЕКБОКС - ПЕЧАТАТЬ НАЛОГИ, ТО УНИВЕРСАЛЬНЫЙ ДРАЙВЕР БУДЕТ ИСКАТЬ ПЕРВУЮ СТАВКУ НАЛОГА РАВНУЮ 0 И ИСПОЛЬЗОВАТЬ ЕЁ!!




Диагностика проблем

1) Собрать логи

Если ошибка воспроизводится для диагностики необходимо:

  • Включить максимальное логирование.
    • UniFR: logLevel=All
    • fpAtol54: Log Level = Всё
    • fpShtr54: Log Level = Talkative
    • fpRus_Prim08F.dll: Log Level = 5
    • fpSpark54.dll: LogLevel = 5
    • fpMercury.dll: Log LEvel 6. OSFUNC
  • Файлы логов:
    • UniFR.dll: UniFR.log
    • fpAtol54.dll: fpAtol54.log
    • fpShtr54.dll: fpShtr54.log
    • fpRus_Prim08F.dll: fpRUS_PRIM08F_0.LOG
    • fpSpark54.dll: fpSpark54_xx.log
    • fpMercury.dll: fpMercury_xx.LOG
  • В случае если ошибка воспроизводится:
    • удалить предыдущие логи
    • воспроизвести ошибку с новым уровнем логирования
    • приложить файлы к задаче

Если ошибка не воспроизводится:

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

2) По шагам описать как получить ошибку

3) Приложить скриншот ошибки

4) В логах должен быть зафиксирован старт драйвера. Там указывается его версия.


Тег 1162 - Код товара

Информация, включаемая в реквизитЗнач. байта 0 реквизита в ЭФЗнач. байта 1 реквизита в ЭФЗначение реквизита начиная с байта 2 в ЭФЗаголовок реквизита в ПФЗначение реквизита в ПФПримечания
Код товара, который не распознан00h00hМассив информации, считанный со штрихового кода товара, в виде бинарной последовательности с младшими битами справа. Если длина массива превосходит 30 байт, то последовательность обрезается до длины 30 байт слева. Длина массива до 30 байтне печатаетсяне печатается1, 2
Код товара в формате EAN-8, UPC-E45h08hМассив информации, содержащий значение кода товара в кодировке EAN-8, представленное в формате ASCII. Длина массива 10 байтне печатаетсяне печатается1, 3
Код товара в формате EAN-13, UPC-A45h0DhМассив информации, содержащий значение кода товара в кодировке EAN-13, представленное в формате ASCII. Длина массива 15 байтне печатаетсяне печатается1, 4
Код товара в формате ITF-1449h0EhМассив информации, содержащий значение кода товара в кодировке ITF-14, представленное в формате ASCII. Длина массива 16 байтне печатаетсяне печатается1, 5
Код товара в формате GS1 Data Matrix или Data Matrix маркировки44h4DhМассив информации, содержащий в кодировке ASCII последовательность следующего вида: идентификатор применения <значение идентификатора применения без кода проверки. В указанный массив информации должны включаться код вида товара GTIN (идентификатор применения 01) и серийный номер (идентификатор применения 21). Длина массива до 30 байтне печатается[М]1, 6, 7
Код товара средства идентификации мехового изделия52h46hМассив информации, содержащий 20 буквенно-цифровых знаков кода идентификации мехового изделия в кодировке ASCII. Длина массива 20 байтне печатается[М]1, 8
Код товара в кодировке ЕГАИС 2.0 в формате PDF417C5h14hМассив информации, содержащий значения символов с 9-го по 31-й из 68-символьной последовательности кода ЕГАИС 2.0 в кодировке ASCII. Длина массива 25 байтне печатается[М]1, 9
Код товара в кодировке ЕГАИС 3.0 в формате Data MatrixC5h1EhМассив информации, содержащий значения символов с 1-го по 14-й из 150-символьной последовательности кода ЕГАИС 3.0 в кодировке ASCII. Длина массива 16 байтне печатается[М]1, 10




Примечание

  1. Распознавание информации, содержащейся в штриховом коде товара, может осуществляться средствами, не входящими в состав ККТ, и способами, отличающимися от способов, указанных в пунктах 2 - 10 настоящих примечаний, при этом распознанный результат не должен противоречить результатам, указанным в пунктах 2 - 10 настоящих примечаний.
  2. В случае нераспознанного кода товара в значение реквизита "код товара" (тег 1162) записываются только первые 30 байт от значения нераспознанного кода товара.
    В случае если код товара отсутствует или код товара пустой, в значение реквизита "код товара" (тег 1162) записывается "00h 00h".
  3. В случае если длина считанной последовательности данных равна 8 символам и последовательность символов состоит из цифр согласно формату ЦЦЦЦЦЦЦЦ, то проверяется контрольная сумма по правилам формирования кода EAN-8. Если код определен как EAN-8, то значение реквизита "код товара" (тег 1162) формируется из реквизита классификатора типов идентификаторов (первые два байта реквизита "код товара" (тег 1162) принимают значение "45h 08h") и переданной последовательности данных, дополненной лидирующими нулями (нулями слева) до 6 байт, сформированных по правилам перевода числа из десятичной системы исчисления в шестнадцатеричную систему исчисления.
    Пример:
    1. Считанная последовательность: 46198488.
    2. Значение реквизита "код товара" (тег 1162): 45 08 00 00 02 C0 EE D8.
  4. В случае если длина считанной последовательности данных равна 13 символам и последовательность символов состоит из цифр согласно формату ЦЦЦЦЦЦЦЦЦЦЦЦЦ, то проверяется контрольная сумма по правилам формирования кода EAN-13. Если код определен как EAN-13, то значение реквизита "код товара" (тег 1162) формируется из реквизита классификатора типов идентификаторов (первые два байта реквизита "код товара" (тег 1162) принимают значение "45h 0Dh") и переданной последовательности данных, дополненной лидирующими нулями (нулями слева) до 6 байт, сформированных по правилам перевода числа из десятичной системы исчисления в шестнадцатеричную систему.
    Пример:
    1. Считанная последовательность: 4606203090785.
    2. Значение реквизита "код товара" (тег 1162): 45 0D 04 30 77 19 57 61.
  5. В случае если длина считанной последовательности данных равна 14 символам и последовательность символов состоит из цифр согласно формату ЦЦЦЦЦЦЦЦЦЦЦЦЦЦ, то проверяется контрольная сумма по правилам формирования кода ITF-14. Если код определен как ITF-14, то значение реквизита "код товара" (тег 1162) формируется из реквизита классификатора типов идентификаторов (первые два байта реквизита "код товара" (тег 1162) принимают значение "49h 09h") и переданной последовательности данных, дополненной лидирующими нулями (нулями слева) до 6 байт, сформированных по правилам перевода числа из десятичной системы исчисления в шестнадцатеричную систему.
    Пример:
    1. Считанная последовательность: 14601234567890.
    2. Значение реквизита "код товара" (тег 1162): 49 0E 0D 47 9D 66 52 D2.
  6. В случае если длина считанной последовательности данных не соответствует длине 8, 13 или 14 символов и последовательность символов состоит из строчных и прописных латинских букв, цифр и символов-разделителей "!"%&'()*+-.,/:;=<>?", то проверяется состав считанной последовательности на наличие идентификаторов применения (AI) по стандарту GS1. Если код определен как GS1 и содержит в себе идентификаторы применения "01" (идентификационный номер единицы товара) и "21" (серийный номер), то значение реквизита "код товара" (тег 1162) формируется из классификатора "Тип идентификатора товара" (первые два байта реквизита "код товара" (тег 1162) принимают значение "44h 4Dh") и идентификаторов применения "01" (идентификационный номер единицы товара) и "21" (серийный номер) из считанной последовательности данных. Идентификатор применения "01" (идентификационный номер единицы товара) формируется по правилам перевода числа из десятичной системы исчисления в шестнадцатеричную систему исчисления, дополненной лидирующими нулями (нулями слева) до 6 байт. Идентификатор применения "21" (серийный номер) формируется по правилам интерпретации ASCII в hex.
    Если в считанной последовательности по стандарту GS1 содержится дополнительный идентификатор применения "8005" (цена единицы измерения товара), то данный идентификатор применения дополняет последовательность значения реквизита "код товара" (тег 1162) за идентификатором применения "21" (серийный номер). Реквизит идентификатора применения "8005" (цена единицы измерения товара) формируется по правилам интерпретации ASCII в hex.
    1. Пример 1:
      1. Считанная бинарная последовательность: 010460043993125621JgXJ5.T\u001d8005112000\u001d930001\u001d923zbrLA==\u001d24014276281.
      2. Выделенная последовательность для передачи в значение реквизита "код товара" (тег 1162): 04600439931256 & JgXJ5.T & 112000.
      3. 04600439931256 - представляется в виде 6-байтного hex: 04h 2Fh lFh 96h 81h 78h.
      4. JgXJ5.T - кодируется в набор байт hex, интерпретируя символы согласно ASCII таблицы: 4Ah 67h 58h 4Ah 35h 2Eh 54h.
      5. 112000 - кодируется в набор байт hex, интерпретируя символы согласно ASCII таблицы: 31h 31h 32h 30h 30h 30h.
      6. Значение реквизита "код товара" (тег 1162): 44h 4Dh 04h 2Fh 1Fh 96h 81h 78h 4Ah 67h 58h 4Ah 35h 2Eh 54h 31h 31h 32h 30h 30h 30h.
    2. Пример 2:
      1. Считанная бинарная последовательность: 010460406000600021N4N57RSCBUZTQ\u001d2403004002910161218\u001d1724010191ffd0\u001d92tIAF/YVoU4roQS3M/m4z78yFq0fc/WsSmLeX5QkF/YVWwy8IMYAeiQ91Xa2z/fFSJcOkb2N+uUUmfr4n0mOX0Q==.
      2. Выделенная последовательность для передачи в значение тега 1162: 04604060006000 & N4N57RSCBUZTQ.
      3. 04604060006000 - представляется в виде 6-байтного hex: 04h 2Fh F7h 5Ch 76h 70h.
      4. N4N57RSCBUZTQ - кодируется в набор байт hex, интерпретируя символы согласно ASCII таблицы: 4Eh 34h 4Eh 35h 37h 52h 53h 43h 42h 55h 5Ah 54h 51h.
      5. Значение реквизита "код товара" (тег 1162): 44h 4Dh 04h 2Fh F7h 5Ch 76h 70h 4Eh 34h 4Eh 35h 37h 52h 53h 43h 42h 55h 5Ah 54h 51h.
  7. В случае если длина считанной последовательности данных равна 29 символам и последовательность символов состоит из строчных и прописных латинских букв, цифр и символов-разделителей "!"%&'()*+-.,/:;=<>?" и не содержит наличие идентификаторов применения (AI) по стандарту GS1, то значение реквизита "код товара" (тег 1162) формируется из классификатора типов идентификаторов (первые два байта реквизита "код товара" (тег 1162) принимают значение "44h 4Dh") и переданной последовательности данных, сформированных по следующим правилам перевода:
    Первые 14 символов считанной последовательности формируются по правилам перевода числа из десятичной системы исчисления в шестнадцатеричную систему исчисления, дополненной лидирующими нулями (нулями слева) до 6 байт. Последующие 11 символов считанной последовательности формируются по правилам интерпретации ASCII в hex дополненной знаками "20h" в конце (пробелами справа) до 13 байт.
    Пример:
    1. Считанная бинарная последовательность: 00000046198488X?io+qCABm8wAYa.
    2. Выделенная последовательность для передачи в значение реквизита "код товара" (тег 1162): 00000046198488 & X?io+qCABm8.
    3. 00000046198488 - представляется в виде 6-байтного hex: 00h 00h 02h C0h EEh D8h.
    4. X?io+qCABm8 - кодируется в набор байт hex, интерпретируя символы согласно ASCII таблицы: 58h 3Fh 69h 6Fh 2Bh 71h 43h 41h 42h 6Dh 38h 20h 20h.
    5. Значение реквизита "код товара" (тег 1162): 44h 4Dh 00h 00h 02h C0h EEh D8h 58h 3Fh 69h 6Fh 2Bh 71h 43h 41h 42h 6Dh 38h 20h 20h.
  8. В случае если длина считанной последовательности данных равна 20 символам и последовательность символов состоит из прописных латинских букв, цифр и символа-разделителя "-", то проверяется формат содержания считанной последовательности на шаблон СС-ЦЦЦЦЦЦ-СССССССССС. Если код соответствует шаблону, то значение реквизита "код товара" (тег 1162) формируется из классификатора типов идентификаторов (первые два байта реквизита "код товара" (тег 1162) принимают значение "52h 46h") и переданной последовательности данных сформированной по правилам интерпретации ASCII в hex.
    Пример:
    1. Считанная последовательность: RU-401301-AAA0277031.
    2. Выделенная последовательность для передачи в значение реквизита "код товара" (тег 1162): RU-401301-AAA0277031.
    3. RU-401301-AAA0277031 - кодируется в набор байт hex, интерпретируя символы согласно ASCII таблицы: 52h 55h 2Dh 34h 30h 31h 33h 30h 31h 2dh 41h 41h 41h 30h 32h 37h 37h 30h 33h 31h.
    4. Значение реквизита "код товара" (тег 1162): 52h 46h 52h 55h 2Dh 34h 30h 31h 33h 30h 31h 2dh 41h 41h 41h 30h 32h 37h 37h 30h 33h 31h.
  9. В случае если длина считанной последовательности данных равна 68 символам и последовательность символов состоит из прописных латинских букв и цифр и не содержит наличие идентификаторов применения (AI) по стандарту GS1, то значение реквизита "код товара" (тег 1162) формируется из классификатора типов идентификаторов (первые два байта реквизита "код товара" (тег 1162) принимают значение "C5h 14h") и переданной последовательности данных начиная с 9 символа по 31 символ включительно, сформированной по правилам интерпретации ASCII в hex.
    Пример:
    1. Считанная последовательность: 22N00002NU5DBKYDOT17ID980726019019608CW1A4XR5EJ7JKFX50FHHGV92ZR2GZRZ.
    2. Выделенная последовательность для передачи в значение реквизита "код товара" (тег 1162): NU5DBKYDOT17ID980726019.
    3. NU5DBKYDOT17ID980726019 - кодируется в набор байт hex, интерпретируя символы согласно ASCII таблицы: 4Eh 55h 35h 44h 42h 4Bh 59h 44h 4Fh 54h 31h 37h 49h 44h 39h 38h 30h 37h 32h 36h 30h 31h 39h.
    4. Значение реквизита "код товара" (тег 1162): C5h 14h 4Eh 55h 35h 44h 42h 4Bh 59h 44h 4Fh 54h 31h 37h 49h 44h 39h 38h 30h 37h 32h 36h 30h 31h 39h.
  10. В случае если длина считанной последовательности данных равна 150 символам и последовательность символов состоит из прописных латинских букв и цифр и не содержит наличие идентификаторов применения (AI) по стандарту GS1, то значение реквизита "код товара" (тег 1162) формируется из классификатора типов идентификаторов (первые два байта реквизита "код товара" (тег 1162) принимают значение "C5h 1Eh") и переданной последовательности данных начиная с 1 символа по 14 символ включительно, сформированной по правилам интерпретации ASCII в hex.
    Пример:
    1. Считанная последовательность:
      136222000058810918QWERDFEWT5123456YGHFDSWERT56YUIJHGFDSAERTYUIOKJ8HGFVCXZSDLKJHGFDSAOIPLMNBGHJYTRDFGHJKIREWSDFGHJIOIUTDWQASDFRETYUIUYGTREDFG HUYTREWQWE.
    2. Выделенная последовательность для передачи в значение реквизита "код товара" (тег 1162): 13622200005881.
    3. 13622200005881 - кодируется в набор байт hex, интерпретируя символы согласно ASCII таблицы: 31h 33h 36h 32h 32h 32h 30h 30h 30h 30h 35h 38h 38h 31h.
    4. Значение реквизита "код товара" (тег 1162): C5h 1Eh 31h 33h 36h 32h 32h 32h 30h 30h 30h 30h 35h 38h 38h 31h.

fpAtolDTO Налоги

0 - none - налогом не облагается
1 - vat0 - НДС 0%
2 - vat10 - НДС 10%
3 - vat18 - НДС 18%
4 - vat110 - НДС 10/110
5 - vat118 - НДС 18/118
6 - vat20 - НДС 20%
7 - vat120 - НДС 20/120