С 1 января 2026 года общая ставка налога на добавленную стоимость (НДС) в Казахстане будет увеличена до 16%.
Передача данных на сервер ОФД Казахстана обеспечивается сервисом artix-softwarefn (программный ФН ALTYN KASSA (kz)).
Установка сервиса
Для обеспечения передачи данных на сервер ОФД (Казахстан) необходимо установить пакет artix-softwarefn командой:
aptitude install artix-softwarefn
Запуск и управление сервисом softwarefn осуществляется при помощи утилиты service. Для этого необходимо выполнить команду:
service softwarefn [команда]
[команда] может принимать значение:
-
start– запуск сервиса, stop– остановка сервиса,restart– перезапуск сервиса,status– получение статуса сервиса.
После установки пакета создается конфигурационный файл /linuxcash/cash/conf/softwarefn.ini, в котором настраиваются параметры подключения к серверу ОФД (Казахстан) (см.ниже).
Конфигурирование сервиса
Подключение ККМ к серверу ОФД
Для подключения ККМ к серверу ОФД необходимо:
- В конфигурационном файле
/linuxcash/cash/conf/softwarefn.iniуказать:host– IP-адрес сервера ОФД,port– порт для подключения к серверу ОФД,deviceId– идентификатор устройства, выданный при регистрации в ОФД,token– токен.
- Перезапустить сервис
softwarefn.
Подключение к серверу ОФД осуществляется через любые каналы передачи данных, использующие протокол соединения TCP/IP (GSM, LTE, Wi-Fi, Wi-Max, Ethernet). Настройки подключения и параметры ККМ задаются в конфигурационном файле /linuxcash/cash/conf/softwarefn.ini в секциях [Connection] и [KKM].
| Секция | Наименование | Тип данных | Описание | Примечания |
|---|---|---|---|---|
| Connection | host | строковый | IP-адрес сервера ОФД | По умолчанию 127.0.0.1 |
| port | числовой | Порт для подключения к серверу ОФД | По умолчанию 0 | |
| connectionTimeout | числовой | Таймаут открытия соединения с сервером в мс | По умолчанию 2000 | |
| writeTimeout | числовой | Таймаут отправки данных на сервер в мс | По умолчанию 3000 | |
readTimeout | числовой | Таймаут получения данных от сервера в мс | По умолчанию 30000 | |
| servicePort | числовой | Порт сервиса для взаимодействия с кассовым ПО | По умолчанию 55555 | |
KKM | deviceId | числовой | Идентификатор устройства, выданный при регистрации в ОФД | |
token | числовой | Токен. Используется для отправки данных на сервер ОФД | Используется при первом подключении к серверу ОФД | |
| fnsKkmId | числовой | Регистрационный номер ККМ | Регистрационный номер ККМ должен быть обязательно указан и совпадать с номером, указанным на сайте ОФД | |
| serialNumber | строковый | Заводской номер ККМ |
; Настройки сервиса программного ФН ; Настройки соединения с сервером ОФД [Connection] ; ip-адрес сервера ; По умолчанию 127.0.0.1 host = 127.0.0.1 ; Порт для подключения к серверу ОФД ; По умолчанию 0 port = 0 ; Таймаут открытия соединения с сервером(мс) ; По умолчанию 2000 мс connectionTimeout = 2000 ; Таймаут отправки данных на сервер(мс) ; По умолчанию 3000 мс writeTimeout = 3000 ; Таймаут получения данных от сервера(мс) ; По умолчанию 30000 мс readTimeout = 30000 ; Порт сервиса для взаимодействия с кассовым ПО ; По умолчанию 55555 servicePort = 55555 ; Настройки ККМ [KKM] ... ; Идентификатор устройства, выданный при регистрации в ОФД deviceId = 0 ; Токен. Используется для отправки данных на сервер token = 0 ;Регистрационный номер ;fnsKkmId = 0 ; Заводской номер ККМ serialNumber=""
Передача данных на сервер ОФД
Передача данных на сервер ОФД осуществляется каждый раз при закрытии документов продажи/возврата, внесении/выеме денежных средств, открытии/закрытии смены, а также при снятии X-отчета.
В кассовом ПО Artix реализована возможность использовать цену товара из чека продажи для возврата по чеку продажи, регулируется параметром useSalePriceInBackBySale в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/fr.ini в секции [HW.FR]:
- при значении
trueв чеке возврата используется цена из чека продажи, - при значении
falseв чеке возврата цена товара рассчитывается согласно оставшейся сумме для возврата и количеству товара, которое необходимо вернуть.
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| useSalePriceInBackBySale | логический |
| Использовать цену на товар из чека продажи в чеке возврата по чеку продажи | По умолчанию false |
;[HW.FR] ... ; Использовать цену на товар из чека продажи в чеке возврата по чеку продажи ; Только для ФР "Программный ФН" ; По умолчанию выключено ;useSalePriceInBackBySale = false
Параметры защиты канала связи при передаче данных на сервер ОФД и информация об организации задаются в конфигурационном файле /linuxcash/cash/conf/softwarefn.ini в секции [Service].
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| organizationTitle | строковый | Название организации или ФИО индивидуального предпринимателя | ||
| organizationAddress | строковый | Юридический адрес организации | ||
| organizationInn | строковый | ИИН/БИН организации | ||
| useSSL | логический |
| Параметры защиты канала связи | По умолчанию false |
; Настройки служебной информации [Service] ... ;Название организации или ФИО индивидуального предпринимателя organizationTitle = "" ;Юридический адрес организации organizationAddress = "" ;ИИН/БИН организации organizationInn = "" ; Параметры защиты канала связи ; По умолчанию false ;useSSL = false
Передача фискальных данных в чеке возврата по чеку продажи
Для автоматической передачи фискальных данных по чеку продажи при закрытии чека рекомендуется активировать плагин fdcontroller.
Для возврата по чеку продажи необходимо настроить форму возврата для ввода фискальных данных в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/backbysale.ini:
[BackBySale.InputFiscalInfo.Field.1]
fieldId = fiscalSign
description = {"id": "inputFiscalInfoSourceFdNumber", "defaultMessage": "Номер ФД\nчека-основания"}
type = 10
regexp = "[0-9]{1,12}"
[BackBySale.InputFiscalInfo.Field.2]
fieldId = fnNumber
description = {"id": "inputFiscalInfoSourceFmNumber", "defaultMessage": "Номер ФМ\nчека-основания"};
type = 10
regexp = "[a-zA-Z0-9]{16}"
[BackBySale.InputFiscalInfo.Field.3]
fieldId = fnDate
description = {"id": "inputFiscalInfoDate", "defaultMessage": "Дата и время"}
type = 16
dateFormat = "dd.MM.yyyy hh:mm:ss"
regexp = "yyyyMMddhhmmss"
row = 2
[BackBySale.InputFiscalInfo.Field.4]
fieldId = sum
description = {"id": "inputFiscalInfoSum", "defaultMessage": "Общая сумма"}
type = 6
regexp = "[0-9]*(\.[0-9]{1,2})?"
[BackBySale.InputFiscalInfo.Field.5]
fieldId = serialnum
description = {"id": "inputFiscalInfoSum", "defaultMessage": "Номер ККТ"}
type = 10
regexp = "[a-zA-Z0-9]{16}"
Каждая секция отвечает за конкретное поле в форме возврата для ввода фискальных данных.
Количество допустимых символов задается маской в параметре regexp. Если вводимые данные не будут проходить по маске, то поля будут подсвечены красным цветом и данные невозможно будет применить.
При выполнении операции возврата осуществляется проверка на наличие в БД Documents таблице Fiscaldocument сохраненных фискальных данных чека продажи:
- если фискальные данные заполнены, то чек возврата успешно закрывается. Ручной ввод фискальных данных чека продажи не требуется,
- если фискальные данные не заполнены, то при формировании чека возврата на экран будет выведен диалог ввода фискальных данных чека продажи:
При нажатии на кнопку "Отмена" чек возврата не будет сформирован.
При вводе данных вручную проверяется правильность заполнения полей. Если введены некорректные данные, то поля будут подсвечены красным цветом. Введите корректные фискальные данные и нажмите клавишу "Ввод", чек возврата будет сформирован.
Передача фискальных данных в режиме возврата
Для возврата необходимо настроить форму возврата для ввода фискальных данных в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/back.ini:
[Back.InputFiscalInfo]
; Регулярное выражение для ввода данных со сканера в диалоге
; По умолчанию ""
fieldDistributionRegexp = ".*&fn_number=(?<fnNumber>[a-zA-Z0-9]{16}).*&fd_number=(?<fdNumber>[0-9]{1,10}).*"
[Back.InputFiscalInfo]
; Регулярное выражение для ввода данных со сканера в диалоге
; По умолчанию ""
fieldDistributionRegexp = ".*&fn_number=(?<fnNumber>[a-zA-Z0-9]{16}).*&fd_number=(?<fdNumber>[0-9]{1,12}).*"
[Back.InputFiscalInfo.Field.1]
fieldId = fiscalSign
description = {"id": "inputFiscalInfoSourceFdNumber", "defaultMessage": "Номер ФД\nчека-основания"}
type = 10
regexp = "[0-9]{1,12}"
[Back.InputFiscalInfo.Field.2]
fieldId = fnNumber
description = {"id": "inputFiscalInfoSourceFmNumber", "defaultMessage": "Номер ФМ\nчека-основания"};
type = 10
regexp = "[a-zA-Z0-9]{16}"
[Back.InputFiscalInfo.Field.3]
fieldId = fnDate
description = {"id": "inputFiscalInfoDate", "defaultMessage": "Дата и время"}
type = 16
dateFormat = "dd.MM.yyyy hh:mm:ss"
regexp = "yyyyMMddhhmmss"
row = 2
[Back.InputFiscalInfo.Field.4]
fieldId = sum
description = {"id": "inputFiscalInfoSum", "defaultMessage": "Общая сумма"}
type = 6
regexp = "[0-9]*(\.[0-9]{1,2})?"
[Back.InputFiscalInfo.Field.5]
fieldId = serialnum
description = {"id": "inputFiscalInfoSum", "defaultMessage": "Номер ККТ"}
type = 10
regexp = "[a-zA-Z0-9]{16}"
Каждая секция отвечает за конкретное поле в форме возврата для ввода фискальных данных.
Количество допустимых символов задается маской в параметре regexp. Если вводимые данные не будут проходить по маске, то поля будут подсвечены красным цветом и данные невозможно будет применить.
При выполнении возврата будет выведен диалог ввода фискальных данных чека продажи:
При нажатии на кнопку "Отмена" чек возврата не будет сформирован.
При вводе данных вручную проверяется правильность заполнения полей. Если введены некорректные данные, то поля будут подсвечены красным цветом. Введите корректные фискальные данные и нажмите клавишу "Ввод", чек возврата будет сформирован.
Передача ИИН/БИН покупателя в чеке продажи/возврата/возврата по чеку продажи
Для передачи ИИН/БИН необходимо:
Активировать плагин
customerInnв конфигурационном файле/linuxcash/cash/conf/ncash.ini.d/customerInn.iniв секции[plugins].Наименование Тип данных Возможные значения Описание
Примечания customerInn строковый - on
- off
Плагин для ввода ИНН покупателя
По умолчанию off[plugins] ; Плагин для ввода ИНН покупателя ;customerInn = off
- В утилите администрирования Yuki на клавишу настроить действие "Добавить ИНН покупателя" с командой
COMMAND_CUSTOMER_INN. О настройке действий подробнее можно прочитать в разделе "Настройка действий". - В утилите администрирования Yuki добавить команду
COMMAND_CUSTOMER_INNв список команд для выбранных ролей. О настройке ролей подробнее можно прочитать в разделе "Пользователи и роли". Для печати ИИН/БИН покупателя в чеке внести изменения в шаблон отчета
sale.xml– для продажи иback.xml– для возврата:<select query="SELECT nopdfurlegais FROM document WHERE documentid = $document.id$ and nopdfurlegais is not null and nopdfurlegais != ''"> <text fillsymbol="-" maxwidth="all"/><br/> <text align="left">ИИН:</text><var align="right" name="nopdfurlegais" maxwidth="all"/><br/> <text fillsymbol="-" maxwidth="all"/><br/> </select>
Подробнее о редактировании шаблонов можно прочитать в разделе "Движок отчетов".
При нажатии на клавишу с командой COMMAND_CUSTOMER_INN на экран будет выведен диалог для ввода ИИН. Допустимое значение: 12-значный номер. При вводе корректного ИИН значение сохраняется в БД Documents в таблицу Document в поле nopdfurlegais и в БД Documents в таблицу Client в поле inn.
Передача кода единицы измерения для позиции
Код единицы измерения для позиции (мера количества предмета расчета) передается в ОФД для каждой позиции при закрытии чека. Значения формируются в соответствии с Классификатором единиц измерения и счета Евразийского экономического союза. При запросе к серверу ОФД значение будет передаваться в поле measureUnitCode.
Мера количества предмета расчета может быть задана:
- в БД
DictionariesтаблицеUnitsв полеfrunit, - в конфигурационном файле
/linuxcash/cash/conf/ncash.ini.d/fr.iniв секции[HW.FR.UnitsMapping].
Настройка системы налогообложения
Применяемая в ККМ система налогообложения и вид деятельности налогоплательщика указываются в конфигурационном файле /linuxcash/cash/conf/softwarefn.ini.
| Секция | Наименование | Тип данных | Описание |
|---|---|---|---|
| KKM | taxationType | строковый | Система налогообложения:
|
Service | activityType | строковый | Вид деятельности налогоплательщика (ОКЭД) |
; Настройки ККМ [KKM] ... ; Система налогообложения ; Возможные значения: ; STS – УСН ; RTS – ОСН ; TRFF – Налоговый режим для крестьянских и фермерских хозяйств ; TRBP – Налоговый режим для малых предприятий на основе патента ; По умолчанию STS taxationType = STS ... ; Настройки служебной информации [Service] ; Вид деятельности налогоплательщика(ОКЭД) ; По умолчанию "" activityType = ""
Использование ставки НДС 16%
Для корректной работы значение для НДС 16% в свойствах товаров на кассе не должно быть указано ранее 1 января 2026 года.
Для использования ставки НДС 16% необходимо:
- Заполнить справочник налогов в БД кассового сервера, добавив ставку НДС 16%.
- Указать налоги со ставкой НДС 16% в свойствах товаров в БД кассового сервера.
- Выгрузить справочники налогов и товаров на кассы.
При закрытии чека продажи:
- будет использована указанная ставка НДС,
- на сервис программного ФН для каждого товара будет передано значение поля
ntin.
Настройка соотнесения отделов
Соотнесение отделов, к которым привязаны товары в кассовой программе и в ККМ, осуществляется посредством настройки секции [HW.FR.DepartMapping] в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/fr.ini.
[HW.FR.DepartMapping] ; Соотнесение логических и фискальных отделов для ФР ; <Номер отдела ФР> = <Номер отдела в кассе> 0 = 2 1 = 1 2 = 3
Настройка соотнесения типов оплат
Соотнесение типов оплат указывается для принтера чеков и программного ФН в конфигурационном файле /linuxcash/cash/conf/ncash.ini .d/fr.ini в секциях [HW.FR.1.PayAccordance] и [HW.FR.2.PayAccordance] соответственно.
[HW.FR.1.PayAccordance] ; Соотнесение логических типов оплаты и типов оплаты ФР ; <Тип оплаты ФР> = <Тип оплаты в кассе> ; соотнесение типов оплаты 1 = 2 [HW.FR.2.PayAccordance] ; Соотнесение логических типов оплаты и типов оплаты ФР ; <Тип оплаты ФР> = <Тип оплаты в кассе> ; соотнесение типов оплаты 1 = 1
В ККМ используются следующие типы оплат:
- 0 – наличные,
- 1 – банковская карта,
- 4 – мобильные.
Шаблоны документов
Для формирования чеков продажи используется шаблон softwarefn_sale.xml, чеков возврата – softwarefn_back.xml, для чеков внесения – softwarefn_moneyin.xml, для чеков выема – softwarefn_moneyout.xml, для x-отчетов – softwarefn_xreport.xml, для x-отчетов по отделам – softwarefn_xreportdept.xml, для z-отчетов – softwarefn_zreport.xml.
Печать информации о товарах в отчетах на казахском языке
Печать информации о товарах на казахском языке возможна только если переводы добавлены в справочник.
Подробнее о добавлении и корректном отображении переводов:
Если необходимо печатать наименования товаров на казахском языке одновременно с русским, то нужно внести изменения в шаблоны чека продажи sale.xml и чека возврата продажи back.xml:
<select query="select translation, idtype from dictionaries.tr where id=$bcode$ and lang='kk' and idtype IN (0, 1) order by idtype desc limit 1">
<text maxwidth="all" align="right">/ $translation$</text><br/>
</select>
Если необходимо печатать наименования товаров на языке текущего интерфейса, то нужно внести изменения в шаблоны чека продажи sale.xml и чека возврата продажи back.xml:
<select query="select IF(COUNT(translation)=0, '$name$', translation) translation, idtype from dictionaries.tr where id=$bcode$ and lang='$language$' and idtype IN (0, 1) order by idtype desc limit 1">
<text maxwidth="all" align="right">/ $translation$</text><br/>
</select>
Подробнее о редактировании шаблонов можно прочитать в разделе "Движок отчетов".
Подключение и настройка ККМ
Для подключения к серверу ОФД необходимо последовательно выполнить следующие действия:
- Подключить принтер чеков и программный ФН
Подключение принтера чеков и программного ФН осуществляется в Сервисном меню через Менеджер оборудования.
При добавлении устройства в первую очередь указывается принтер чеков: - В качестве фискального накопителя добавить драйвер "Программный ФН ALTYN KASSA (kz)":
- В настройках программного ФН необходимо в качестве ФР указать ранее подключенный принтер и включить разрешение печати:
- Номер ФР – порядковый номер ККМ.
- ФР – ранее подключенный ФР для печати документов и отчетов.
- Разрешение печати – выполнение печати чека на текстовой ленте. По умолчанию печать разрешена.
- Задержка уведомления об отсутствии связи с ОФД – при отсутствии связи с ОФД уведомление кассиру будет отображаться спустя указанное в настройке время. Задается в минутах.
Текст оповещения об автономном режиме – текст для печати оповещения об автономном режиме на чеке.
Текст оповещения об автономном режиме печатается только для:
- X-отчета,
- X-отчета по отделам,
- Z-отчета,
- чека продажи / возврата,
- чека внесения / выема.
- Шрифт – размер шрифта для печати оповещения об автономном режиме на чеке.
- Порт – порт сервиса программного ФН.
- Таймаут – таймаут ожидания ответа от сервиса программного ФН (в секундах).
- Адрес для просмотра чеков – адрес сервера ОФД для просмотра чеков. Используется для генерации QR-кода.
- Масштабирование QR-кода – размер QR-кода (зависит от используемого для печати чеков ФР).
Запуск кассовой программы
При запуске кассы выполняется ряд регламентных работ по инициализации и подключению модулей, которые необходимы для функционирования кассовой программы.
Подключение кассы к серверу ОФД начинается с запроса на инициализацию. При этом производится первичный обмен данными с сервером ОФД, который подтверждает, что устройство зарегистрировано в ОФД, и в настройках указан правильный токен.
В свою очередь касса получает с сервера всю необходимую информацию для работы: текущее состояние счетчиков (X-отчет), рекламные тексты, регистрационную информацию и параметры налогообложения, установленные на серверной стороне.
Если при первом запуске сервиса softwarefn отсутствует связь между кассой и сервером ОФД, то ККМ не будет инициализирована и на экран будет выведен диалог:
Для продолжения работы с кассой необходимо восстановить связь с сервером ОФД и повторить попытку инициализации, нажав клавишу "Enter".
Открытие и закрытие смены
Открытие смены в кассовом ПО Artix синхронизировано с открытием смены в ККМ. Кассовая смена открывается при закрытии первого фискального документа.
Полное описание функционала приведено в разделе "Кассовая смена".
Печать документов
Кассовый чек
После закрытия документа продажи/возврата печатается чек, содержащий следующую информацию:
- Наименование налогоплательщика (программируется в клише).
- Идентификационный номер ККМ.
- Заводской номер ККМ.
- Регистрационный номер ККМ в налоговом органе.
- Порядковый номер чека в кассовой программе.
QR-код в формате "
url?i=<Фискальный_Признак>&f=<Код_ККМ>&s=<Сумма_Чека>&t=<Дата_Время_Чека>". Гдеurl– адрес для просмотра чеков, который указан в настройках Программного ФН (см. "Подключение и настройка ККМ").- Дату и время закрытия чека.
- Стоимость товаров по позициям и общую сумму чека.
- Фискальный признак, получаемый с сервера фискальных данных.
- Наименование оператора фискальных данных и реквизиты интернет-ресурса оператора фискальных данных для проверки подлинности кассового чека (в случае, если эти данные указаны на сервере ОФД).
После закрытия документов продажи/возврата, внесения/выема денежных средств данные отправляются на сервер ОФД.
Рекламный текст, передаваемый от сервера ОФД, также печатается на чековой ленте.
Отчеты
Генерация отчетов осуществляется на основании данных продаж, хранящихся в файловой БД (см. "Утилита для просмотра информации в БД").
Для печати отчетов создается отдельный пункт меню с командой
COMMAND_OPERATION.
Перенос наличности на следующую смену
Наличные, имеющиеся в кассе в конце смены, могут быть изъяты в рамках инкассации или переведены во входящий остаток следующей смены. Перенос наличных в следующую смену определяется параметром
withdrawMoney
в конфигурационном файле
/linuxcash/cash/conf/softwarefn.ini в секции [KKM].
- при значении
trueпри закрытии смены будет выполняться операция инкассации (выем всей суммы), - при значении
falseпри закрытии смены выполняется перенос наличности на следующую смену.
При использовании выема наличности при закрытии смены на сервере ОФД необходимо использовать обязательную инкассацию в кассовом ПО.
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| withdrawMoney | логический |
| Выем наличности из кассы при снятии Z-отчета | По умолчанию false |
; Настройки сервиса программного ФН ... ; Настройки ККМ [KKM] ; Выем наличности из кассы при снятии Z-отчета ; По умолчанию false withdrawMoney = false
Утилита для просмотра информации в БД
При установке пакета artix-softwarefn в директорию
/linuxcash/cash/bin/
устанавливается утилита
fmobserver
для просмотра информации в БД.
Утилита позволяет:
- просматривать счетчики текущей смены,
- запрашивать информацию о закрытой смене по номеру смены или дате закрытия,
- получать информацию о необнуляемых счетчиках,
- запрашивать информацию о количестве неотправленных сообщений в очереди и дате первого неотправленного сообщения,
- получать список неотправленных сообщений,
- запрашивать информацию о неотправленном сообщении по id,
- удалять неотправленные сообщения по id,
- сбрасывать статус работы сервиса на 0 – online-режим,
- обнулять и устанавливать токен.
Для запуска утилиты используется команда:
./fmobserver <код доступа> [ОБЪЕКТ] [ПАРАМЕТР]
, где <код доступа> – пароль для подключения к утилите просмотра БД, <код доступа> выдается разработчиком ПО.
[ОБЪЕКТ] может принимать значение:
help– для вывода справки;shiftcounters– для просмотра счетчиков текущей смены;fiscalmemory– для запроса информации о закрытой смене;protectedcounters– для получения необнуляемых счетчиков;queue– для вывода количества неотправленных сообщений в очереди и даты первого неотправленного сообщения;status– для работы со статусом;token– для работы с токеном;messages– для вывода списка сообщений в очереди;message– для работы с сообщением из очереди.
[ПАРАМЕТР] указывается для объектов fiscalmemory, status, token, message и может принимать значение:
целочисленный номер смены для просмотра информации о закрытой смене по номеру:
Пример./fmobserver <код доступа> fiscalmemory 1
В результате в консоль будет выведена информация о смене номер 1:
Смена 1, 07.12.2018: { "CHANGE" : 0.0, "OPERATION_SELL" : { "PAYMENT_CASH" : 20.9 } }дата закрытия смены в формате
дд.мм.ггггдля получения информации о смене/сменах по дате:Пример./fmobserver <код доступа> fiscalmemory 07.12.2018
В результате в консоль будет выведена информация о сменах, закрытых в указанную дату:
РезультатСмена 1, 07.12.2018: { "CHANGE" : 0.0, "OPERATION_SELL" : { "PAYMENT_CASH" : 20.9 } } Смена 2, 07.12.2018: { "CHANGE" : 0.0, "OPERATION_SELL" : { "PAYMENT_CASH" : 57.7 } }cleanдля сброса статуса / обнуления токена:Пример./fmobserver <код доступа> status/token clean
idдля вывода сообщения с указаннымid:Пример./fmobserver <код доступа> message 5
В консоль будет выведена информация о сообщении с указанным
id:Пример{ "command" : 1, "request" : { "amounts" : { "taken" : 15.2, "total" : 15.2 }, "cashier" : { "code" : 1453094908, "name" : "Мастер" }, "dateTime" : "2019-01-23T15:04:57", "domain" : { "type" : 0 }, "extensionOptions" : { "auxiliary" : { } }, "frShiftNumber" : 8, "items" : [ { "commodity" : { "auxiliary" : { }, "name" : "МОЛОКО БМК 1.5% 1Л П/П", "price" : 15.2, "quantity" : 1000, "sectionCode" : "1", "sum" : 15.2, "taxes" : [ { "inTotalSum" : true, "percent" : 0, "sum" : 0.0, "taxType" : 100, "taxationType" : 100 } ] }, "modifier" : { "auxiliary" : { }, "name" : "", "sum" : 0.0, "taxes" : [ ] }, "type" : 1 } ], "offlineTicketNumber" : 1548230697, "operation" : 2, "payments" : [ { "sum" : 15.2, "type" : 0 } ], "printedTicket" : "Сер. номер ККМ 00000112\nККТ ID 1973\nИИН/БИН 130140014574\n ЧЕК ПРОДАЖИ #6 \n КАССИР: 11 Мастер \n------------------------------------\n1 МОЛОКО БМК 1.5% 1Л П/П\n 1.000шт * 15.20 = 15.20\n------------------------------------\nПОЗИЦИЙ: 0001\nИТОГО: 15.20", "state" : 0, "taxes" : [ ] } }id deleteдля удаления сообщения с указаннымid:Пример./fmobserver <код доступа> message 6 delete
Если сообщение с таким
idсуществует, то в консоль будет выведена информация о том, что сообщение удалено:ПримерСообщение удалено
Если сообщения с таким
idне существует, то в консоль будет выведена информация о том, что сообщение не удалено:ПримерСообщение не удалено
Логирование работы утилиты производится в
/linuxcash/logs/current/fmobserver.log.
Автономный режим работы
softwarefn в автономном режиме серийный номер кассы используется из параметра fnsKkmId конфигурационного файла /linuxcash/cash/conf/softwarefn.ini.Сервис softwarefn переходит в автономный режим работы, если:
- отсутствует связь с сервером ОФД,
- используется неверный токен.
Неотправленные документы сохраняются в очередь сообщений в таблицу messages файловой БД. После возврата в online-режим сообщения отправляются на сервер, начиная с самого раннего, после чего удаляются из очереди. Настройки работы сервиса в автономном режиме задаются в конфигурационном файле /linuxcash/cash/conf/softwarefn.ini в секции [DataSending].
| Наименование | Тип данных | Описание | Примечания |
|---|---|---|---|
| operationTimeout | числовой | Время выполнения операции (отправка и получение данных) в мс | По умолчанию |
| reconnectionTimeout | числовой | Таймаут между попытками переподключения к серверу в offline-режиме в мс | По умолчанию 60000 мс (минимальное рекомендуемое значение) |
| offlineModeLimit | числовой | Ограничение продолжительности автономного режима работы в часах | По умолчанию 72 часа |
; Настройки параметров отправки данных [DataSending] ; Время выполнения операции(отправка и получение данных) ; По умолчанию 5000 мс(минимальное рекомендуемое значение) operationTimeout = 5000 ; Таймаут между попытками переподключения к серверу ; в offline-режиме работы сервиса программного ФН ; По умолчанию 60000 мс(минимальное рекомендуемое значение) reconnectionTimeout = 0 ; Ограничение продолжительности автономного режима (часы), по умолчанию 72 часа offlineModeLimit = 72
При превышении времени пребывания в автономном режиме сервис блокируется.
Во время работы сервиса в автономном режиме на экране отображается уведомление об оставшемся до блокировки кассы времени:
- при отсутствии связи с ОФД:
- при неверном токене:
При восстановлении связи с сервером и наличии в очереди неотправленных сообщений сервис будет работать в автономном режиме, а уведомление примет вид:
После отправки последнего сообщения из очереди, при наличии связи с сервером, сервис переходит в online-режим, а уведомление будет автоматически закрыто при следующем запросе к серверу.
Если время нахождения в автономном режиме превышено, то при добавлении товара в чек/закрытии чека на экран будет выведено предупреждение:
При попытке закрыть смену в режиме блокировки сервиса на экран будет выведена ошибка:
Закрытые в автономном режиме документы будут напечатаны с уведомлением, текст и размер шрифта задается в настройках программного ФН через Менеджер оборудования.
Контроль времени совершения операций
Во избежание расхождения во времени при совершении операций в кассовом ПО Артикс реализован контроль даты и времени последнего обращения к серверу ОФД.
Если время совершения текущей операции меньше времени последнего запроса, то сервис перейдет в режим блокировки, а на экран будет выведена ошибка:
- при добавлении товара в чек / закрытии чека:
- при закрытии смены:
Работа с кассой может быть продолжена только после выхода из состояния блокировки .
В кассовом ПО Artix реализована возможность проверки только даты выполнения запроса. Для этого необходимо в конфигурационном файле /linuxcash/cash/conf/softwarefn.ini вручную добавить секцию [Checks] с настройкой checkOnlyRequestDate:
- при значении
true:- если дата выполнения последнего запроса превышает текущую дату, то сервис переходит в режим блокировки,
- если дата выполнения последнего запроса не превышает текущую дату, то работа кассы осуществляется в обычном режиме,
- при значении
falseосуществляется проверка даты и времени выполнения запроса.
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| checkOnlyRequestDate | логический |
| Проверка только даты выполнения запроса | По умолчанию |
[Checks] ; Проверка только даты выполнения запроса. Время выполнения запроса при проверке игнорируется. ; По умолчанию false ;checkOnlyRequestDate = false
Блокировка работы кассовой программы
Работа кассовой программы может быть заблокирована в результате:
- неправильного выполнения операций кассиром,
- неисправности принтера чеков (ФР), отсутствия или обрыва чековой ленты,
- блокировки кассовой программы вручную или по бездействию.
Блокировка сервиса softwarefn при работе с сервером ОФД может быть произведена при:
- возникновении ошибок при первом подключении к серверу ОФД,
- получении от сервера ОФД сообщения с требованием о приостановлении операций на кассе. В этом случае на экран будет выведено сообщение: "ККМ заблокирована по требованию органов налоговой службы:<Сообщение от сервера>",
- превышении времени работы в автономном режиме,
- некорректном времени на кассе.
Выход из состояния блокировки
Для выхода из состояния блокировки сервиса необходимо:
Остановить сервис
softwarefnкомандой:service softwarefn stop
- Устранить причину блокировки.
Сбросить статус сервиса утилитой
fmobserver:Пример./fmobserver <код доступа> status clean
Запустить сервис
softwarefnкомандой:service softwarefn start
Логирование работы сервиса
В логах и ОФД не отображаются сообщения о передаче значений для:
- настроек
organizationTitle,organizationAddress,organizationInn, заданных в конфигурационном файле/linuxcash/cash/conf/softwarefn.iniв секции[Service], - настройки
serialNumber, заданной в конфигурационном файле/linuxcash/cash/conf/softwarefn.iniв секции[ККМ], turnover_without_tax– обязательного поля, используемого в запросе к серверу ОФД.
Правила ведения логов, события, которые подлежат записи, их подробность и полнота задаются в файле /linuxcash/cash/conf/Artix/softwarefn.conf. Логи работы сервиса записываются в файл /linuxcash/logs/current/softwarefn.log.
Допускается использование одного из уровней:
- TRACE,
- DEBUG,
- INFO,
- WARN,
- ERROR.
Самый детальный уровень – TRACE, самый строгий – ERROR. В зависимости от выбранного уровня в лог записывается информация, которая соответствует уровню.
[Log4Qt] Properties\log4j.appender.root = org.apache.log4j.FileAppender Properties\log4j.appender.root.file = /linuxcash/logs/current/softwarefn.log Properties\log4j.appender.root.appendFile = true Properties\log4j.appender.root.layout = org.apache.log4j.TTCCLayout Properties\log4j.appender.root.layout.DateFormat = ISO8601 Properties\log4j.rootLogger = "INFO, root"
Требования безопасности
Доступ пользователей к кассовому ПО осуществляется только при наличии логина/пароля, определяющего уровень доступа.
Исходный программный код скрыт, что обеспечивает его неизменность и, соответственно, невозможность внесения изменений в функционал ККМ.
Данные передаются на сервер ОФД в бинарном виде.
Реализация маркированных товаров
Для реализации маркированных товаров необходимо воспользоваться плагином markedgoods.
Сканер кодов маркировки должен быть подключен к COM-порту. В противном случае сканирование кода маркировки будет работать некорректно.
Реализация табачной продукции
Для реализации табачной продукции можно воспользоваться плагином motp или markedgoods.
Маска для проверки кода маркировки табачной продукции должна быть задана в виде:
(01)?(?<barcode>\d{14})(21)?.{7}(.93)?.{8}(.(.{14}|.{11}))?– для продажи блоков и пачек сигарет в республике Казахстан.
На сервер softwarefn код маркировки в поле exciseStamp передается частично:
- для блоков сигарет – до первого разделительного символа,
- для пачек сигарет – первый 21 символ.











