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

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

УТМ

Установка, запуск и проверка работы выполняется стандартным образом.

Если на предприятии уже установлен модуль УТМ (например, для системы StoreHouse), его можно задействовать для интеграции с r_keeper 7.

Farcards

Подробно процесс установки модуля Farcards описан в статье Установка и настройка системы ПДС.

После установки и базовой настройки Farcards необходимо подключить и настроить интерфейсную библитоеку ExtdllEGAIS.dll актуальную версию можно скачать на FTP ftp://ftp.ucs.ru/rk7/other/fc_egais/

Для подключения библиотеки в файле FARCARDS.INI прописываем параметры

[FarServer]
Type = 1
DLL = ExtdllEGAIS.dll
...
CODE

Остальные секции и параметры настраиваются стандартным образом — более подробно в документе Настройка связи с ПДС

Далее настраиваем конфигурационный файл 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
CODE

где:

  • 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
CODE

Настройки в менеджерской r_keeper

  1. В справочнике Настройки > Параметры в параметре Режим работы заведения выберите значение Режим HoReCa — для реализации порционного алкоголя.

    В версии 7.07.00.323 этот параметр называется Режим продажи пива.
  2. В справочнике Настройки > Параметры в параметре Ввод марок для крепкого алкоголя установите значение Вручную.

    Параметр добавлен с версии 7.07.00.326.
  3. Проверьте наличие предустановленных условий:

    • В справочнике Меню > Модификаторы по умолчанию добавлена группа модификаторов ЕГАИС EAN13 и PDF417

      Также убедитесь, что модификаторы включены в используемые торговые группы.
    • В справочнике Меню > Схемы модификаторов по умолчанию добавлена схема РОССИЯ: ЕГАИС, в которую входит группы модификаторов ЕГАИС EAN13 и PDF417
    • В справочник Меню >Классификации блюд по умолчанию добавлена классификация Маркировка/Россия с предустановленными категориями. Если классификация не активирована, активируйте ее.
      Если меню было заведено до активации классификации, чтобы активировать классификацию Маркировка/Россия, снимите флаг Обяз. группировка. Активируйте классификацию, распределите все блюда по категориям, а потом снова выставьте флаг, если обязательность группировки нужна.
      Для продажи алкоголя будет использоваться категория Алкогольные напитки. Для неё выбрана схема модификаторов РОССИЯ: ЕГАИС.
      Также убедитесь, что категория включена в используемую торговую группу.
    • В справочнике Сервис > Обработка сигналов устройств > MCR алгоритмы активированы предустановленные MCR-алгоритмы ЕГАИС EAN и ЕГАИС PDF417.
      ЕГАИС EAN до версии 7.0.0.348 назывался EAN-13, но теперь поддерживает и EAN-8/12/13.
  4. Для каждого блюда, которое должно учитываться при порционной продаже алкоголя:
    • В классификации Маркировка/Россия выберите категорию Алкогольные напитки
    • Выберите Литр в свойстве Тип единицы измерения. Значение передаётся в атрибут фискального чека Мера количества предмета расчета (Тег 2108).
    • Укажите объем напитка в свойстве Объем (мл)
    • В свойстве Тип товара выберите значение Подакцизный товар без кода маркировки
    • В свойстве Добавление в заказ выберите Отдельная строка для каждой порции
    • Для возможности добавлять алкоголь без сканирования марки в момент добавления блюда в заказ выставьте флаг Ввод маркировки при оплате. Данная настройка необходима при работе с официантского терминала или мобильного официанта.

  5. В справочнике Настройки > Печать > Документы и макеты в разделе Документы CRM > Купон создайте новый макет печати ЕГАИС: Инфо. Для этого:
    1. откройте дизайнер макета и импортируйте готовой макет EGAIS_kupon.mak (находится на FTP ftp://ftp.ucs.ru/rk7/other/fc_egais/EGAIS_kupon.mak)
    2. в печатный макет кроме команды QRCode можно добавлять параметр QRProperties <высота>;<Уровень коррекции QR-кода>, например: <QRProperties 100;15%><QRCode "[QRCodeField]">.
  6. В справочнике Настройки > Печать > Схемы печати выберите требуемую схему печати и добавьте в представления документов созданный макет печати ЕГАИС: Инфо. В свойствах представления выберите Класс основного принтера, который будет печатать QR-код (как правило это чековый принтер).
  7. В справочнике Параметры > Установочные > Связь с другими системами в свойствах параметра Классификация для ЕГАИС выберите классификацию Маркировка/Россия
  8. В справочнике Сервис > Станции и устройства выберите кассовый сервер и на закладке Устройства добавьте PDS interface
  9. В свойствах PDS-интерфейса настройте базовые параметры и для параметра Pass ALL Receipts XML data установите значение:
    • Yes, always (fail if impossible) — до версии 7.07.00.361
    • By Script — с версии 7.07.00.361, для применения предустановленного скрипта, позволяющего продавать обычные блюда без работающего Farcards egais.

  10. В справочнике Сервис > Интерфейсы:
    • до версии 7.07.00.361: выберите интерфейс Персональная Дисконтная Система (ПДС) и свяжите его с PDS-интерфейсом, созданным в предыдущем пункте. Если интерфейс Персональная Дисконтная Система (ПДС) уже задействован, скопируйте и переименуйте предустановленный вариант (например, в интерфейс ЕГАИС). Перезагрузите кассовый сервер.
    • с версии 7.07.00.361: выберите интерфейс Продажа порционного алкоголя и свяжите его с PDS-интерфейсом, созданным в предыдущем пункте. Перезагрузите кассовый сервер.

      При обновлении на версию 7.07.00.361 рекомендуем перенести настройки на новый интерфейс для возможности работать с обычными блюдами без работающего Farcards egais.


  11. В справочнике Сервис > Станции и устройства выберите кассовую станцию и на закладке Устройства добавьте порт и драйвер для подключения сканера штрих-кодов. Настройте параметры драйвера.

Для контроля корректности считывания данных с бутылки, можно добавить скрипт, который будет проверять, что для модификатора EAN-13 пользователь отсканировал именно штрихкод, а для PDF-417 — марку.

  1. Перейдите Настройки > Графический интерфейс > Формы
  2. В дереве меню выберите Заказ > Редактирование заказа. Создайте новый экземпляр формы на основе существующего
  3. Перейдите в редактор формы и выделите центральное поле. Справа вверху появится значение Checkview
  4. У объекта 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;

Не забудьте создать новую схему форм и назначить её в использование.


Работа на кассовой станции

Добавление блюда в заказ

Блюдо может добавляться в заказ:

  • на кассовой станции, где есть сканер штрих-кодов. В этом случае:
    1. Добавьте блюдо в заказ обычным способом
    2. Отсканируйте штрих-код и марку бутылки
    3. Оплатите заказ
  • на r_k Waiter или отдельной официантской станции без возможности сканировать марку. В этом случае:
    1. Добавьте блюдо в заказ обычным способом. У блюда должен стоять флаг Ввод маркировки при оплате
    2. Сохраните заказ. Блюдо до сканирования марки будет отмечено знаком вопроса
    3. На терминале, где есть сканер штрих-кодов, при выдаче блюда отсканируйте штрих-код и марку бутылки
    4. Оплатите заказ.

Вскрытые до 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.

Для проверки:

  1. В главном меню откройте форму Меню > Проверка марки в ЕГАИС

  2. Отсканируйте марку с бутылки
  3. Выйдет результат проверки:
    • в случае успешной проверки
    • в случае неуспешной проверки

    • в случае невозможности подключения к ExtdllEGAIS (отключен или не настроено подключение)