Порционная продажа алкоголя
В этой статье будет рассмотрен вариант продажи порционного алкоголя через r_keeper 7 и ЕГАИС без использования StoreHouse 5.
Описанные настройки предполагают работу только с чистым алкоголем без продажи коктейлей.
Контроль марок происходит на стороне ЕГАИС.
Интеграция с ЕГАИС
Интеграция r_keeper 7 c системой ЕГАИС позволяет выполнить проверку и печать отдельным документом информации о подлинности покупаемого клиентом алкоголя при оформлении чека продажи.
Имея на руках документ с QR-кодом, клиент может самостоятельно считать код на мобильном устройстве, перейти на сайт ФСРАР и проверить подлинность приобретаемой алкогольной продукции.
Технология работы
На кассе добавление позиций алкоголя в заказ происходит обычным способом. Далее с помощью сканера штрих-кодов сканируются и добавляются к блюду:
- штрих-код с этикетки алкогольной продукции EAN13
- акцизная марка — будет выполнена попытка верификации товара через Универсальный транспортный модуль (далее УТМ).
В случае успешной проверки заказ можно будет оплатить, при этом автоматически распечатается фискальный чек с QR-кодом для самостоятельной проверки алкогольной продукции.
Если проверка по каким-либо причинам не прошла (нет связи с УТМ, не оформленный алкоголь и прочее), закрыть заказ с оплатой, пока в нем находится непроверенный алкоголь, система не даст.
Вскрытые до 01.07.2024 бутылки считаются полностью списанными, их не нужно передавать в УТМ. Если при продаже алкоголя используется бутылка, вскрытая до 01.07.2024, то сканировать реальные штрих-код и марку с бутылки не надо. Необходимо использовать техническую марку.
Последовательность: {EAA0ECBE-CB14-443F-9676-EE3336CF79B4}
Если QR будет генерироваться в специальных сервисах генерации QR-кодов, то необходимо использовать всю последовательность, включая {}
Схема взаимодействия модулей
- Запрос: Касса > Кассовый сервер > ПДС интерфейс(логический) > ПДС-интерфейс > FARCARDS > ExtdllEGAIS.dll > УТМ > ФСРАР.
- Ответ: по обратной цепочке.
Системные требования
- r_keeper 7.07.00.363 и выше
- Сканер штрих кодов, основное требование к сканеру — поддержка штрих-кодов в формате PDF417, а также поддержка в r_k 7
- Farcards 604
- Интерфейсная библиотека для Farcards ExtdllEGAIS.dll. 2.4.0.12.
Установка и настройка
УТМ
Установка, запуск и проверка работы выполняется стандартным образом.
Farcards
Подробно процесс установки модуля Farcards описан в статье Установка и настройка системы ПДС.
После установки и базовой настройки Farcards необходимо подключить и настроить интерфейсную библитоеку ExtdllEGAIS.dll — актуальную версию можно скачать на FTP ftp://ftp.ucs.ru/rk7/other/fc_egais/
Для подключения библиотеки в файле FARCARDS.INI прописываем параметры
[FarServer]
Type = 1
DLL = ExtdllEGAIS.dll
...
Остальные секции и параметры настраиваются стандартным образом — более подробно в документе Настройка связи с ПДС
Далее настраиваем конфигурационный файл ExtdllEGAIS.ini для библиотеки ExtdllEGAIS.dll:
Настройки для версии 2.4.0.12:
[EGAIS]
INN=7701723018
KPP=770101001
Address=Москва г, ул. Большая почтовая д. 18 стр. 6
RestaurantName=Шоурум
KassaMachineNum=435345342
UTM=http://172.22.3.62:8081/xml/
CalcPrice = 0
HorecaStore = 0
[Main]
LogLevel=1
MaxChars=40
[RK]
InterfaceId=127
где:
- INN, KPP, Address, RestaurantName — параметры организации. Используются при печати QR-кода (можно взять из настроек УТМ)
- KassaMachineNum — номер ККМ. Параметр устарел, в версии 2.4.0.6 заполнение не требуется.
- UTM — URL для обмена данными через УТМ
- CalcPrice — параметр, определяющий, как считается цена для передачи в ЕГАИС.
- 0 – цена будет передана из карточки блюда r_k
- 1 – цена рассчитывается по алгоритму:
- если Volume < 500 мл Price пересчитывать на 500 мл
если Volume >= 500мл Price=Price r_k.
Например, при продаже бокала вина 150мл по 300р. в ЕГАИС передастся Volume 150мл Price 1000 (цена за 500мл). А при продаже бутылки вина 750мл за 1800р. в ЕГАИС передаётся Volume 750мл Price 1800 (цена из карточки блюда).Параметр добавлен с версии 2.4.0.12. В 2.4.0.10 работает только по правилу 1.
- HorecaStore — параметр, определяющий вариант оформления возврата при удалении чека с порционным алкоголем:
- 0 – оформляется возврат в r_keeper, оформляется возврат в ЕГАИС.
- 1 – оформляется возврат в r_keeper, не оформляется возврат в ЕГАИС. Информация об отмененной порции (марка и объём) фиксируется в интерфейсе и будет учтена при последующих продажах. Например, удалили чек, где было 300мл водки, в ЕГАИС возврат не произошел, информация зафиксировалась, при следующей продаже 500мл водки, отправлено в ЕГАИС будет только 200мл, так как 300 уже были списаны.
- MaxChars — количество символов в строке при печати информации от ЕГАИС в купоне
- InterfaceId — идентификатор интерфейса (необязательный параметр):
а. Заполнен — обрабатываются запросы только для этого интерфейса
б. Не заполнен — обрабатываются запросы для всех интерфейсов.
- При добавлении на кассовый сервер нескольких интерфейсов, параметр InterfaceId обязателен к заполнению, иначе ЕГАИС-farcards корректно работать не будет.
- С версии 7.07.00.361 идентификатор предустановленного интерфейса Продажа порционного алкоголя — 127.
Параметры Address, KassaMachineNum, LogLevel устарели, и с версии 2.4.0.7 исключены из конфигурационного файла ExtdllEGAIS.ini.
[EGAIS]
; параметры для печати
INN=7709750359
KPP=770901001
RestaurantName=Тестовый ресторан
UTM=http://172.22.4.154:8080/xml/
CalcPrice = 0
HorecaStore = 0
[Main]
MaxChars=40
[Rk]
;Если задан, то обрабатывать запросы только от этого интерфейса
InterfaceId=127
Настройки в менеджерской r_keeper
В справочнике Настройки > Параметры в параметре Режим работы заведения выберите значение Режим HoReCa — для реализации порционного алкоголя.
В версии 7.07.00.323 этот параметр называется Режим продажи пива.В справочнике Настройки > Параметры в параметре Ввод марок для крепкого алкоголя установите значение Вручную.
Параметр добавлен с версии 7.07.00.326.Проверьте наличие предустановленных условий:
- В справочнике Меню > Модификаторы по умолчанию добавлена группа модификаторов ЕГАИС EAN13 и PDF417
Также убедитесь, что модификаторы включены в используемые торговые группы. - В справочнике Меню > Схемы модификаторов по умолчанию добавлена схема РОССИЯ: ЕГАИС, в которую входит группы модификаторов ЕГАИС EAN13 и PDF417
- В справочник Меню >Классификации блюд по умолчанию добавлена классификация Маркировка/Россия с предустановленными категориями. Если классификация не активирована, активируйте ее.
Если меню было заведено до активации классификации, чтобы активировать классификацию Маркировка/Россия, снимите флаг Обяз. группировка. Активируйте классификацию, распределите все блюда по категориям, а потом снова выставьте флаг, если обязательность группировки нужна.
Для продажи алкоголя будет использоваться категория Алкогольные напитки. Для неё выбрана схема модификаторов РОССИЯ: ЕГАИС.
Также убедитесь, что категория включена в используемую торговую группу. - В справочнике Сервис > Обработка сигналов устройств > MCR алгоритмы активированы предустановленные MCR-алгоритмы ЕГАИС EAN и ЕГАИС PDF417.
ЕГАИС EAN до версии 7.0.0.348 назывался EAN-13, но теперь поддерживает и EAN-8/12/13.
- В справочнике Меню > Модификаторы по умолчанию добавлена группа модификаторов ЕГАИС EAN13 и PDF417
- Для каждого блюда, которое должно учитываться при порционной продаже алкоголя:
- В классификации Маркировка/Россия выберите категорию Алкогольные напитки
- Выберите Литр в свойстве Тип единицы измерения. Значение передаётся в атрибут фискального чека Мера количества предмета расчета (Тег 2108).
- Укажите объем напитка в свойстве Объем (мл)
- В свойстве Тип товара выберите значение Подакцизный товар без кода маркировки
- В свойстве Добавление в заказ выберите Отдельная строка для каждой порции
- Для возможности добавлять алкоголь без сканирования марки в момент добавления блюда в заказ выставьте флаг Ввод маркировки при оплате. Данная настройка необходима при работе с официантского терминала или мобильного официанта.
- В справочнике Настройки > Печать > Документы и макеты в разделе Документы CRM > Купон создайте новый макет печати ЕГАИС: Инфо. Для этого:
- откройте дизайнер макета и импортируйте готовой макет EGAIS_kupon.mak (находится на FTP ftp://ftp.ucs.ru/rk7/other/fc_egais/EGAIS_kupon.mak)
- в печатный макет кроме команды QRCode можно добавлять параметр QRProperties <высота>;<Уровень коррекции QR-кода>, например: <QRProperties 100;15%><QRCode "[QRCodeField]">.
- В справочнике Настройки > Печать > Схемы печати выберите требуемую схему печати и добавьте в представления документов созданный макет печати ЕГАИС: Инфо. В свойствах представления выберите Класс основного принтера, который будет печатать QR-код (как правило это чековый принтер).
- В справочнике Параметры > Установочные > Связь с другими системами в свойствах параметра Классификация для ЕГАИС выберите классификацию Маркировка/Россия
- В справочнике Сервис > Станции и устройства выберите кассовый сервер и на закладке Устройства добавьте PDS interface
- В свойствах PDS-интерфейса настройте базовые параметры и для параметра Pass ALL Receipts XML data установите значение:
- Yes, always (fail if impossible) — до версии 7.07.00.361
- By Script — с версии 7.07.00.361, для применения предустановленного скрипта, позволяющего продавать обычные блюда без работающего Farcards egais.
- В справочнике Сервис > Интерфейсы:
- до версии 7.07.00.361: выберите интерфейс Персональная Дисконтная Система (ПДС) и свяжите его с PDS-интерфейсом, созданным в предыдущем пункте. Если интерфейс Персональная Дисконтная Система (ПДС) уже задействован, скопируйте и переименуйте предустановленный вариант (например, в интерфейс ЕГАИС). Перезагрузите кассовый сервер.
с версии 7.07.00.361: выберите интерфейс Продажа порционного алкоголя и свяжите его с PDS-интерфейсом, созданным в предыдущем пункте. Перезагрузите кассовый сервер.
При обновлении на версию 7.07.00.361 рекомендуем перенести настройки на новый интерфейс для возможности работать с обычными блюдами без работающего Farcards egais.
- В справочнике Сервис > Станции и устройства выберите кассовую станцию и на закладке Устройства добавьте порт и драйвер для подключения сканера штрих-кодов. Настройте параметры драйвера.
Для контроля корректности считывания данных с бутылки, можно добавить скрипт, который будет проверять, что для модификатора EAN-13 пользователь отсканировал именно штрихкод, а для PDF-417 — марку.
- Перейдите Настройки > Графический интерфейс > Формы
- В дереве меню выберите Заказ > Редактирование заказа. Создайте новый экземпляр формы на основе существующего
- Перейдите в редактор формы и выделите центральное поле. Справа вверху появится значение Checkview
- У объекта CheckView в событии OnBeforeCheckViewEdit (страница События) укажите скрипт:
procedure CheckViewOnBeforeCheckViewEdit(Sender: TObject; AEditType: TEditType; AObjectBef, AObjectAft: TObject; var AAllow: boolean; var AMessage: string); var Modi: TModiItem; len: Integer; begin if (AEditType = etInsert) and SYS.ObjectInheritsFrom(AObjectAft, 'TModiItem') then begin Modi := TModiItem(AObjectAft); len := Length(Modi.OpenName); if (Modi.Sifr = 2003{EAN13}) and (len <> 13) and (len <> 14) and (len <> 12) and (len <> 8) then begin AAllow := False; AMessage := 'Отсканирована не та марка, ожидается сканирование ' + TModifier(Modi.RefItem).Name; end; if (Modi.Sifr = 2004{DataMatrix}) and (len <> 150) then begin AAllow := False; AMessage := 'Отсканирована не та марка, ожидается сканирование ' + TModifier(Modi.RefItem).Name; end; end; end;
Не забудьте создать новую схему форм и назначить её в использование.
Работа на кассовой станции
Добавление блюда в заказ
Блюдо может добавляться в заказ:
- на кассовой станции, где есть сканер штрих-кодов. В этом случае:
- Добавьте блюдо в заказ обычным способом
- Отсканируйте штрих-код и марку бутылки
- Оплатите заказ
- на r_k Waiter или отдельной официантской станции без возможности сканировать марку. В этом случае:
- Добавьте блюдо в заказ обычным способом. У блюда должен стоять флаг Ввод маркировки при оплате
- Сохраните заказ. Блюдо до сканирования марки будет отмечено знаком вопроса
- На терминале, где есть сканер штрих-кодов, при выдаче блюда отсканируйте штрих-код и марку бутылки
- Оплатите заказ.
Вскрытые до 01.07.2024 бутылки считаются полностью списанными, их не нужно передавать в УТМ. Если при продаже алкоголя используется бутылка, вскрытая до 01.07.2024, то сканировать реальные штрих-код и марку с бутылки не надо. Необходимо использовать техническую марку.
Последовательность: {EAA0ECBE-CB14-443F-9676-EE3336CF79B4}
Если QR будет генерироваться в специальных сервисах генерации QR-кодов, то необходимо использовать всю последовательность, включая {}
Оплата
При попытке оплаты заказа без добавления марки выйдет ошибка.
Перед печатью фискального чека данные передаются в УТМ в формате ChequeV4.
После получения положительного ответа от ЕГАИС печатается фискальный чек + QRкод ЕГАИС.
Если на момент оплаты ЕГАИС будет недоступен выйдет ошибка. Чек закрыт не будет.
Если от ЕГАИС вернётся ошибка, из заказа удалятся заполненные модификаторы EAN и DataMatrix для позиций с ошибкой. Если в заказе одинаковые позиции алкоголя и по одной из низ пришла ошибка, удалятся данные по всем позициям. Модификаторы необходимо будет заполнить заново, новыми данными.
Удаление чека
При удалении чека в зависимости от значения параметра HorecaStore:
- или в УТМ отправляется “возврат” в формате ChequeV4.
- или оформляется только фискальный возврат и не оформляется возврат в ЕГАИС. Информация об отмененной порции (марка и объём) фиксируется в интерфейсе и будет учтена при последующих продажах. Например, удалили чек, где было 300мл водки, в ЕГАИС возврат не произошел, информация зафиксировалась, при следующей продаже 500мл водки, отправлено в ЕГАИС будет только 200мл, так как 300 уже были списаны.
Проверка марки в ЕГАИС
С версии r_keeper 7.07.00.361 и ExtdllEGAIS 2.4.0.25 добавлена возможность на кассе проверять марки на наличие на остатках организации в ЕГАИС.
Проверка происходит через запрос в УТМ Запрос проверки марок на остатках организации QueryFilter.
Для проверки:
- В главном меню откройте форму Меню > Проверка марки в ЕГАИС
- Отсканируйте марку с бутылки
- Выйдет результат проверки:
- в случае успешной проверки
- в случае неуспешной проверки
- в случае невозможности подключения к ExtdllEGAIS (отключен или не настроено подключение)
- в случае успешной проверки