Начиная с версии 4.6.221 для формирования чеков продажи используется шаблон uzofd_sale.xml, для формирования чеков возврата – uzofd_back.xml, для формирования z-отчетов – uzofd_zreport.xml

Начиная с версии 4.6.221 переводы фискальных признаков задаются в шаблонах uzofd_sale.xml и uzofd_back.xml.

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

Начиная с версии 4.6.223 реализована передача номера телефона в чек при оплате через ClickPass.

Начиная с версии 4.6.226 добавлена поддержка авансовых и кредитных чеков.

Передача данных на сервер ОФД Узбекистана обеспечивается сервисом fiscaldriveapi (Программное обеспечение виртуальной кассы ARTIX версии 4.6.228-5349, Узбекистан).

Установка сервиса

Для обеспечения передачи данных на сервер ОФД Узбекистана необходимо установить пакет fiscaldriveapi с помощью команды:

aptitude install fiscaldriveapi

Подключение фискального модуля

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

  1. Получить список подключенных USB-устройств, выполнив команду:

    lsusb
  2. Найти в списке подключенных USB-устройств токен Feitian:

  3. Скопировать значения VID:PID и наименование: "VID=096e, PID=080f, наименование – Feitian Technologies, Inc".

  4. Внести скопированные данные в файл /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist:
    • в конец секции [ifdVendorID] добавить значение VID,
    • в конец секции [ifdProductID] добавить значение PID,
    • в конец секции [ifdFriendlyName] добавить наименование токена.
  5. Перезапустить кассовую программу.

Настройка сервиса

Параметры подключения к серверу ОФД Узбекистана настраиваются в конфигурационном файле /linuxcash/cash/fiscaldriveapi/config.ini в секции [smartcard]:

СекцияНаименованиеТип данныхОписание
smartcardfactory_idчисловойИдентификатор фискального модуля (ФМ)

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

./fiscal-drive-api -op list

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

Пример настройки
[smartcard]
factory_id=
...

Подключение принтера чеков и настройка драйвера

Подключение драйвера "Программное обеспечение виртуальной кассы ARTIX версии 4.6.228-5349, Узбекистан" возможно только при наличии принтера чеков.

Для настройки драйвера "Программное обеспечение виртуальной кассы ARTIX версии 4.6.228-5349, Узбекистан" в Сервисном меню через Менеджер оборудования необходимо:

  1. Подключить принтер чеков:
  2. Добавить драйвер "Программное обеспечение виртуальной кассы ARTIX версии 4.6.228-5349, Узбекистан":
  3. Настроить параметры драйвера:
     
    • Номер ФР – порядковый номер ККМ. 
    • ФР – указывается ранее подключенный принтер чеков. 
    • Адрес – адрес сервера ОФД. Указывается значение вида 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 должна быть добавлена как минимум одна валюта с соответствующим типом оплаты.

Авансовые и кредитные чеки

При добавлении валюты для работы с авансовыми или кредитными чеками необходимо:

  1. Для поля "Типы оплаты в ФР" установить 3-й или 4-й тип оплаты соответственно.
  2. Для поля "Типы оплаты в программе" установить тип "Электронные".

    Оплата по авансовому и кредитному чеку производится только на основе типа "Электронные".
  3. В свойствах валюты установить флаги:
    1. "Нельзя платить часть суммы".
    2. "Можно платить только без сдачи".
    3. "Запретить оплату для чека возврата".

Подробнее о добавлении валют можно прочитать в разделе "Валюты".

Для печати авансовых и кредитных чеков используется шаблон 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 для единицы измерения в БД кассовой программы.

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

Для реализации маркированных товаров необходимо:

  1. Активировать модуль маркированных товаров с помощью параметра markedgoods в конфигурационном файле /linuxcash/cash/conf/ncash. ini.d/markedgoods.ini в секции [plugins].
  2. Настроить необходимую подсекцию и маску для проверки Data Matrix. Подробнее об этом можно прочитать в разделе "Реализация маркированных товаров".
  3. Перезапустить программу.
  4. Добавить маркированный товар в чек.

При передаче данных в ОФД в поле 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 символов – цифры.
    • Номер чека: цифры.
  • если введены некорректные данные, то поля будут подсвечены красным цветом:

    Введите корректные фискальные данные и нажмите клавишу "Ввод", чек возврата будет сформирован.

Передача фискальных данных в процессинги PaymeGO и ClickPass

Начиная с версии 4.6.218-4 в кассовом ПО Artix реализована передача фискальных данных в процессинг PaymeGO.

Начиная с версии 4.6.219 в кассовом ПО Artix реализована передача фискальных данных в процессинг 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"
    }
  }
}

Возможные ошибки

  1. Если связь с ОФД отсутствует, то на экран будет выведена ошибка:

    • при закрытии чека:

      Чек не может быть закрыт.
      При восстановлении связи работа сервиса возобновляется.
    • при закрытии смены:

      Смена не может быть закрыта, работа кассы заблокирована.
      При восстановлении связи работа сервиса возобновляется.
  2. Если ФМ был извлечен из USB-порта, то на экран будет выведена ошибка:

    • при закрытии чека:

      Чек не может быть закрыт.
      При восстановлении связи работа сервиса возобновляется.
    • при закрытии смены:

      Смена не может быть закрыта, работа кассы заблокирована.
      При восстановлении связи работа сервиса возобновляется.
  3. Если в ФМ количество неотправленных чеков или смен в ОФД достигло максимума, то на экран будет выведена ошибка:

    Чек не может быть закрыт.

  4. Если при формировании чека возврата были введены неверные фискальные данные чека продажи, то на экран будет выведена одна из ошибок:

    Чек возврата не может быть закрыт.

  5. При закрытии чека возврата без ввода фискальных данных (обычный режим возврата или возврат по чеку продажи, если параметр requireParams = false) на экран будет выведена ошибка:

    Чек возврата не может быть закрыт.

  6. В случае, когда нет возможности закрыть смену в fiscaldriveApi на кассе, можно воспользоваться ПО POS-SIM.
    С инструкцией по установке и работе данного ПО можно ознакомиться здесь. Ссылка для скачивания установочного файла находится здесь.

    POS-SIM может работать в ОС Windows (i386 x64) и в ОС Linux (i386 x64):

    • для работы в ОС Linux требуется установка библиотеки openjdk-8,
    • для работы в ОС Windows требуется установка библиотеки java jre-8.

    Рекомендуется запускать POS-SIM на устройстве, которое имеет доступ к кассе, на которой необходимо закрыть смену. Перед запуском необходимо:

    • убедиться, что файл run.bat содержит строку: "java -Drpc.url=http://127.0.0.1:3448/rpc/api -jar pos-sim.jar",
    • выполнить проброс порта 3448 с кассы на порт 3448 локальной машины (так как служба слушает порт только с локальной
      машины).
  • No labels