Начиная с версии 4.6.275 пакет fiscaldriveapi был обновлен. После обновления необходимо перезагрузить кассу или перезапустить сервис.
Передача данных на сервер ОФД Узбекистана обеспечивается сервисом fiscaldriveapi (Программное обеспечение виртуальной кассы ARTIX версии 4.6.228-5349, Узбекистан).
Установка сервиса
Для обеспечения передачи данных на сервер ОФД Узбекистана необходимо установить пакет fiscaldriveapi с помощью команды:
aptitude install fiscaldriveapi
Подключение фискального модуля
Для подключения фискального модуля необходимо:
Получить список подключенных USB-устройств, выполнив команду:
lsusb
Найти в списке подключенных USB-устройств токен
Feitian:Скопировать значения VID:PID и наименование: "VID=096e, PID=080f, наименование – Feitian Technologies, Inc".
- Внести скопированные данные в файл
/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist:- в конец секции
[ifdVendorID]добавить значение VID, - в конец секции
[ifdProductID]добавить значение PID, - в конец секции
[ifdFriendlyName]добавить наименование токена.
- в конец секции
- Перезапустить кассовую программу.
Настройка сервиса
Параметры подключения к серверу ОФД Узбекистана настраиваются в конфигурационном файле /linuxcash/cash/fiscaldriveapi/config.ini в секции [smartcard]:
| Секция | Наименование | Тип данных | Описание |
|---|---|---|---|
| smartcard | factory_id | числовой | Идентификатор фискального модуля (ФМ) |
Для параметра
необходимо указать значение. Для определения значения перейдите в директорию установки factory_id fiscaldriveapi и выполните команду:
./fiscal-drive-api -op list
Результат выполнения команды является значением для параметра
, необходимо записать его в конфигурационный файл:factory_id
[smartcard] factory_id= ...
Подключение принтера чеков и настройка драйвера
Для настройки драйвера "Программное обеспечение виртуальной кассы ARTIX версии 4.6.228-5349, Узбекистан" в Сервисном меню через Менеджер оборудования необходимо:
- Подключить принтер чеков:
- Добавить драйвер "Программное обеспечение виртуальной кассы ARTIX версии 4.6.228-5349, Узбекистан":
- Настроить параметры драйвера:
- Номер ФР – порядковый номер ККМ.
- ФР – указывается ранее подключенный принтер чеков.
Адрес – адрес сервера ОФД. Указывается значение вида
http://<ip>:<port>/rpc/api, гдеipиportберутся из конфигурационного файла/linuxcash/cash/fiscaldriveapi/config.iniсекции[api].- Адрес для просмотра чеков – адрес сервера ОФД для просмотра чеков. Используется для генерации QR-кода.
- Масштабирование QR-кода – размер QR-кода зависит от используемого принтера печати чеков. Значение по умолчанию –
5. - Таймаут – таймаут ожидания ответа от сервера.
- Путь до сертификата – расположение сертификата.
Пароль сертификата – пароль сертификата.
- Разрешение печати – разрешение печати чеков. По умолчанию настройка включена.
- Печать QR-кода – разрешение печати QR-кода. По умолчанию настройка включена. При выключенной настройке вместо QR-кода будут напечатаны номер версии ВК, серийный номер ФМ, порядковый номер чека, фискальный признак и ссылка для просмотра чека.
- Номер версии ВК – номер виртуальной кассы. Значение по умолчанию –
cash. - Версия ПО – версия используемого программного обеспечения.
Частота запроса последнего чека – частота запроса последнего зарегистрированного чека из ФМ.
Длительность запроса последнего чека – длительность запроса последнего зарегистрированного чека из ФМ.
Если при указании адреса сервера ОФД используется соединение https, то необходимо задать путь до сертификата и пароль сертификата. При использовании соединения http параметры сертификата не указываются.
Запуск сервиса
Запуск сервиса fiscaldriveapi осуществляется двумя способами:
- при перезагрузке кассы,
- с помощью утилиты
service.
Для запуска сервиса fiscaldriveapi при помощи утилиты service необходимо в консоли кассы выполнить команду:
service fiscaldriveapi start
Если все настройки заданы верно, то после закрытия документа на чеке могут быть напечатаны "Номер версии ВК", "Серийный номер ФМ", "Номер чека", "Фискальный признак", "Дата и время" и QR-код для просмотра чека на сайте ОФД. Текст для печати можно задать в шаблонах.
Особенности настройки для разных типов оплаты
Для корректной работы драйвера "Программное обеспечение виртуальной кассы ARTIX версии 4.6.228-5349, Узбекистан" должны быть заданы настройки для соотнесения отделов и типов оплат в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/fr.ini.
В драйвере "Программное обеспечение виртуальной кассы ARTIX версии 4.6.228-5349, Узбекистан" используются следующие типы оплаты:
1– оплата наличными,2– оплата электронными деньгами (безналичная),3– предварительная оплата (аванс),4– последующая оплата (кредит).
Для использования типа оплаты в утилите администрирования Yuki должна быть добавлена как минимум одна валюта с соответствующим типом оплаты.
Авансовые и кредитные чеки
При добавлении валюты для работы с авансовыми или кредитными чеками необходимо:
- Для поля "Типы оплаты в ФР" установить 3-й или 4-й тип оплаты соответственно.
Для поля "Типы оплаты в программе" установить тип "Электронные".
Оплата по авансовому и кредитному чеку производится только на основе типа "Электронные".- В свойствах валюты установить флаги:
- "Нельзя платить часть суммы".
- "Можно платить только без сдачи".
- "Запретить оплату для чека возврата".
Подробнее о добавлении валют можно прочитать в разделе "Валюты".
Для печати авансовых и кредитных чеков используется шаблон uzofd_sale.xml без заполнения фискальных данных.
Блокировка работы кассовой программы
Блокировка кассовой программы при работе с сервером ОФД может быть произведена в следующих случаях:
при отсутствии связи с сервисом
fiscaldriveapi,- если был извлечен ФМ из USB-порта,
- если в ФМ количество неотправленных чеков или смен в ОФД достигло максимума.
При отсутствии связи с ОФД сервис fiscaldriveapi перейдет в автономный режим работы, по истечении 24 часов касса будет заблокирована.
Состояние ФМ проверяется при попытке открыть смену, открыть чек в ФМ или закрыть смену.
Передача данных в ОФД
При закрытии чека продажи в ОФД передаются следующие данные о товарных позициях: количество товара, товарный код, код упаковки, скидка, наименование товара или услуги, общая сумма позиции без учета скидок, НДС сумма и прочие (оплата по страховке и др.).
{
"Amount":100,
"Barcode":"4600605000984",
"CommissionTIN":null,
"Discount":0,
"Label":"",
"Name":"МОЛОЧНЫЙ ДЕСЕРТ ДАНОН ДАНИССИМО ВИШНЯ",
"OwnerType":3,
"Other":0,
"Price":2490,
"SPIC":"y7",
"Units":41,
"VAT":226,
"VATPercent":10,
"PackageCode":"12345"
}
- Для товарной позиции может быть задан код национального классификатора товаров (
ntin), передается в полеSPIC. - Тип владельца продукта/услуги передается в поле
OwnerType, может быть задан в БДDictionariesтаблицыTmc. - Код единицы измерения товара передается в поле
Units, может быть задан:
- в БД
DictionariesтаблицеUnitsв полеfrunit, в конфигурационном файле
/linuxcash/cash/conf/ncash.ini.d/fr.iniв секции[HW.FR.UnitsMapping]:Пример настройки;[HW.FR.UnitsMapping] ; ; Соотнесение единиц измерения товара и меры количества предмета расчета ; <Код единицы измерения товара> = <Мера количества предмета расчета> ; Мера количества предмета расчета: ; 0 – штуки, единицы; ; 10 – грамм; ; 11 – килограмм; ; 22 – метр; ; 41 – литр; ; соотнесение единиц измерения товара ;1=0 ;2=11
При закрытии чека сначала запрашивается
frunitдля единицы измерения с учетомUnitsMapping, заданного в конфигурационном файле/linuxcash/cash/conf/ncash.ini.d/fr.ini. Еслиfrunitне найден, то осуществляется поискfrunitдля единицы измерения в БД кассовой программы.
- в БД
- Коды упаковок могут быть заданы в поле
packagecode:- в БД
DictionariesтаблицыTmc, - в БД
DictionariesтаблицыBarcodes(используется, если необходимо задать собственный код упаковки для каждого штрих-кода одного и того же товара).
- в БД
Реализация маркированных товаров
Для реализации маркированных товаров необходимо:
- Активировать модуль маркированных товаров с помощью параметра
markedgoodsв конфигурационном файле/linuxcash/cash/conf/ncash.ini.d/markedgoods.iniв секции[plugins]. - Настроить необходимую подсекцию и маску для проверки
DataMatrix. Подробнее об этом можно прочитать в разделе "Реализация маркированных товаров". - Перезапустить программу.
- Добавить маркированный товар в чек.
При передаче данных в ОФД в поле Label будет записан код маркировки:
{
"Amount": 1000,
"Barcode": "4607032140207",
"CommissionTIN": null,
"Discount": 0,
"Label": "0460703214020701234567891236666",
"Name": "МОЛОКО БМК 1.5% 1Л П/П",
"Other": 0,
"Price": 1520,
"SPIC": "",
"Units": 0,
"VAT": 0,
"VATPercent": 0
}
Пример чека в ОФД:
Передача фискальных данных в чеке возврата
Начиная с версии 4.6.204 в кассовом ПО Artix реализован возврат с учетом фискальных данных чека продажи. Возврат товаров в обычном режиме невозможен.
В кассовом ПО Artix реализована возможность получения и сохранения фискальных данных чека в БД Documents в таблице Document поле frdoccopy:
frdoccopy='{"DateTime":"20220331175529","FiscalSign":"395306020034","ReceiptSeq":"3513","TerminalID":"UZ191211502346"}'
Для возврата по чеку продажи необходимо в утилите администрирования Yuki на клавишу настроить действие "Возврат по чеку продажи" с командой COMMAND_BACKBYSALE и параметром requireParams = true. Подробнее о настройке действий можно прочитать в разделе "Настройка действий".
При выполнении операции возврата осуществляется проверка на наличие в БД сохраненных фискальных данных чека продажи:
- если поле
frdoccopyзаполнено, то чек возврата успешно закрывается. Ручной ввод фискальных данных чека продажи не требуется: - если поле
frdoccopyне заполнено, то при формировании чека возврата на экран будет выведен диалог ввода фискальных данных чека продажи:
При нажатии на кнопку "Отмена" чек возврата не будет сформирован.
Ввод фискальных данных может осуществляться вручную или считыванием QR-кода чека продажи. При вводе данных вручную проверяется правильность заполнения полей:- Серийный номер ФМ: 2 первых символа – заглавные латинские буквы + 12 символов – цифры.
- Фискальный признак: 12 символов – цифры.
- Номер чека: цифры.
- если введены некорректные данные, то поля будут подсвечены красным цветом:
Введите корректные фискальные данные и нажмите клавишу "Ввод", чек возврата будет сформирован.
Передача типа платежной карты
В Artix:POS реализована возможность выбора типа платежной карты. Для выбора типа оплаты платежной карты в утилите администрирования Yuki необходимо на клавишу настроить действие "Оплата валютой" с командой COMMAND_VALUT и параметром uzOfdCardTypeValCodes. В значении параметра необходимо указать коды валюты, для которых будет запрашиваться выбор типа платежной карты. Подробнее о настройке действий можно прочитать в разделе "Настройка действий".
При выборе валюты, указанной в параметре, на экран будет выведен диалог выбора типа платежной карты:
При нажатии "Отмена" диалог будет закрыт, оплата не будет добавлена в чек.
При нажатии "Выбрать" оплата будет добавлена в чек. При закрытии чека продажи выбранный тип платежной карты отправляется на сервер ОФД.
Для выбора типа оплаты платежной карты на Artix:SCO необходимо в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/actions.ini указать параметр uzOfdCardTypeValCodes для команды COMMAND_ADDPAYMENTPOSITION. В значении параметра необходимо указать коды валюты, для которых будет запрашиваться выбор типа платежной карты. Подробнее о настройке параметров для команд можно прочитать в разделе "Конфигурирование параметров для команд".
[COMMAND_ADDPAYMENTPOSITION] uzOfdCardTypeValCodes = "2,3"
Передача фискальных данных в процессинги PaymeGO и ClickPass
В кассовом ПО Artix реализована возможность сохранения фискальных данных и их передачи в процессинги PaymeGO и ClickPass. После закрытия чека в ФР сервер ОФД возвращает номер и URL-адрес чека. Сообщение с URL-адресом и другими данными, необходимыми для конкретного процессинга, помещается в очередь Artix-Queue. После закрытия чека полученные из сообщения данные передаются на сервер процессинга, сообщение удаляется из очереди.
Особенности работы процессингов PaymeGO и ClickPass
При оплате/отмене оплаты сервер процессинга ClickPass возвращает номер телефона покупателя в поле phone_number, сервер процессинга PaymeGo – в поле phone. При закрытии в ФР чека продажи/возврата по чеку продажи полученное значение записывается в поле ExtraInfo.PhoneNumber и отправляется на сервер ОФД.
При отмене оплаты ClickPass и PaymeGO могут завершить операцию с неизвестным статусом, сообщение об отмене оплаты помещается в очередь Artix-Queue. При этом номер телефона покупателя и идентификатор (RRN) транзакции отмены не заполняются. Объект ExtraInfo не формируется и на сервер ОФД не отправляется. Чек возврата по чеку продажи закрывается.
{
...
"params": {
"Receipt": {
"ExtraInfo": {
"PhoneNumber": "+79999999999"
},
"Items": [
{
"Amount": 1000,
"Barcode": "4607032140207",
"CommissionTIN": null,
"Discount": 0,
"Label": "",
"Name": "МОЛОКО БМК 1.5% 1Л П/П",
"Other": 0,
"Price": 1520,
"SPIC": "",
"Units": 11,
"VAT": 0,
"VATPercent": 0
}
],
"ReceivedCard": 1520,
"ReceivedCash": 0,
"Time": "2022-11-08 14:45:43"
}
}
}
Возможные ошибки
Если связь с ОФД отсутствует, то на экран будет выведена ошибка:
- при закрытии чека:
Чек не может быть закрыт.
При восстановлении связи работа сервиса возобновляется.
- при закрытии смены:
Смена не может быть закрыта, работа кассы заблокирована.
При восстановлении связи работа сервиса возобновляется.
- при закрытии чека:
Если ФМ был извлечен из USB-порта, то на экран будет выведена ошибка:
- при закрытии чека:
Чек не может быть закрыт.
При восстановлении связи работа сервиса возобновляется.
- при закрытии смены:
Смена не может быть закрыта, работа кассы заблокирована.
При восстановлении связи работа сервиса возобновляется.
- при закрытии чека:
Если в ФМ количество неотправленных чеков или смен в ОФД достигло максимума, то на экран будет выведена ошибка:
Чек не может быть закрыт.Если при формировании чека возврата были введены неверные фискальные данные чека продажи, то на экран будет выведена одна из ошибок:
Чек возврата не может быть закрыт.
При закрытии чека возврата без ввода фискальных данных (обычный режим возврата или возврат по чеку продажи, если параметр
requireParams = false) на экран будет выведена ошибка:
Чек возврата не может быть закрыт.В случае, когда нет возможности закрыть смену в
fiscaldriveApiна кассе, можно воспользоваться ПО POS-SIM.
С инструкцией по установке и работе данного ПО можно ознакомиться здесь. Ссылка для скачивания установочного файла находится здесь.POS-SIM может работать в ОС Windows (i386 x64) и в ОС Linux (i386 x64):
- для работы в ОС Linux требуется установка библиотеки
openjdk-8, - для работы в ОС Windows требуется установка библиотеки
javajre-8.
Рекомендуется запускать POS-SIM на устройстве, которое имеет доступ к кассе, на которой необходимо закрыть смену. Перед запуском необходимо:
- убедиться, что файл
run.batсодержит строку: "java -Drpc.url=http://127.0.0.1:3448/rpc/api -jar pos-sim.jar", - выполнить проброс порта
3448с кассы на порт3448локальной машины (так как служба слушает порт только с локальной
машины).
- для работы в ОС Linux требуется установка библиотеки
















