Обращение к серверам ЕГАИС для передачи информации об обороте алкогольной продукции осуществляется через транспортный модуль.
Перед подключением модуля необходимо убедиться в доступности транспортного модуля. |
Подключение транспортного модуля Egais
возможно при наличии идентификатора модуля, данных о размещении плагина и других параметрах. Для указания параметров транспортного модуля необходимо создать файл с расширением .xml
, например, egais.xml
, в директории /linuxcash/cash/conf/plugins
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
id | строковый | Egais | Уникальное наименование модуля | |
plugin | строковый | /linuxcash/cash/plugins/libEgais.so | Полный путь до плагина | |
address | строковый |
| Url транспортного модуля ЕГАИС, используемый для розничной продажи по безналичному расчету:
| |
timeout | целочисленный | Целое положительное число | Таймаут ожидания ответа от сервера в секундах | По умолчанию 30 секунд |
<objects> <object id="Egais" plugin="/linuxcash/cash/plugins/libEgais.so" > <property name="address"> <value>http://127.0.0.1:58080/xml</value> </property> <property name="timeout"> <value>30</value> </property> </object> </objects> |
Для работы с форматом
|
Для работы с форматом
|
Параметры взаимодействия с модулем УТМ задаются в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [EGAIS]
:
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
enable | логический |
| Включение проверки ЕГАИС | По умолчанию false |
barcodeMask | строковый | Маска для проверки штрих-кода акцизной марки | По умолчанию "([1-9]\d{2}|\d([1-9]\d|\d[1-9])){2}([1-9]\d{7}|\d([1-9]\d{6}|\d([1-9]\d{5}|\d([1-9]\d{4}|\d([1-9]\d{3}|\d([1-9]\d{2}|\d([1-9]\d|\d[1-9])))))))(0[1-9]|1[0-2])(1[8-9]|[2-9][0-9])([1-9]\d{2}|\d([1-9]\d|\d[1-9]))[0-9A-Z]{129}|\d\d[a-zA-Z0-9]{21}\d[0-1]\d[0-3]\d{10}[a-zA-Z0-9]{31}|[0-9]{40} " | |
enableAdditionalBarcode | логический |
| Включить сканирование дополнительного штрих-кода DataMatrix акцизной марки | По умолчанию false |
additionalBarcodeMask | строковый | Маска для проверки дополнительного штрих-кода DataMatrix акцизной марки | По умолчанию " | |
checkAlcoCode | логический |
| Включить проверку алкокода акцизной марки в БД кассы | По умолчанию false |
sendFnInfo | логический |
| Отправлять в качестве номеров документа и кассы значения фискального документа и номера ФН | По умолчанию true |
useExciseMarkInInventory | логический |
| Запрашивать считывание акцизной марки при инвентаризации акцизной продукции | По умолчанию false |
[EGAIS] ; Настройки плагина ЕГАИС ; Включение проверки ЕГАИС ; По умолчанию false ;enable = false ; Маска для проверки штрих-кода Pdf417 акцизной марки ; По умолчанию "([1-9]\d{2}|\d([1-9]\d|\d[1-9])){2}([1-9]\d{7}|\d([1-9]\d{6}|\d([1-9]\d{5}|\d([1-9]\d{4}|\d([1-9]\d{3}|\d([1-9]\d{2}|\d([1-9]\d|\d[1-9])))))))(0[1-9]|1[0-2])(1[8-9]|[2-9][0-9])([1-9]\d{2}|\d([1-9]\d|\d[1-9]))[0-9A-Z]{129}|\d\d[a-zA-Z0-9]{21}\d[0-1]\d[0-3]\d{10}[a-zA-Z0-9]{31}|[0-9]{40}" ;barcodeMask = "([1-9]\d{2}|\d([1-9]\d|\d[1-9])){2}([1-9]\d{7}|\d([1-9]\d{6}|\d([1-9]\d{5}|\d([1-9]\d{4}|\d([1-9]\d{3}|\d([1-9]\d{2}|\d([1-9]\d|\d[1-9])))))))(0[1-9]|1[0-2])(1[8-9]|[2-9][0-9])([1-9]\d{2}|\d([1-9]\d|\d[1-9]))[0-9A-Z]{129}|\d\d[a-zA-Z0-9]{21}\d[0-1]\d[0-3]\d{10}[a-zA-Z0-9]{31}|[0-9]{40}" ; Включить сканирование доп. штрих-кода DataMatrix ; По умолчанию false ; enableAdditionalBarcode = false ; Маска для проверки штрих-кода DataMatrix акцизной марки ; По умолчанию "^(1[0-9]{2}-[0-9]{30}|2[0-9]{2}-[0-9]{29}|0000000)$" ; additionalBarcodeMask = "^(1[0-9]{2}-[0-9]{30}|2[0-9]{2}-[0-9]{29}|0000000)$ ; Проверять алкокод акцизной марки ; По умолчанию false ; checkAlcoCode = false ;Отправлять в качестве номеров документа и кассы значения из ФН ; По умолчанию true ; sendFnInfo = true ; Контролировать АМ при инвентаризации ; По умолчанию false ; useExciseMarkInInventory = false |
Использование УТМ активируется параметром enable
:
true
модуль ЕГАИС включен,false
модуль ЕГАИС отключен.При добавлении и сканировании алкогольных товаров помимо штрих-кода товара (EAN13 ) обязательно сканирование акцизной марки (PDF417 ), маска которой указывается в параметре barcodeMask секции [EGAIS] . |
Ручной ввод данных акцизной марки запрещен, данные необходимо вводить только сканером. |
В целях дополнительного контроля может быть использован дополнительный штрих-код акцизной марки (DataMatrix
). Необходимость сканирования дополнительного штрих-кода акцизной марки задается параметром enableAddtitionalBarcode
:
true
программа запрашивает сканирование дополнительного штрих-кода акцизной марки после того, как считана акцизная марка;false
считывание дополнительного штрих-кода акцизной марки не требуется.Маска для проверки дополнительного штрих-кода DataMatrix
акцизной марки определяется параметром additionalBarcodeMask
.
При продаже и возврате алкогольной продукции доступна проверка алкокода акцизной марки в БД Dictionaries
таблице Alcocode
. Для проверки алкокода в БД используется параметр checkAlcoCode
:
true
выполняется проверка наличия алкокода акцизной марки. При отсутствии данных товар не может быть реализован, на экран выводится сообщение "Данная продукция недопустима к продаже";false
наличие алкокода акцизной марки не проверяется.Данные алкокода записываются в товарную позицию в БД Documents
таблицу Goodsitem
.
Согласно требованиям законодательства определен перечень сведений передаваемых в ЕГАИС:
Выбор реквизитов документа для отправки в ЕГАИС определяется параметром sendFnInfo
:
true
номер фискального документа и номер фискального накопителя,false
программный номер документа и серийный номер ФР.Инвентаризация алкогольной продукции может проводиться как для простого учета товаров, так и для ведения в БД кассовой программы списка акцизных марок, разрешенных к продаже. Порядок проведения инвентаризации алкогольной продукции определяется параметром useExciseMarkInInventory
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [EGAIS]
:
true
работа с алкогольным товаром осуществляется аналогично операциям в чеке продажи: при добавлении и сторнировании товара требуется считывание штрих-кода акцизной марки, запрещено применение модификатора "Количество",false
порядок добавления и сторнирования акцизного алкоголя аналогичен работе с обычными товарами.При закрытии документа инвентаризации в БД Dictionaries
в таблице Excisemarkwhite
для каждой акцизной позиции создается запись, в которой указывается пара штрих-код товара и акцизная марка. По полученному в результате инвентаризации "белому" списку будет производиться проверка акцизных марок при продаже алкоголя.
При переходе к версии протокола ЕГАИС 3.0 может возникнуть потребность осуществлять разные проверки для разных масок акцизных марок, например, для "старых" акцизных марок проверять наличие алкокода, а для "новых" – проверять "белый список". В этом случае в секции [EGAIS]
в параметре barcodeMask
указываются все маски акцизных марок, а в секциях [EGAIS.N]
(где N – номер по порядку) указывается параметр barcodeMask
с необходимой маской акцизной марки и набором настроек, которые будут применены к акцизным маркам данного вида. Таким образом применение настроек для каждой секции зависит от вида акцизной марки.
Возможность выделения параметра в отдельную секцию указана в таблице:
Наименование настройки | Статус |
---|---|
enable | общая |
sendFnInfo | |
useExciseMarkInInventory | |
sendEgaisBeforeCashlessPayment | |
useSerialNumber | |
barcodeMask | индивидуальная |
enableAdditionalBarcode | |
additionalBarcodeMask | |
checkAlcoCode | |
checkTmcAlcoCode | |
enableExciseMarkVerifyLocal | |
enableExciseMarkVerify | |
exciseMarkVerifyUrl | |
exciseMarkVerifyTimeout | |
ignoreExciseMarkVerifyErrors |
По умолчанию все настройки размещены в секции [EGAIS]
. При необходимости все или часть индивидуальных настроек можно вынести в отдельную секцию [EGAIS.N]
. Если в секции [EGAIS.N]
указана только часть индивидуальных настроек, то для остальных настроек будет использовано значение по умолчанию.
В отдельной секции обязательно должна быть указана маска акцизной марки, для которой задаются настройки.
Пример разделения настроек приведен ниже:
[EGAIS] ; ; Настройки плагина ЕГАИС ; ; Включение проверки ЕГАИС ; По умолчанию false enable = true ; Отправлять в качестве номеров документа и кассы значения из ФН ; По умолчанию true ;sendFnInfo = true ; Контролировать АМ при инвентаризации ; По умолчанию false ;useExciseMarkInInventory = false ; Отправлять чек в ЕГАИС перед безналичной оплатой ; По умолчанию false ;sendEgaisBeforeCashlessPayment = false [EGAIS.1] ; Маска для проверки штрих-кода Pdf417 акцизной марки barcodeMask = "\d\d[a-zA-Z0-9]{21}\d[0-1]\d[0-3]\d{10}[a-zA-Z0-9]{31}" ; Включить сканирование доп штрих-кода DataMatrix ; По умолчанию false enableAdditionalBarcode = true ; Маска для проверки штрих-кода DataMatrix акцизной марки ; По умолчанию "^(1[0-9]{2}-[0-9]{30}|2[0-9]{2}-[0-9]{29}|0000000)$" additionalBarcodeMask = "^(1[0-9]{2}-[0-9]{30}|2[0-9]{2}-[0-9]{29}|0000000)$" ; Проверять алкокод акцизной марки ; По умолчанию false ;checkAlcoCode = false ; Проверять соответствие алкокода акцизной марки коду товара ; По умолчанию false ;checkTmcAlcoCode = false ; Проверять акцизные марки на кассе ; По умолчанию false enableExciseMarkVerifyLocal = true ; Проверять акцизные марки на сервере ; По умолчанию false ;enableExciseMarkVerify = false ; URL сервера проверки акцизных марок ; Для работы с КС используется следующий URL "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status" ; По умолчанию http://localhost:8080 ;exciseMarkVerifyUrl = "http://localhost:8080" ; Таймаут обращения к серверу проверки акцизных марок в секундах ; По умолчанию 30 ;exciseMarkVerifyTimeout = 30 ; Игнорировать ошибки обращения к серверу проверки акцизных марок ; По умолчанию true ;ignoreExciseMarkVerifyErrors = true [EGAIS.2] ; Маска для проверки штрих-кода Pdf417 акцизной марки barcodeMask = "[a-zA-Z0-9]{150}" ; Включить сканирование доп штрих-кода DataMatrix ; По умолчанию false ;enableAdditionalBarcode = false ; Маска для проверки штрих-кода DataMatrix акцизной марки ; По умолчанию "^(1[0-9]{2}-[0-9]{30}|2[0-9]{2}-[0-9]{29}|0000000)$" ;additionalBarcodeMask = "^(1[0-9]{2}-[0-9]{30}|2[0-9]{2}-[0-9]{29}|0000000)$" ; Проверять алкокод акцизной марки ; По умолчанию false ;checkAlcoCode = false ; Проверять соответствие алкокода акцизной марки коду товара ; По умолчанию false ;checkTmcAlcoCode = false ; Проверять акцизные марки на кассе ; По умолчанию false ;enableExciseMarkVerifyLocal = false ; Проверять акцизные марки на сервере ; По умолчанию false enableExciseMarkVerify = true ; URL сервера проверки акцизных марок ; Для работы с КС используется следующий URL "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status" ; По умолчанию http://localhost:8080 exciseMarkVerifyUrl = "http://192.169.1.100:8080" ; Таймаут обращения к серверу проверки акцизных марок в секундах ; По умолчанию 30 exciseMarkVerifyTimeout = 30 ; Игнорировать ошибки обращения к серверу проверки акцизных марок ; По умолчанию true ignoreExciseMarkVerifyErrors = false |
При обращении к транспортному модулю ЕГАИС касса передает дополнительные параметры для идентификации торгового объекта: ИНН, КПП, адрес, наименование. Параметры идентификации торгового объекта задаются в БД Dictionaries
таблицы Shop
или конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [Shop]
.
Источник настроек магазина (ИНН, КПП, адрес, название) определяется параметром paramsSource
, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.
ini
в секции [Shop]
:
default
настройки магазина будут получены из БД кассы, при их отсутствии будут использованы данные из файла ncash
.ini
:db
настройки магазина будут получены из БД кассы,config
настройки магазина будут получены из конфигурационного файла /linuxcash/cash/conf/ncash.ini
.Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
paramsSource | строковый |
| Источник настроек магазина (ИНН, КПП, адрес, название) | По умолчанию default |
inn | строковый | ИНН торгового объекта | ||
kpp | строковый | КПП торгового объекта | ||
address | строковый | Адрес торгового объекта | ||
name | строковый | Наименование торгового объекта |
[Shop] ; Настройки магазина ; Источник настроек магазина (ИНН, КПП, адрес, название) ; default – по умолчанию, база данных и конфигурационный файл ; db – база данных ; config – конфигурационный файл ;paramsSource = default ; ИНН магазина ; По умолчанию "" ;inn = "1111111111" ; КПП магазина ; По умолчанию "" ;kpp = "111111111" ; Адрес магазина ; По умолчанию "" ;address = "Барнаул,ул. Калинина,116/44" ; Название магазина ; По умолчанию "" ;name = "Ритейл Сервис" |
Печать информации из ЕГАИС на чеке выполняется на основании шаблона egais.xml
.
<?xml version="1.0" encoding="UTF-8"?> <!-- Шаблон чека ЕГАИС.--> <report name = "egais" type="document" cached="true" title="Чек продажи ЕГАИС"> <br/><text align="center" fillsymbol=" " maxwidth="all">$shop.name$</text><br/> <text align="left" fillsymbol=" " maxwidth="all">ИНН: $shop.inn$</text> <text align="right" fillsymbol=" " maxwidth="all">КПП: $shop.kpp$</text><br/> <text align="left" fillsymbol=" " maxwidth="all">КАССА: $cash.code$</text> <text align="right" fillsymbol=" " maxwidth="all">СМЕНА: $shift.num$</text><br/> <text align="left" fillsymbol=" " maxwidth="all">ЧЕК: $document.num$</text> <text align="right" fillsymbol=" " maxwidth="all">ДАТА: </text> <var name="time_beg" dateformat="d2-mm-yyyy hh:mi"/><br/><br/> <printer op="barcode" type="QR" barcode='$url_egais$'/><br/><br/> <extvar name="url_egais" width="-1" quoted="false"/><br/> <extvar name="signature_egais" width="-1" quoted="false"/><br/><br/> </report> |
При формировании чека для отправки в ЕГАИС указывается дата и время добавления первой алкогольной позиции.
Программа запрещает добавление товара в чек, если акцизная марка этого товара была зарегистрирована ранее или товар с такой акцизной маркой был продан.
Для регистрации продажи алкогольного товара с акцизной маркой в ЕГАИС в свойствах товара устанавливается признак "Необходима регистрация в ЕГАИС". Опционально для алкогольной продукции указывается объем. Указание данных признаков поддерживают форматы AIF и дополнение формата Штрих-М.
Продажа акцизной алкогольной продукции, имеющей минимальную цену, равную 0, может быть запрещена или разрешена. Подробнее о запрете продажи алкогольной продукции можно прочитать в разделе "Цена товара". |
Каждая акцизная марка имеет уникальный двумерный штрих-код, поэтому в товарной позиции может быть не более 1 единицы товара. Применение модификатора "Количество" к позиции с маркированным товаром запрещено.
Добавление в чек товара с акцизной маркой осуществляется следующими способами:
Возможность добавления алкогольной продукции по серийному номеру в чек задается параметром useSerialNumber
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [EGAIS]
:
true
в диалоге сканирования акцизной марки будет осуществлена возможность добавления алкогольной продукции по серийному номеру,false
при добавлении товара в чек на экран будет выведен диалог сканирования акцизной марки.Серийный номер акцизной марки содержит серию (3 цифры) и номер (8 или 9 цифр). Ввод серийного номера осуществляется без пробелов, в поле ввода серия и номер визуально разделены на секции. |
При вводе серийного номера происходит запрос к БД Dictionaries
таблице Excisemarkwhite
для осуществления поиска акцизной марки по серийному номеру и типу акцизной марки "ALCOHOL
":
Кассовое ПО Artix позволяет запрещать добавление алкогольной продукции в чек последовательным сканированием штрих-кода товара и штрих-кода акцизной марки. Способ добавления алкоголя в чек, определяется параметром addAlcoholOnlyByExciseMark
, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [EGAIS]
:
true
добавление алкогольных товаров в чек может быть осуществлено только сканированием штрих-кода акцизной марки. При добавлении алкоголя последовательным сканированием штрих-кода товара и штрих-кода акцизной марки на экран будет выведено предупреждение "Алкоголь разрешено добавлять только по акцизной марке",false
добавление алкогольных товаров в чек может быть осуществлено любым способом, описанным выше. В кассовом ПО Artix реализована проверка доступности сервера ЕГАИС при добавлении алкогольной продукции в чек продажи/возврата или при выборе алкогольной позиции в чеке возврата по чеку продажи. Проверка регулируется параметром checkEgaisAvailableBeforeAddPosition
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [EGAIS]
:
true
:false
:Кассовое ПО Artix позволяет устанавливать для алкогольной продукции минимальную розничную цену равную цене товара, если МРЦ не задана, регулируется параметром setMinRetailPrice
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [EGAIS]
:
true
если для алкогольной продукции минимальная розничная цена не задана, то МРЦ будет равна цене товара,false
для алкогольной продукции будет использоваться минимальная розничная цена, заданная в БД или равная значению параметра minRetailPrice
.Параметр |
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
useSerialNumber | логический |
| Использовать серийный номер для получения акцизной марки из БД | По умолчанию false |
addAlcoholOnlyByExciseMark | логический |
| Добавлять алкоголь только по акцизной марке | По умолчанию false |
checkEgaisAvailableBeforeAddPosition | логический |
| Проверять доступность ЕГАИС перед добавлением позиции | По умолчанию false |
setMinRetailPrice | логический |
| Устанавливать для позиции минимальную розничную цену равной цене, если минимальная розничная цена не задана | По умолчанию false |
[EGAIS] ... ; Использовать серийный номер для получения акцизной марки из БД ; По умолчанию false ;useSerialNumber = false ; Добавлять алкоголь только по акцизной марке ; По умолчанию false ;addAlcoholOnlyByExciseMark = false ; Проверять доступность ЕГАИС перед добавлением позиции ; По умолчанию false ;checkEgaisAvailableBeforeAddPosition = false ; Устанавливать для позиции минимальную розничную цену равной цене, если минимальная розничная цена не задана ; По умолчанию false ;setMinRetailPrice = false |
Добавление акцизного товара другими способами (по коду, по наименованию, с помощью горячих клавиш) запрещено.
При быстром сканировании штрих-кода товара и штрих-кода акцизной марки возможно их объединение ("слипание"), чтобы этого избежать необходимо в конфигурационном файле |
При сторнировании алкогольной позиции программа запрашивает ввод штрих-кода акцизной марки. После сканирования штрих-кода акцизной марки или ввода серийного номера из чека удаляется именно та позиция, данные которой были считаны, независимо от того, какая позиция была выделена при операции сторнирования.
При сторнировании всего чека, содержащего алкогольные товары, операция выполняется без считывания штрих-кодов акцизных марок.
В целях организации электронного журнала учета алкогольной продукции обеспечена возможность формировать и отправлять в ЕГАИС данные об алкогольной продукции, не имеющей акцизную марку. Данные чека при закрытии передаются на сервер ЕГАИС отдельным запросом. Результаты запроса к серверу ЕГАИС сохраняются в БД и на печать не выводятся.
Добавление в чек алкогольных товаров без акцизной марки возможно только по штрих-коду. |
В реквизитах алкогольного товара без акцизной марки обязательно указывается код вида алкогольной продукции, а также устанавливается признак алкогольного товара без акцизной марки. Установку свойств алкогольного товара без акцизной марки поддерживает формат AIF и дополнение формата Штрих-М. Если обязательное поле код вида алкогольной продукции не заполнено, то при добавлении товара на экран выводится сообщение "Ошибка добавления алкоголя в чек. Не заполнены обязательные поля товара". |
Отсутствие акцизной марки позволяет не контролировать каждую единицу продукции, поэтому к алкогольным товарам без акцизной марки разрешено применение модификатора "Количество".
Сторнирование алкогольных товаров осуществляется в основном режиме без запроса на считывание акцизной марки.
Начиная с версии 4.6.120 реализован поиск алкогольной продукции в БД кассового сервера с учетом кластера. |
При использовании кластерного режима возникает необходимость проверки акцизной марки отдельно для каждого из клиентов, подключенных к кассовому серверу. В этом случае при запросе статуса акцизной марки касса отправляет на кассовый сервер запрос, включающий идентификатор кластера. При подключении к кассовому серверу в файле настроек sync-агента /linuxcash/cash/sync/properties/cash.ini
устанавливается ID кластера.
Для подтверждения продажи алкогольной продукции осуществляется обращение к УТМ и выполняется регистрация продажи в ЕГАИС. Порядок отправки данных в ЕГАИС и проведение оплаты чека определяется типом оплаты:
Порядок отправки данных в ЕГАИС при оплате по безналу определяется параметром sendEgaisBeforeCashlessPayment
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [EGAIS]
:
true
факт продажи алкогольной продукции будет направлен в ЕГАИС до проведения безналичной оплаты,false
факт продажи алкоголя направляется в ЕГАИС после проведения безналичной оплаты. Значение по умолчанию. При добавлением оплаты чека через банковский терминал осуществляется дополнительная проверка доступа к транспортному модулю с целью снижения рисков возникновения ситуации, при которой после оплаты пропадает связь с сервером ЕГАИС. Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
sendEgaisBeforeCashlessPayment | логический |
| Отправлять чек в ЕГАИС перед проведением безналичной оплаты | По умолчанию false |
[EGAIS] ... ; Отправлять чек в ЕГАИС перед безналичной оплатой. По умолчанию false ; sendEgaisBeforeCashlessPayment = false |
В случае успешной проверки на чековой ленте печатается URL и цифровая подпись (QR-код).
Согласно приказу Федеральной службы по регулированию алкогольного рынка от 01.02.2018 № 30 "О перечнях сведений, содержащихся в штрих-коде документа, предоставляемого покупателю, о факте фиксации информации о розничной продаже алкогольной продукции в единой государственной автоматизированной информационной системе учета объема производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции" Росалкогольрегулирование считает возможным не наносить отдельного штрих-кода в рамках введения системы ЕГАИС и использовать единый штрих-код для ЕГАИС и ККТ. Проверка факта фиксации розничной продажи по единому штрих-коду, будет успешно осуществляться в прежнем режиме через мобильное приложение Росалкогольрегулирования «Антиконтрафакт Алко». Для отключения печати квитанции при продаже товаров, проходящих проверку ЕГАИС, необходимо удалить шаблон квитанции |
Если при продаже алкоголя транспортный модуль недоступен, то на экран кассира выводится сообщение об ошибке:
Такой товар не может быть реализован (возвращен).
Если проверка завершается неудачей – закрытие чека блокируется, в этом случае необходимо вернуться к списку товаров и удалить алкогольную продукцию.
При добавлении в чек алкогольного товара, у которого не указан один из обязательных параметров, на экран будет выведено сообщение "Ошибка добавления алкоголя в чек. Не заполнены обязательные поля товара". Такой товар нельзя добавить в чек.
Отмена продажи в ЕГАИС отправляется при:
При отправке чека ЕГАИС может возникнуть ситуация, когда сервер оборвал соединение, но при этом данные акцизной марки дошли до сервера УТМ и чек был зарегистрирован. В этом случае отмена продажи алкогольной продукции в ЕГАИС отправлена не будет. |
Отмена в ЕГАИС регистрируется как возврат.
Пусть имеется чек продажи:
Перед осуществлением безналичной оплаты чек продажи с 2-мя позициями акцизного алкоголя был отправлен в УТМ. При оплате обнаружилась недостача средств на банковской карте. После закрытия ошибки оплаты пользователь переходит в режим формирования документа продажи и сторнирует позицию Водка "Петр 1". В УТМ отправляется отмена операции (чек возврата). При переходе в подытог перед повторной оплатой по безналу в УТМ отправляется чек продажи только с позицией Вино "Сладость лозы". В случае, если УТМ уже обработал отправленный ранее чек возврата, то чек продажи может быть закрыт. Если чек возврата в УТМ еще не обработан, то необходимо дождаться обработки сообщений в очереди УТМ. Примечание: обработка сообщений в очереди осуществляется в течение 2 минут. |
Возврат алкогольных товаров с акцизной маркой в торговую сеть может быть выполнен двумя способами:
Возврат алкогольной продукции по чеку продажи на другой кассе запрещен до версии 4.6.144 включительно. |
Алкогольные товары с акцизной маркой не могут быть возвращены в режиме "Возврат по чеку продажи", если отключена форма выбора товаров для возврата, так как для возврата требуется сканирование штрих-кода акцизной марки каждой единицы товара. В этом случае при переходе к формированию чека возврата товары с акцизной маркой удаляются из чека. |
Выбор позиций для возврата алкогольных товаров с акцизной маркой осуществляется тремя способами:
Выбор алкогольных товаров с акцизной маркой в форме выбора позиций для возврата не может быть отменен. Сторнирование выбранных позиций можно выполнить в режиме формирования чека возврата по чеку продажи. |
Возврат алкогольных товаров без акцизной марки осуществляется в основном режиме, поскольку не требуется считывания штрих-кода акцизной марки. |
Если акцизный алкоголь был возвращен на другой кассе, то невозможна повторная продажа этого товара на кассе, на которой он был продан изначально. |
Регламент работы по проверке акцизных марок при продаже и возврате акцизного алкоголя определяется структурой торговой сети. Проверка акцизной марки предполагает:
В соответствии с устройством сети проверка акцизных марок может быть выполнена:
При добавлении акцизного товара в чек всегда выполняется проверка данных в документах продаж в рамках всех смен, данные о которых хранятся на кассе:
Возможность дополнительной проверки акцизных марок может быть настроена в соответствии с описанием ниже.
При добавлении товара с акцизной маркой в чек продажи/возврата будет отправлен запрос статуса акцизной марки на сервер. Если при запросе статуса акцизной марки в чеке продажи/возврата возникла сетевая ошибка (сервер недоступен), то в очередь Artix-Queue будет отправлено сообщение с запросом на снятие акцизной марки с резерва (1 случай), однако, если при этом настройка "ignoreExciseMarkVerifyErrors" установлена в "true", то в очередь Artix-Queue будет отправлено сообщение с запросом на резервирование акцизной марки (4 случай). Если через какое-то время будет осуществлен повторный запрос статуса акцизной марки в чеке продажи/возврата, то продажа/возврат товара будут осуществлены (2 случай). При закрытии чека или сторнировании товара с акцизной маркой будет отправлен запрос на изменение статуса акцизной марки (3 случай). При выполнении повторного запроса на резервирование акцизной марки в чеке продажи/возврата будет осуществлена проверка на соответствие идентификатора чека и идентификатора запроса на резервирование акцизной марки (GUID, БД сервера
|
Помимо проверки акцизных марок в данных о продажах в кассовой программе можно настроить проверку "белого" списка акцизных марок (списка акцизных марок, разрешенных к продаже). "Белый" список акцизных марок может быть сформирован при приемке ТТН на кассе или проведении инвентаризации, а также с помощью сервисов обмена выгружен на кассу из товароучетной системы.
Проверка акцизных марок в "белом" списке в БД кассовой программы задается параметром enableExciseMarkVerifyLocal
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [EGAIS]
:
true
проверка акцизной марки осуществляется в БД Dictionaries
в таблице Excisemarkwhite
:false
проверка акцизной марки в "белом" списке не выполняется.После проверки акцизной марки в "белом" списке настройками программы может быть предусмотрена проверка соответствия алкокода акцизной марки коду товара в БД Dictionaries
в таблице Tmcalcocode
. Для проверки используется параметр checkTmcAlcoCode
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [EGAIS]
:
true
:enableExciseMarkVerifyLocal = false
, то алкокод проверяться не будет,enableExciseMarkVerifyLocal = true
и акцизная марка найдена в "белом" списке, то проверка соответствия кода товара и алкокода не выполняется,checkTmcAlcoCode = true
и акцизная марка не найдена в "белом" списке, то выполняется проверка соответствия кода товара и алкокода,false
проверка соответствия кода товара и алкокода выполняться не будет.В таблице Tmcalcocode
одному коду товара может соответствовать несколько алкокодов.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
enableExciseMarkVerifyLocal | логический |
| Проверять акцизные марки на кассе | По умолчанию false |
checkTmcAlcoCode | логический |
| Проверять соответствие алкокода акцизной марки коду товара | По умолчанию false |
[EGAIS] ... ; Проверять акцизные марки на кассе (по умолчанию false) ; enableExciseMarkVerifyLocal = false ; Проверять соответствие алкокода акцизной марки коду товара ; По умолчанию false ; checkTmcAlcoCode = false |
При добавлении акцизного товара в чек продажи/возврата на кассовый сервер в режиме онлайн направляется запрос о текущем статусе акцизной марки добавляемой позиции. Дальнейшее поведение программы определяется полученным статусом.
Проверка регистрации акцизных марок при продаже/возврате производится по умолчанию в рамках всех смен, данные о которых хранятся на кассе. Кассовое ПО позволяет дополнительно осуществлять контроль продажи/возврата акцизного алкоголя в рамках магазина или торговой сети. Информация о зарегистрированных ранее акцизных марках хранится на сервере торгового предприятия. Проверка акцизных марок на сервере задается при помощи параметра enableExciseMarkVerify
:
true
осуществляется проверка зарегистрированных акцизных марок на сервере,false
контроль акцизных марок в рамках магазина (торговой сети) не производится.Для проверки акцизных марок на всех кассах магазина (торговой сети) необходимо задать параметры подключения к серверу:
url
сервера, где хранятся данные об акцизных марках, – exciseMarkVerifyUrl
,exciseMarkVerifyTimeout
.Настройками программы можно разрешать или запрещать продажу/возврат акцизного алкоголя при возникновении ошибок обращения к серверу. Возможность игнорирования возникающих ошибок определяется параметром ignoreExciseMarkVerifyErrors
:
true
в случае возникновения ошибок подключения к серверу они игнорируются, продажа/возврат акцизного алкоголя осуществляется без проверки акцизной марки на сервере,false
в случае возникновения ошибок подключения к серверу продажа товара не может быть выполнена. На экран кассира выводится сообщение о том, что акцизная марка не может быть проверена.Для корректной проверки акцизных марок в белом списке на кассовом сервере необходимо: В настройках Artix Control Center:
|
Параметры проверки статусов акцизных марок и их резервирования задаются в секции EGAIS
конфигурационного файла /linuxcash/cash/conf/ncash.ini
.
Наименование | Тип данных | Воможные значения | Описание | Примечания |
---|---|---|---|---|
enableExciseMarkVerify | логический |
| Проверять акцизные марки на сервере | По умолчанию false |
exciseMarkVerifyUrl | строковый | URL сервера проверки акцизных марок | По умолчанию В случае размещения кассового сервера на мощностях Artix в качестве url используется значение При наличии собственного кассового сервера в качестве url необходимо использовать адрес на кассовом сервере до REST сервиса | |
exciseMarkVerifyTimeout | числовой | Таймаут обращения к серверу проверки акцизных марок в секундах | По умолчанию 30 секунд | |
ignoreExciseMarkVerifyErrors | логический |
| Игнорировать ошибки обращения к серверу проверки акцизных марок | По умолчанию true |
[EGAIS] ... ; Проверять акцизные марки на сервере (по умолчанию false) ; enableExciseMarkVerify = false ; URL сервера проверки акцизных марок (по умолчанию http://localhost:8080) ; exciseMarkVerifyUrl = "http://localhost:8080" ; Таймаут обращения к серверу проверки акцизных марок в секундах(по умолчанию 30 сек) ; exciseMarkVerifyTimeout = 30 ; Игнорировать ошибки обращения к серверу проверки акцизных марок (по умолчанию true) ; ignoreExciseMarkVerifyErrors = true |
Статус акцизной марки может принимать следующие значения:
При получении неизвестного статуса акцизной марки проверяется наличие сообщения об ошибке в ответе от сервера:
|
Резервирование акцизной марки выполняется после проверки всех действующих ограничений на возраст покупателя, время покупки, а также после обработки данных модификаторов позиции.
При добавлении акцизного алкоголя в документ продажи на кассовом сервере осуществляются следующие проверки:
Если по результатам всех проверок товар с акцизной маркой может быть продан, то на кассу передается статус проверок и акцизная марка ставится в резерв продажи на кассовом сервере.
При добавлении акцизного товара в документ возврата на кассовом сервере выполняются проверки:
Если после всех проверок товар с акцизной маркой можно вернуть, то на кассу передается статус проверок и акцизная марка ставится в резерв возврата на кассовом сервере.
Изменение статуса акцизной марки на кассовом сервере в зависимости от операции выполняется:
REST
-запросу) – резервирование акцизной марки,Проверка акцизных марок в справочнике акцизных марок, разрешенных к продаже, выполняется только при соответствующей настройке кассового сервера. |
Резервирование акцизной марки выполняется после проверки всех действующих ограничений на возраст покупателя, время покупки, а также после обработки данных модификаторов позиции. В зависимости от статуса акцизной марки, который возвращает кассовый сервер после проверки, поведение кассовой программы может отличаться.
Статус акцизной марки | Поведение кассы при продаже | Поведение кассы при возврате |
---|---|---|
Марка не зарегистрирована в БД | Товар с акцизной маркой добавляется в чек и может быть продан. | Так как товар не был ранее продан, то на экран выводится сообщение "Товар с акцизной маркой отсутствует на сервере", товар не добавляется в чек и не может быть возвращен |
Товар с такой маркой продан | Товар в чек не добавляется, на экран выводится ошибка "Товар с акцизной маркой уже был продан". | Товар добавляется в чек, его можно вернуть |
Товар с такой маркой возвращен | Товар добавлен в чек и может быть продан. | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был возвращен" |
Марка зарезервирована в чеке продажи | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован". | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован" |
Марка снята с резерва в чеке продажи | Товар добавляется в чек и может быть продан. | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой еще не продан" |
Марка зарезервирована в чеке возврата (чеке возврата по чеку продажи) | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован". | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован" |
Марка снята с резерва в чеке возврата (чеке возврата по чеку продажи) | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был продан". | Товар добавляется в чек, его можно вернуть |
Акцизная марка отсутствует в списке разрешенных к продаже | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже". | Статус не проверяется на сервере |
На кассовом сервере отсутствует связка кода и алкокода товара | Товар в чек не добавляется, на экран выводится ошибка «Товар с такой акцизной маркой запрещен к продаже. Код алкогольной продукции не найден». | Товар добавлен в чек и может быть возвращен |
Товар отсутствует на остатке | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Нет на остатке". | Товар добавлен в чек и может быть возвращен |
Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не передан | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен штрих-код для проверки в белом списке". | Товар добавлен в чек и может быть возвращен |
Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найдено | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не найдено соответствие акцизной марки и штрих-кода в белом списке". | Товар добавлен в чек и может быть возвращен |
Магазин для проверки остатков не найден | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не найден магазин для проверки остатков". | Товар добавлен в чек и может быть возвращен |
Штрих-код для проверки остатков не заполнен | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен штрих-код для проверки остатков". | Товар добавлен в чек и может быть возвращен |
Код товара для проверки остатков не заполнен | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен код товара для проверки остатков". | Товар добавлен в чек и может быть возвращен |
Справочник остатков для товара, по которому проверяем остатки, заполнен не корректно | Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Некорректно заполнен справочник остатков для товара". | Товар добавлен в чек и может быть возвращен |
Неизвестный статус акцизной марки | Товар в чек не добавляется, на экран выводится ошибка "Неизвестный статус акцизной марки на сервере". | Товар в чек не добавляется, на экран выводится ошибка "Неизвестный статус акцизной марки на сервере" |
Если акцизная марка была поставлена в резерв, т.е. уже была добавлена в чек, то такой товар в чек не может быть добавлен. После осуществления продажи/возврата акцизная марка позиции снимается с резерва и переходит в статус, соответствующий выполненной операции – продана/возвращена. Снятие резерва с акцизной марки выполняется также при сторнировании товарной позиции из документа.
Если на кассе установлена версия ПО ниже 4.6.96, то для того чтобы статус резервной марки изменялся после закрытия чек необходимо осуществлять выгрузку продаж после закрытия каждого чека. Для этого необходимо на событие "Действие после закрытия документа" назначить макрос "Выгрузка текущих продаж" с параметром "Выгрузка продаж на КС". Подробнее о задании макросов можно прочитать в разделе "События и макросы".