Пользовательские операции в менеджерской станции

 

Настройка скидки на определенную категорию блюд

 

Ниже представлена инструкция для настройки скидки, например если в ресторане проводится акция: "Закажите на сумму 1000р, и получи скидку на сумму в 500р на все напитки в баре!"

1) В «Меню -> Классификация блюд» создать новую категорию, например, «Спиртное 2»

2) В эту группу добавляем необходимые блюда из меню:

3) Заводим новую скидку («Деньги --> Скидки и Наценки»): В данном примере заведена скидка «500 р. в бар при заказе от 1000 р.». Для которой в свойствах указано:

«Основное --> Макс. сумма»: 500 р.

«Ограничения --> Мин. остаток заказа»: 1000 р

«Ограничения --> Классификация»: <выбираем соответствующую классификацию, в которой создана необходимая  категория меню> в данном примере  это - «3 Классификация»

«Ограничения --> На заказ»: да

4) Для этой скидки создаём детализацию:

«Основное --> Сумма»: 500 р.

«Ограничения --> Мин. сумма»: 0,00

«Ограничения --> Категория»: <выбираем соответствующую категория меню из классификации указанной в свойствах редактируемой скидки> в данном примере  это - «8 Спиртное 2»

«Ограничения --> Ресторан»: <указываем для какого ресторана будет действовать скидка> в данном примере  это - «79 МойРесторан1»

5) Если требуется чтобы скидка была автоматической, то в «Деньги --> Использование скидок и наценок» выставляем «Автоматически» для нашей скидки «500 р. в бар при заказе от 1000 р.»

 

Результат скидки на кассе:

Скидка не применилась, т.к. сумма чека менее 1000 р. по условию скидки:

Скидка применилась только на сумму 290 р по имеющимся блюдам из группы «Спиртное 2» (Бейлис, Ром), но сумма чека не ниже 1000 р., согласно ограничению скидки. 

Скидка применилась на сумму 500 р. по имеющимся блюдам из группы «Спиртное 2» (Бейлис, Ром, Баккарди), согласно ограничению скидки.

Создание формы для быстрого чека с отложенными заказами

 

Форма быстрого чека с отложенными заказами.

Эту форму сделали специально для Германии. И все настройки тоже делаются с учетом проека для Германии. Но при желании эти настройки можно сделать и в обычном ресторане.

1. Во-первых, нужно создать новую схему форм. Для этого нужно зайти в справочник Схемы форм, и на основе схемы Стандарт  создать свою форму. Вынести новую схему в использование.

2. Дальше нужно подставить в новую схему другую форму быстрого чека. Справочник Схемы форм – выделить новую схему форм – Свойства – Назначения форм – Редактирование заказа (быстрый чек) – 800*600 TS – Редактор заказа 800*600 (быстрый чек + список столов)

3. В справочнике Столы и залы завести новый зал (например, для быстрого чека), этот зал нужно указать по-умолчанию в свойствах кассовой станции.

4. Завести для работников позиции обслуживания. Это нужно для того, чтобы кассиры, работающие в быстром чеке, откладывали заказы только на свои столы. Каждое утро нужно будет регистрировать кассиров на свои позиции обслуживания.

5. Параметр Автоматический выбор стола – поставить значение По порядку или Первый свободный.

6. Теперь с новой формой касса в быстром чеке будет выглядеть примерно так:

Где Б-1, Б-2, Б-3 – столики, которые относятся к сервис-позиции кассира.

При создании заказа на столике Б-1 видна картинка – редакторование заказа. Если клиент замешкался, кассиру нужно будет просто нажать на кнопку со столиком Б-2.

Теперь кассир уже создает заказ на столике Б-2, но при этом на кассе висит неоплаченный заказ Б-1. Кассир в любой момент может его открыть и оплатить. Таким образом кассир работает в быстром чеке, но имеет возможность откладывать оплату заказа.

Редактирование справочников

 

Редактор экранных форм

Основное

В менеджерской станции r_keeper_7 есть встроенный редактор форм. Он позволяет менять дизайн и гибко настраивать поведение рабочей области. Можно в широком диапазоне менять настройки и функционал, назначая кнопкам пользовательские скрипты взамен стандартных.

Для этого могут использоваться дополнительные элементы программирования: скрипты, операции, кнопки, панели, лейблы и другое.

Работа с формами

Справочник с готовыми формами находится в разделе "Настройки - Графический интерфейс - Формы". Ищем необходимую форму, делаем ее копию и редактируем.

Редактировать можно только копии предустановленных форм. Вызывается редактор из свойства "Модель"  не предустановленного объекта (рисунок ниже). 

Примечание: для использования новой формы необходимо ее выбрать в свойствах используемой на кассе схемы формы ("Настройки - Графический интерфейс - Схемы форм"). Если схема является предустановленной, то необходимо сделать её копию и настроить использование в справочнике "Настройки - Графический интерфейс - Использование схем форм"

Рис. Справочник "Формы"

Рис. Свойства Схемы форм

Основные свойства объектов формы

  • Объекты формы могут располагаться «послойно».
  • Выделенный объект можно с помощью одноименных команд всплывающего меню Переместить назад или Переместить вперед.
  • Нажатие на клавишу «Esc» позволяет последовательно перемещать выделение с «дочернего» объекта на «материнский».Корневым является объект «DesignForm».
  • Пользователь может наносить на форму объекты типа TGLabel, TGOperationButtоn, TGStaticText, TSelectorPanel и другие.

Рис. Редактор форм

Строка 1 (см. цифра 1 на рисунке выше) содержит следующие данные выделенного объекта: [Название объекта]: [Тип объекта].

  • События объекта

Каждый объект может вызывать то или иное событие, которое можно отредактировать, используя скрипты.

Например, у формы есть событие OnActivate, которое возникает когда активируется данная форма. Войдя в событие, мы попадём в "Обработчик событий формы", где можно вписать текст:

procedure DesignFormOnActivate(Sender: TObject);
begin
 Gui.ShowMessage('Hello!'); 
end;
  • Область чека - элемент типа TCheckView

Свойство Формат объекта TCheckView формы Редактирование заказа является входом в самостоятельный редактор формата области чека (см. рис. ниже).

Рис. Формат данных, выводимых на компонент типа TCheckView

Для области Чека (FramePanel) можно настроить цветовую схему при просмотре.

Рис. Настройки FramePanel

Работа с селекторами

Селектор - это динамическая область формы, состоящая из страниц. Все селекторы группируются по принадлежности к типу селектора. Страниц селектора может быть от одной до нескольких. Можно выбрать страницу, которая будет отображаться по-умолчанию при старте.
На странице селектора можно разместить кнопки и страницы селекторов.

Рис. Добавление элемента странице селектора

  • Страница селектора должна иметь заполненный параметр "Вызыв. операция" - операция, вызывающая переход на данную страницу селектора.
  • Страница селектора может иметь "Макет". Макет можно редактировать. 
  • Возможно создание своих селекторов и страниц (раздел Пользовательские).
  • После подготовки селектора его следует привязать к форме.

Скрипты

R-Keeper 7 обладает широкими возможностями по программированию тех или иных действий на кассе. Для этого используется синтаксис языка Pascal и классы, определенные в системе. Описание классов представлено в статье http://support.ucs.ru/ru/node/6260.

Примеры использования скриптов смотрите в трекере http://tracker.ucs.ru/issues/12067

Подробнее о настройках и работе с формами читайте в руководстве пользователя РК7.

Настройка карты на входе

Введение

В развлекательных центрах полного цикла обслуживания окажется полезной возможность использования технологии карта на входе.

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

При входе в равлекательный центр компания гостей получает магнитную карту, на которую персоналом вносятся данные о содержании и сумме обслуживания каждого заказа.

На выходе из развлекательного центра все заказы, сделанные во время визита, представленны в виде суммарного заказа (сгруппированного по отдельным заказам), по которому производится расчет.

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

Необходимо отредактировать следующие параметры в справочнике Настройки - Параметры:
  • Один заказ на визит = False  ([Все] - [Использование опций] - [Свойства визита] - [Один заказ на визит])

  • Карта на входе = Могут быть гости без карты (либо Все гости должны иметь карту)  ([Все] - [Использование опций] - [Карта на входе]). C версии 7.5.7.44 ([Все] - [Использование опций] - [Карта входа]).

  • Оплата на выходе = True (если расчет визита осуществляется на выходе) ([Все] - [Параметры работы станции] - [Редактирование заказа] - [Расчёт/Оплата заказа] - [Оплата на выходе]).

  • Контроль максимальной суммы заказа = Запретить сохранение заказа или Только предупреждение (чтобы при сохранении заказа система проверяла доступный остаток на карте) ([Все] - [Параметры работы станции] - [Редактирование заказа] - [Ограничения] - [Контроль максимальной суммы заказа])

Карта на входе может быть персональной (при использовании систем лояльности R-Keeper CRM или ПДС) или неперсональной

Создание неперсональной карты на входе (общее)

1. В справочнике Заказ - Типы карт на входе можно создать несколько типов карт. Создаем необходимое количество.
 
2. Для каждого типа карты необходимо создать свой MCR-алгоритм, указав в свойствах следующее:
  • Область – Карта входа

  • Объект – выбрать соответствующий тип карты на входе

 
Рис. Справочник "MCR алгоритмы"
 
Примечание: сколько различных типов карт на входе будет использоваться, столько MCR алгоритмов должно быть создано.
 
Карты могут быть с предоплатой и без таковых.

Создание неперсонально карты с предоплатой

Если используется фиксированная предоплата, то её размер необходимо указать в строке «Сумма предоплаты». Сколько различных вариантов предоплаты будет использовано, столько типов карт на входе необходимо заводить.
Предоплата используется в случае внесения денег в Визит заранее. При этом сумма предоплаты добавляется в визит,а не на карту. 
 
 
Рис. Тип карты на входе с предоплатой
 
Предоплата может быть фискальной или нефискальной.
  • Настройка для фискальной предоплаты

1. Включить параметр «Учет предоплат=Чек, потом суммарно» Расположение: Справочник "Настройки - Параметры" - ветка [Использование опций] - [Печатные документы] - [Учет предоплат];
 
2. Создать (новую) суммовую нераспределяемую наценку;
 
 
3. Создать (новую) причину внесения денег, связав ее с наценкой, созданной ранее в п.2;
 
 
4. Для соответствющей карты на входе указать сумму предоплаты и выбрать причину внесения из п.3.
 
 
Рис. Карта на входе типа "Фискальная Предоплата"
  • Настройка для нефискальной предоплаты

1. Параметру «Учет предоплат» выбрать значение «Не учитывать». Расположение: Справочник "Настройки - Параметры" - ветка [Использование опций] - [Печатные документы] - [Учет предоплат];

2. Наценку и причину внесения денег заводить не нужно;

3. У типа карт на входе указать только сумму предоплаты.

Рис.Карта на входе типа "Нефискальная предоплата"
  • Не фиксированная предоплата

Если необходимо использовать не фиксированную предоплату, то на кассе это можно сделать через «Пополнение баланса платежной карты».

Предварительно в менеджерской станции необходимо завести причину внесения/выдачи денег. Деньги зафиксируются в визите как редоплата. 

 
 
Рис. Наценка для пополнения баланса карты
 
 
Рис. Причиа внесения денег для пополнения баланса карты
 
 
Рис. Образец чека при не фиксированной предоплате
  • Предоплата с контролем минимальной суммы заказа.

Система позволяет контролировать минимальную сумму заказа. Если сумма заказа меньше минимальной, то в заказ добавится наценка, которая увеличит сумму заказа до значения минимальной. 
 
Наценка для минимальной суммы настраивается как нераспределяемая суммовая с детализацией 0. В строке «Минимальная сумма» указывается значение минимальной суммы заказа.
 
 
Рис. Наценка для минимальной суммы заказа
 
 
Рис. Карта на входе с контролем минимальной суммы заказа
  • Карта на входе с лимитом

Лимит - это сумма, на которую можно уйти в минус относительно баланса визита, например: 
Карту пополнили на 2000 р., лимит 0: использовать можно будет 2000 р.
Карту пополнили на 1500 р., лимит 3000 р.: использовать можно будет 4500 р.
Карту не пополняли, лимит 4000 р.: использовать можно будет 4000 р.
 
Для настройки лимита, в свойстве карты на входе "Лимит" указать его значение.
 
 
Рис. Задание лимита карты на входе

Работа на кассе

Для создания визита откройте форму Визиты и прокатать картой гостя (настроенная карта на входе)
 
 
Создаем новый визит. Если ответить Нет, то вернемся в Главное меню.
 
 
При использовании карт с предоплатой, система автоматически внесет в визит сумму предоплаты.
 
 
При ответе Да создается визит, при ответе Нет возвращаемся в Главное меню (визит при этом не создается). 
 
При создании визита должен распечататься «Документ о создании визита». В стандартной схеме печати его нет, поэтому необходимо добавить представление документа в схему печати.
 
 
 
При внесении предоплаты печатается чек и документ «Предоплата» (см. рисунок ниже).
 
 
Далее на станциях ресторана создаются заказы для визита. Для этого прокатываем карту гостя, система предложит создать новый заказ.
 
 
Заказ создаем как обычно. 
 
 
Если в заказ внесена предоплата, то при превышении этой суммы в поле Оплатить сумма станет красной и отрицательной – это сумма дефицита средств.
 
В этом случае гостю необходимо пополнить счет на кассе (через форму Пополнение баланса платежной карты).
 
Заказ при этом может сохраняться или нет (зависит от значения параметра Контроль максимальной суммы заказа = Запретить сохранение заказа или Только предупреждение).
 
Примечание: при разбивке заказа по местам система воспринимает предоплату и пополнение как от первого гостя, поэтому разбивкой по местам не пользуемся.
 
Заказ нужно сохранить. Для того, чтобы сделать пречек к заказу, нажимаем кнопку «Оплата на кассе». Этого документа тоже нет в стандартной схеме печати, добавляем представление документа. 
 
 
Чтобы добавить новые заказы к визиту, делаем это так же через форму Визиты. При проведении картой гостя в форме Визиты, система предложит рассчитать визит.
 
 
Если визит нужно рассчитать, жмем Да, если надо добавить заказы к визиту, жмем Нет и попадаем в форму создания заказа для визита. 
 
При расчете визита система проверяет доступный остаток средств в визите. Если остаток превышает сумму всех заказов, то гость получит сдачу. 
 
При использовании минимальной суммы, если сумма заказа меньше указанного минимума, в заказ добавляется наценка, которая доводит сумму до нужного значения.
 
 
Если в заказ кроме того была внесена предоплата, то сумма заказа все равно должна достичь минимума. Если при этом сумма заказа меньше суммы предоплаты, то гость получает сдачу. При фискальной предоплате произойдет аннулирование чека на предоплату.
 
 
 
При использовании лимита в балансе визита учитывается сумма лимита+сумма предоплаты. 
 
Пример 1. Для данного типа карты на входе лимит=100 рублей, в визит внесена предоплата 1000 рублей. Итого доступный баланс визита 1100 рублей.
 
 
В следующих заказах по этому визиту система будет показывать общую сумму превышения баланса. 
 
 
Но при оплате гость должен оплатить сумму использованного лимита+сумму превышения.
 
 
Пример 2. Для данного типа карты на входе лимит=100 рублей, в визит внесена предоплата 1000 рублей, карта пополнена на 200 рублей. Итого доступный баланс визита 1300 рублей. Минимальная сумма заказа 500 рублей достигнута, поэтому сумма наценки для мин суммы равна 0.
 
 
Открыть визит  для редактирования или оплаты можно без карты гостя. Для этого при появлении приглашения зарегистрировать карту гостя надо нажать на заголовок окна Карта гостя. Откроется форма выбора визита. 
 
 
Через эту форму также можно создавать заказы для существующего визита и рассчитывать визит. 
 
 

Настройки для персональной карты

Карта стандартно заводится в ПДС или CRM. Карта должна быть привязана к счету потрат и дебетовому счету, на который будут попадать деньги при пополнении баланса карты на кассе.  В RK7 создается валюта для оплаты визита платежной картой. 
 
Начиная с версии 7.5.4.79 также возможно использовать скидку, привязанную к карте в ПДС или R-Keeper CRM.
 
Для персональных карт MCR-алгоритм настраивается немного иначе, а именно:
в поле Область выбираем интерфейс;
в поле Объект выбираем нужный интерфейс (Персональная дисконтная система или R-Keeper CRM).
 
 
Работа на кассе аналогична работе с неперсональной картой, описанной выше. При пополнении счета платежной карты деньги попадают на дебетовый счет.
 
Примечание: если карта персональная, то она не может быть с предоплатой.

Настройка (Архив)

1. Проверка параметров

Во-первых, нужно проверить настройку параметров (Настройки - Параметры).

Один заказ на визит = False
Карта на входе = Могут быть гости без карты или Все гости должны иметь карту
Оплата на выходе = True (если расчет визита осуществляется на выходе)
Контроль максимальной суммы заказа = Запретить сохранение заказа или Только предупреждение (чтобы при сохранении заказа система проверяла доступный остаток на карте)

Карта на входе может быть персональной (CRM или ПДС) или неперсональной. 

1. Если картой на входе является ПДС карта.
- Для обработки карт используется MCR алгоритм Персональные дебетовые (ПДС).
- На кассе можно пополнять баланс ПДС карты.
- Заказы можно сразу оплачивать картой.

2. Если картой на входе является магнитная неперсональная карта.
- Для обработки карт используется MCR алгоритм Карты на входе.
- В справочнике "Заказ - Типы карт на входе" нужно создать столько типов карт, сколько будет ичпользоваться в развлекательном центре.

Примечание 1: сколько различных типов Карт на входе будет использоваться, столько MCR алгоритмов Карта на входе должно быть создано!

Рис.1

Рис.2

Примечание 2: если используется предоплата, то её размер фиксируется в строке сумма предоплаты. Сколько различных вариантов предоплаты может быть использовано, столько типов карт на входе нужно заводить. Предоплата используется в случае внесения денег в Визит заранее. При этом сумма предоплаты добавляется в визит (не на карту). Вносить нефиксированную сумму предоплаты пока нельзя (доработка).

Настройка MCR-алгоритмов

Введение

MCR алгоритмы обеспечивают обработку сигналов с различных устройств ввода. Драйвер устройства отправляет данные о сигнале устройства (DeviceSignal), идентификатор устройства (DeviceIdent) и строку полученных входных данных. DeviceIdent задаётся в параметре драйвера Device Identifier. DeviceSignal бывает 5 типов: sgMagCard(Магнитная карта), sgBarCode(Штрих-код), sgDallas(Даллас), sgKBDInterface(Клавиатура), sgNoTouch(Бесконтактный). В результате обработки сигнала определяется набор MCR алгоритмов, которые признали этот сигнал «своим». При этом каждый из этих алгоритмов выделяет из поступившей информации «параметр» - информацию для дальнейшей обработки. Смысл параметра зависит от области. Способ извлечения параметра из исходной информации зависит от типа алгоритма.

Существует несколько типов алгоритмов, различающихся методом обработки данных. Не все из них используют всю информацию, предоставляемую драйвером, например, может анализироваться только строка ввода. Для проверки корректности работы MCR алгоритмов существует форма, в которой задаются входные воздействия и отображается их результат (список отработавших алгоритмов и выданных ими параметров и объектов).

Для всех MCR алгоритмов задают свойства:

  • Тип алгоритма
  • Типы устройств – набор типов устройств, сигналы с которых будут обрабатываться этим алгоритмом
  • Область – способ дальнейшей обработки MCR алгоритма или тип объекта.

Объект заполняется для всех областей кроме работник, карта входа, штрихкод элемента меню, код элемента меню. Именно этот выбранный объект будет посылаться кассе после обработки сигнала от входного устройства.

Заполнять поле ввода параметром – поле видимо только вместе с полем объект. При обработке многих объектов используется поле ввода в форме редактирования заказа. Например, при обработке элемента меню в поле ввода ожидается количество. Если стоит галочка в этом свойстве, то  параметр, полученный при обработке MCR алгоритмов будет обрабатываться так, как будто эта информация была введена в поле ввода. Например, на магнитной полосе записано 1234, существует MCR алгоритм типа префикс с префиксом «123», областью «Элемент меню» и выставленным флагом «Заполнять поле ввода параметром». При прокатывании карточки параметр определится как 4 (результат отсечения префикса 123). В результате, добавится блюдо с количеством 4.

Область применения

Область – способ дальнейшей обработки MCR алгоритма или тип объекта. Способы обработки без объекта – работник, карта входа, штрихкод элемента меню, код элемента меню. В остальных случаях объект задаётся прямо в MCR алгоритме.
Работник – регистрация работника в системе (в том числе для подтверждения операции). Параметр, полученный при обработке MCR алгоритма, сравнивается со свойством работников «Код Карты» (см. свойство «Учётная запись») и находится нужный работник.
Карта входа – обработка карты на входе.

Штрихкод элемента меню – поиск блюда по штрих-коду и добавление в заказ. Параметр, полученный при обработке MCR алгоритма, сравнивается со свойством элементов меню «Штрих-Коды» и находится нужный. Кроме того штрих-код может содержать вес, который тоже должен быть добавлен в параметр с разделителем «;». Пример MCR алгоритма для обработки весовых блюд есть в стандартной поставке.
Код элемента меню – поиск блюда по коду и добавление в заказ. Параметр, полученный при обработке MCR алгоритма, сравнивается со свойством элементов меню «Код» и находится нужный.

Валюта, Элемент Меню, Тип заказа, Скидка – для этих областей заполняется соответствующий объект. Как правило, при обработке таких MCR алгоритмов параметр не важен, однако он может использоваться как информация из поля ввода см. Заполнять поле ввода параметром 
Интерфейс – для MCR алгоритмов этой области очень важно правильное определение параметра, так как именно параметр будет обрабатываться интерфейсом для связи с другими системами.

Типы MCR-алгоритмов 

DLL вер. 7.0

Разбором входных данных занимается DLL (библиотека), имя которой задано в поле «Имя DLL».

Прототип функции выглядит следующим образом:

function (
Device:	 byte; // Тип устройства
DeviceID:	word; // ID устройства
const Src:	pChar; // Указатель на входные данные (полученная строка)
ResBuffer:	pchar	// Указатель на буфер, в который будет помещена обработанная строка-параметр
): integer; stdcall;

Возвращаемое значение:

Если входные данные нужного типа, функция должна вернуть число от 0 до 255. В этом случае это число считается длиной результата в ResBuffer. Числа вне диапазона 0..255 считаются признаком того, что данные не подходят алгоритму.

Префикс

Алгоритм проверяет, что данные на входе начинаются с последовательности, заданной в поле «Префикс». Оставшаяся часть передается как параметр. Например, для префикса "321" входные данные вида "32167" будут верны, полученный параметр будет "67".

Обработка по маске

Обработка идет по маске, заданной в поле «Маска обработки». Правила обработки следующие: символы 0123456789+-/=,A..Z обязательны на позициях, где стоят, a..f - текстовые, i..n - цифровые части распознанного текста для параметра, r - код ресторана, ? - игнорируется (учитывается в длине), символы после * не учитываются. Например, для маски "?bbb=jjj=aaa/iii*" и данных "Q456=000=123/789SOMEINFO" маска сработает и параметр будет таким: 123;456;789;000. 
Для обработки весовых товаров следует добавить алгоритм с обработкой по маске и типом объекта “Штрихкод элемента меню” (либо ”Код элемента меню”). Существует предустановленный элемент, который можно поправить. Например, формат данных:
280aaaabbbbb?
указывает, что цифры 280 являются контрольными, а на месте символа ? может находиться любой – символ введен для контроля длины. Такой алгоритм присутствует в стандартной поставке. Рассмотрим строку ввода:
280aaaabbbbb?
2800198015007 В соответствии с маской выражение разберется:
___019801500 Parameter = 0198;01500
0198 Штрихкод блюда (или код в случае типа объекта ”Код элемента меню”)
01500 Вес блюда. Вес блюда будет разделен на значение, указанное в параметре BarcodeDivisor (Группа параметров «Весовой товар»).
Таким образом, если выбран тип объекта ”Код элемента меню” или “Штрихкод элемента меню”, то параметр содержит идентифицирующий код (штрихкод) и, при необходимости, вес блюда. Если штрихкод весовой, то свойство ”Коэффициент количества” штрихкода игнорируется.
Если в строке ввода нет идентификаторов, которые следует передать в параметр, то при соответствии строки ввода маске передается вся строка ввода, например:
Маска: 992=?A??, ввод: 992=BAYZ Так как ввод соответствует маске, то параметр будет 992=BAYZ.

Интерфейс

Разбором входных данных занимается некий интерфейс. Интерфейс (за исключением внутренних) представляет собой DLL, соответствующую определённым спецификациям. Использование интерфейса только для обработки устройств ввода нецелесообразно. Если у Вас имеется некий интерфейс, используемый с какой-либо системой, предоставленной третьей стороной, и Вы желаете включить в него возможность обработки устройств ввода, следует обратиться к разработчиками с запросом.

Скрипт вер. 7.0

Позволяет составить скрипт для обработки непосредственно в интерфейсе программы, таким образом нет необходимости для составления собственной DLL. Обработка основана на Innerfuse Pascal Script. Синтаксис языка такой же, как в языке Pascal, но набор функций ограничен и будет перечислен ниже. Обработчик поддерживает: 
1. Стандартные типы: Byte, Shortint, Char, Word, SmallInt, Cardinal, Longint, Integer, String, Real, Double, Single, Extended, Comp, Boolean, Array, Record, Variant;
2. Переменные, константы; 
3. Стандартные выражения: Begin/End, If/Then/Else, For/To/Downto/Do, Case x Of, Repeat/Until, While, With, Uses, Try/Except/Finally Exit, Continue, Break; 
4. Функции, процедуры, параметры Array of Const, Var;

Каждый скрипт имеет заголовок вида:

function (
DeviceSignal: Integer; // Сигнал устройства sgXXXX
DeviceIdent: Integer; // идентификатор устройства, см. Device identifier
var Parameter: String	// На входе – вся информация, на выходе - параметр
): Boolean;

Возвращаемое значение:

Если TRUE, то скрипт считается корректно отработавшим, параметр берется из переменной Parameter. 
Список поддерживаемых функций представлен в файле RK7Scripts.doc.
Существует возможность вызова функций из DLL. Для этого необходимо создать MCR алгоритм с типом “Скрипт вер. 7.0” и областью “Script Header”. Такие алгоритмы не являются алгоритмами распознавания и служат для задания заголовков других алгоритмов. При этом свойство “типы устройств” указывает, что данный заголовок будет присоединяться только к скриптам алгоритмов, поддерживающих хоть один тип устройств из списка поддерживаемых алгоритмом с областью “Script Header”. В поле скрипт такого алгоритма необходимо указать объявление внешней функции в виде:

function MessageBox(hWnd: Longint; lpText, lpCaption: PChar; uType: Longint): Longint; external 'MessageBoxA@user32.dll stdcall';

В данном примере:

MessageBox Имя функции для вызова из скрипта
external Указывает, что функция внешняя
MessageBoxA Имя функции в DLL
user32.dll Имя DLL
Stdcall Указание спецификации вызова

Теперь функцию можно вызывать из скриптов алгоритмов:

MessageBox(0, ‘Some Text’, ‘Some Caption’, 0);

Настройка неперсональной дисконтной карты

Введение

В данной статье описан механизм настройки одного MCR-алгоритма для привязки к картам, которые в зависимости от их внутреннего идентификатора привязываются к той или иной скидке в РК7. Соответственно в Менеджерской станции должно быть заведено несколько скидок, отличающиеся параметром "Тип магнитной карты" и один MCR-алгоритм, который ищет скидку по типу магнитной карты.

Настройки

1. Добавить скидки, заполнить свойство "Тип магнитной карты" (должен быть уникальным для каждой скидки).

Рис.1

2. Создать новый MCR-алгоритм. Тип алгоритма на ваше усмотрение. Главное, что возвращаемый параметр должен содержать тип магнитной карты и срок действия карты в следующем виде:

ТТ=ДДММГГ или ТТ;ДДММГГ, где

  • ТТ – идентификатор скидки, который задается в свойствах скидки в поле “Тип магнитной карты”
  • ДДММГГ - дата действия карты (день, месяц и год соответсвенно)

Рис.2 MCR-алгоритм типа "СКРИПТ"

Рис.3

Рис.4 MCR-алгоритм типа "ПРЕФИКС" для карт формата 777=КОД_РЕСТОРАНА=ТТ=ДДММГГ

Рис.5

Рис.6

Проверка алгоритмов

Чтобы проверить работуспособность алгоритма, перейдите в Сервисы > Обработка сигналов и устройств > Mcr алгоритмы

Нажмите правой кнопкой мыши на нужный алгоритм и выберите Действия > Проверка MCR алгоритмов

Введите нужные параметры и нажмите Проверить.

Настройка XML-интерфейса

Введение

XML​-интерфейс предоставляет наиболее удобный способ получения информации о системе RK7 и сохранения данных в базах данных RK7, а также выполнения различных операций.

Существует 3 вида интерфейсов в r_keeper_7:

  • для кассовых станций;
  • для кассовых серверов;
  • для серверов справочников (отчетов).

Причем каждый тип интерфейса поддерживает различный набор команд.

Вызов функции происходит через RK7XML.dll и интерфейсный модуль RK7XMLi.pas. XML-интерфейс работает через драйвер iTCPXML.dll

XML-интерфейс позволяет:

  • Читать данные из справочников и коллекций — справедливо для всех видов интерфейсов
  • Создавать новые и изменять свойства существующих элементов справочников — только для серверов справочников
  • Получать информацию о текущих заказах, создавать новые и оперировать имеющимися заказами. Выполнять любые кассовые операции — только для кассового сервера
    Примеры операций:

    • Закрытие общей смены
    • Печать отчета

Общая схема взаимодействия представлена ниже:

На основе XML-интерфейса работают продукты:

  • Мобильный официант
  • Киоск самообслуживания, Kiosk PRO
  • KDS, VDU, KDS Pro
  • Доставка

Возможности интерфейсов сервера справочников

  • Чтение элементов справочников
  • Изменения свойств существующих элементов справочников
  • Создания новых элементов справочников

Применяется обычно для:

  • Интеграции с сайтом ресторана – выгрузка меню
  • Выгрузки меню, цен и прочего во внешнюю доставку
  • Выгрузки ассортимента во внешние системы учета, например, 1С
  • Загрузка меню, цен и других параметров на сервер справочников.

Возможности интерфейса кассового сервера

  • Чтение справочников
  • Чтение информации по текущим заказам
  • Создание и редактирование заказов
  • Выполнение кассовых операций
Применяется обычно для:
  • Интеграций с сайтом доставки ресторана – полный цикл от создания заказа до оплаты;
  • Интеграций мобильных приложений, систем самообслуживания, доставки и д.р.;
  • Мониторинг текущего состояния продаж и прочего;
  • Интеграций с системами лояльности;
  • Интеграций с системами видеонаблюдения

Особенности XML-интерфейса кассовой станции

  • Можно добавить блюдо прямо в открытый заказ
  • Чтение содержимого открытого заказа на кассе
  • Выполнение кассовых операций – прокатка карты, запрос инфо о карте
  • Оплата текущего заказа

Лицензирование

На кассовом сервере возможно создавать свои шаблоны запросов, используя команды, поддержанные тем или иным типом интерфейса. Для самостоятельной интеграции с r_keeper_7 существует возможность использовать запросы SaveOrder и PayOrder для сохранения заказа. Использование этих запросов защищено лицензией.

Интеграция платная, можно купить бессрочную лицензию или по подписке. Лицензия называется R-keeper модуль XML сохранение заказов ПО и для её приобретения обращайтесь в UCS.

Лицензии бывают ограниченные — по подписке и бессрочные.

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

Для работы с кассовым сервером или кассовой станцией необходимо на вкладку "Устройства" добавить “XML Interface For Windows” и прописать порт в параметре Port.

В случае, когда загружаем интерфейс на кассовый сервер, обязательно его привязать к логическому интерфейсу в справочнике "Сервис-Интерфейсы". По-умолчанию это предустановленный XML интерфейс с кодом 104. Однако для каждого внешнего приложения можно сделать копию данного интерфейса и связать его с драйвером на кассовом сервере.

После привязки интерфейса перезагрузите кассовый сервер. Проверьте что интерфейс загружен в свойствах кассового сервера.
Для этого запустите сервер с параметром desktop и откройте его интерфейс. Загруженный интерфейс должен быть виден на вкладке Интерфейсы.

В случае, если необходимо настроить связь с сервером справочников(отчетов), то настраиваем секцию XML интерфейс. 

Работа с внешними запросами

Утилита XMLtest.exe используется для отправки и получения запросов.

Скачать можно с FTP-сервера ftp://ftp.ucs.ru/rk7/ForDealers/XMLInterface/

В системе должен быть установлен msxml.msi.
Формат команды следующий: 

XMLTest <addr>[:<port>] <XMLRequest> [<XMLResult>] [/PASS:XXXXXX] [/CONN:YYYYYY] [/SCHEME:SchemeFileName].
xmltest.exe 127.0.0.1:1122 xmlquery.xml response.xml /pass:password
Описание параметров:
127.0.0.1:1122    ;  IP-адрес и порт, на который настроен XML интерфейс в R-Keeper 7
xmlquery.xml      ;  Имя файла с XML запросом
response.xml      ;  Имя файла, в который следует записать ответ
/pass:password    ;  Пароль, заданный в XML интерфейсе в R-Keeper 7
После выполнения утилита сохранит в файл response.xml ответ от XML интерфейса R-Keeper 7.
Для проверки работоспособности и корректности настроек можно использовать следующий запрос (его следует сохранить в файл xmlquery.xml):
<?xml version="1.0" encoding="UTF-8"?>
<RK7Query>
    <RK7CMD CMD="GetSystemInfo"/>
</RK7Query>

Примечание: для выполнения запроса "SaveOrder" необходима лицензия для ресторана.

Логирование запросов

Для включения логирования запросов необходимо заполнить параметр OutputDir в свойствах вашего XML интерфейса на кассовом сервере или кассовой станции (производится аналогично).

Важно: обязательно перезагрузите кассовый сервер после произведенных изменений. 

Запросы будут парные  - INxxxxx.XML и OUTxxxxx.XML.

Дополнительно можно включить параметр NoLogginQueries — он отвечает за отключение логирования указанных в параметре запросов. Укажите в поле нужные запросы. 

Запросы и функции

Список запросов

# CMD Доступность на
1 GetWaiterMessages CS, ST
2 WaiterMessage CS
3 GetOrderList CS
4 CreateOrder CS
5 GetOrderMenu CS
6 GetWaiterList CS
7 GetRefData CS
8 LoginOnStation CS
9 PayOrder CS
10 PrintBill CS
11 SaveOrder CS
12 DelWaiterMessages CS
13 GetItemBlob CS
14 GetDocByLayout CS
15 DeleteReceipt CS
  • CS - кассовый сервер
  • ST- кассовая станция

Вы можете получить список поддерживаемых запросов на интерфейсе, используя универсальную команду CMD=GetFunctions.

Схемы для запросов (структура и возможные аргументы для каждого запроса) можно найти здесь: ftp://ftp.ucs.ru/rk7/ForDealers/XMLInterface/XML-Schemes/.

Функции

Функция CallRK7XMLRPC - это основная функция 

Параметры данной функции:
AddressName - адрес:порт
Request - XML запрос
RequestSize - размер XML запроса
ResultFile - имя файла, куда будет записан результат выполнения запроса
ErrorBuf - место куда пишутся ошибки соединения
ErrorBufSize - размер ErrorBuf

Функция CallRK7XMLRPCToStream -  аналогична функции выше, но ее результат пишется в поток:

Параметры:
AddressName - адрес:порт
Request - XML запрос
RequestSize - размер XML запроса
ResultStream - IStream - поток, куда передается результат
ErrorBuf - место куда пишутся ошибки соединения
ErrorBufSize - размер ErrorBuf

Функция SetUseTempFileLimit - устанавливает лимит размера файла, если время возвращения результата превышает порог. По-умолчанию = 1000000 ms.

Функция GetDLLVersion - возвращает версию DLL

Функция SetCryptKey - установить ключ шифрования (может быть различным для различных кассовых серверов, прописывается в свойствах XML интерфейса)

Пример запроса файла с сервера

Для получения некоего файла (в формате base64), хранящегося внутри базы справочников, но не импортируемого во внешнюю БД, можно использовать запрос "GetItemBlob".

Запрос в примере, приведенном ниже, вернет макет для отчета с ID=1001 в формате fr3 (filename.fr3).

<?xml version="1.0" encoding="utf-8"?><RK7Query><RK7CMD CMD="GetItemBlob" RefName="OLAPReports" RefItemIdent="1001" RefBlobName="LAYOUT" UnpackedBlob="0"/></RK7Query>

Выполнение XML запросов через HTTPS 7.5.3+

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

В менеджерской станции необходимо настроить доступ к серверу справочников через HTTPS.

Для этого необходимо сделать следующее:

  1. В справочнике "Сервис - Менеджерская станция - Привилегии на объекты" добавить новую привилегию, например HTTP_порт.

Рис. Создание привилегии

  1. В свойствах сервера справочников прописать порт (параметр HTTP Data Port) в секции HTTP Server. Флаг Use Free Listen Port необходим, чтобы программа выбрала другой порт в случае, когда заданный в свойстве HTTP Data Port порт занят. Поэтому проверьте сразу свободен ли порт, который вы задаете. В блоке HTTP Ограничения выбрать ограничение, созданное в п 1. После сохранение изменений необходимо перезагрузить сервер. 

Примечание: не только порт, прописанный в свойствах сервера справочников в менеджерской станции (HTTP Data Port) можно использовать для доступа к web-интерфейсу данного сервера, но и порт, прописанный в rk7srv.ini в секции [TSPSOC], параметр port.

Рис. Задание порта "HTTP Data Port" в свойствах сервера справочников.

  1. Создать роль с правами на привилегию из п.1.

Рис. Создание новой роли
  1. Для этой роли добавить работника, задать ему пароль. Название и пароль данного работника будут использоваться для авторизации на сервере через HTTPS.

Аутентификация / авторизация

Для аутентификация и авторизации используется имя (название) и пароль работника RK7.

WEB интерфейс на момент написания статьи имеет ограничения:

На каждый из этих пунктов существует право доступа, задаваемое в свойствах сервера.

После указания права и его назначения соответствующей роли можно проверить корректность настроек, открыв в WEB интерфейсе соответствующие страницы. 

Вбейте в адресной строке один из вариантов ниже, появится окно авторизации - введите название работника и пароль (рис. выше).

http://ip:port/webgui/

http://ip:port/rk7api/v1

http://ip:port/rk7api/v0

Примеры выполнения запроса

Тестовая страница XML-интерфейса

Для проверки XML интерфейса через HTTPs интерфейс необходимо зайти по адресу https://ip:port/webgui/iservxmltest.htm (например, https://127.0.0.1:13665/webgui/iservxmltest.htm) ввести свои имя пользователя и пароль и текст XML запроса для выполнения. Затем следует нажать кнопку Execute. Результат должен быть такой как на рисунке ниже.

Утилита командной строки wget 

Пример выполнения запроса с использованием утилиты wget:

wget.exe --secure-protocol=TLSv1 --no-check-certificate --header="Content-Type: text/xml" --http-user=9006 --http-password=9006 --post-file=requestData.xml https://127.0.0.1:20001/rk7api/v0/xmlinterface.xml

Параметры:
1. Пользователь: --http-user=9006
2. Пароль: --http-password=9006
3. Файл с запросом: --post-file=requestData.xml

После выполнения такого запроса его результат будет сохранен в файл xmlinterface.xml.

Настройка комбо-блюд

1. Описание настройки комбо-блюд

Данное описание поможет разобраться со следующими вопросами:

1. Как завести блюда бизнес-ланча.

2. Как настраиваются цены для комбо-блюд

Ниже на Рис. 1 изображен пример использования комбо-блюд

Рис.1

Для того чтобы настроить работу комбо-блюд нужно выполнить следующие настройки:

  1. в справочнике Меню завести блюда, которые входят в состав комбо.
  2. в справочнике Комбо группы создать комбо группы для блюд Бизнес-ланча.
  3. в справочнике Комбо схемы создать схемы и вложить в них нужные группы.
  4. в справочнике Меню создать Комбо элемент меню и привязать к нему комбо-схему

На Рис. 2 представлено расположение справочников в менеджерской.

Рис.2

2. Как завести блюда Бизнес-ланча.

2.1. Заводим блюда в справочнике Меню

При работе с блюдами бизнес-ланча можно использовать блюда основного меню, или завести отдельные блюда в отдельных группах, как показано на Рис. 3.

Если блюда бизнес-ланча не входят в основное меню, т.е. продаются только в составе комбо, то цена для блюд должна оставаться [Не задано]. Это означает что блюдо, как отдельный элемент продажи на кассе не появится. Также для блюда необходимо указать категорию для классификации Сервис-печать, если настроена печать сервис-чеков в ресторане.

Для блюд, входящих в состав бизнес-ланча можно задавать модификаторы. Если к блюду будет привязана схема модификаторов, то при выборе этого блюда на кассе система будет предлагать выбрать модификатор для блюда.

Рис. 3

2.2. Вторым шагом является настройка справочника Комбо группы

В справочнике Комбо-группы заводим группы для комбо-блюд. Для этого в левой части окна щелкните правой кнопкой мыши. Комбо группы можно группировать в наборы комбо-групп для удобства работы.

В каждой комбо-группе заводятся комбо-элементы – это ссылка на блюдо из меню. См Рис. 4. Как правило, название комбо-элемена задается равным блюду, но название комбо-элемента можете изменить и оно будет отличаться от названия блюда меню.

В строке Элемент меню нужно выбрать блюдо, которое соответствует данному комбо-элементу. Обязательно проверьте правильность выбранного блюда (для этого обратите внимание на код выбранного блюда).

В группе Порции задаются следующие настройки: Макс. Для 1 блюда – выставить флаг и цифру 1, если данное блюдо можно добавить в состав комбо  не более 1 порции. Вес =0 (это означает, что данный комбо-элемент не будет выгружаться в SH, комбо-элементы не нужно выгружать).

Для разных комбо-блюд можно создавать комбо-группы с повторяющимся содержанием, т.е. одно блюдо может встречаться в разных комбо-группах, например блюдо Борщ на Рис. 1.

Рис. 4

2.3. В справочнике Комбо-схемы создаем схемы для Комбо-блюд

Для каждого Комбо-блюда создается отдельная схема. В схему нужно добавить комбо-группы. Порядок расположения комбо-групп имеет значение, именно в такой последовательности группы будут открываться на кассе.  См. Рис. 5 Порядок группы можно изменить, щелкнув по группе правой кнопкой мыши и указав вверх/вниз.

Для каждой группы задаются свойства: верхний и нижний пределы. Если блюдо данной группы является обязательным для выбора, то нужно выставить нижний предел =1. Если нижний предел =0, то из данной группы блюдо выбирать необязательно. Верхний предел ограничивает количество блюд доступных для выбор из данной группы. Если задан нижний предел, то группа автоматически открывается для выбора блюд, если задан верхний предел, то при достижении предела автоматически открывается следующая.

Если в группу входит одно блюдо, то его можно задать По-умолчанию. Для этого нужно заполнить строку Модиф. по-умолчанию. В этом случае, при пробитии Бизнес-ланча на кассе, блюда будут автоматически добавлены к блюду. Если в группе содержится несколько блюд и блюдо можно заменить, то выставляется флаг Заменять модификатор.

Рис. 5

2.4. В справочнике Меню создать Комбо-элемент Меню

В справочнике Меню создать Комбо-элемент Меню и привязать к нему соответствующую схему.

Чтобы создать в справочнике Комбо-элемент Меню на закладке Блюдо щелкните правой кнопкой мыши и выберете пункт Новый комбо элемент меню. См Рис. 6

Рис. 6

3. Как настраиваются цены для комбо-блюд.

Есть три способа задать цены для Бизнес-ланча.

1.Цена задается у комбо-компонентов.

2.Цена задается у комбо-элемента меню и распределяется на блюда одинаково.

3.Цена задается у комбо–элемента меню и распределяется на блюда пропорционально ценам блюд в основном меню.

3.1. Цена задается у комбо-компонентов.

В этом случае, не важно, будет ли выставлена цена у блюд в справочнике Меню. Если блюдо продается только в составе комбо-блюда, то цена остается [Не задано], если блюдо продается самостоятельно со своей ценой, то у блюда будет выставлена цена. Это не будет влиять на расчет цены блюда в составе комбо.

Цена будет выставлена для каждого комбо-элемента в справочнике Комбо-группы. Например, Бизнес-ланч состоит из трех блюд: Салат (на выбор), Суп (на выбор) и Напиток (на выбор). Бизнес-ланч стоит 150 руб. Тогда всем салатам выставляется цена 50 руб, супы по 60 руб и напитки по 40 руб. При пробитии на кассе бизнес-ланча цена будет складываться из стоимости компонентов.

В отчетах по продажам блюд и при выгрузке продаж в SH цена блюда будет равно цене комбо-элемента.

3.2. Цена задается у комбо-элемента меню и распределяется на блюда одинаково.

В этом случает цена для блюд в меню должна быть [Не задано], т.е. блюда продаются только в составе комбо.

В справочнике Комбо-группы цены не указываются, т.е. равны нулю. Стоимость блюда указывается в Ценовой добавке для Комбо-элемента меню.

Например, Бизнес-ланч состоит из трех блюд: Салат (на выбор), Суп (на выбор) и Напиток (на выбор). Бизнес-ланч стоит 150 руб. У Комбо-элемента меню Салат+Суп в ценовой добавке нужно выставить 150 руб.

В отчетах по продажам блюд и при выгрузке продаж в SH цена блюда будет равна [ценовая добавка] /  [количество элементов бизнес-ланча], т.е. все блюда бизнес ланча будут иметь одинаковую цену.

3.3. Цена задается у комбо–элемента меню и распределяется на блюда пропорционально ценам блюд в основном меню.

Блюда, входящие в состав Бизнес-ланча имеют свои цены в справочнике Меню, т.е. продаются как отдельные блюда со своей ценой. Цена для комбо элементов равна нулю. Цена за Бизнес-ланч выставляется как ценовая добавка у комбо элемента меню.

В отчетах по продажам блюд и при выгрузке продаж в SH цена блюда будет рассчитываться с учетом его стоимости в основном меню. Цена бизнес-ланча будет распределена на блюда, вошедшие в его состав, пропорционально ценам этих блюд в основном меню.

 

Настройка механизма перекодировки карт

 

Описание

Данная инструкция описывает настройку механизма перекодировки карт, а именно: перекодировка карты с кодом "112233" в код "7788". Для добавления других перекодировок небходимо для каждого набора входных данных повторить Шаг 2.
 

Шаг 1

Зайти в справочник MCR Алгоритмы (Сервис - Обработка Сигналов Устройств - MCR Алгоритмы). Скопировать стандартный MCR Алгоритм "Персональные Дебетовые (ПДС)" (код: 112). Сделать активным и задать следующие свойства:
Собственое Имя: ПДС Перекодировка
Альт. собственное название: PDS Decoded
Тип алгоритма: префикс
Префикс: PDS
Режим перекодировки: заменять входные данные

Рис.1 MCR Алгоритмы

Шаг 2

Зайти в справочник Перекодировки Входных Данных (Сервис - Обработка Сигналов Устройств - Перекодировки Входных Данных). Создать новый объект. Заполнить свойства следующим образом:
Исходные Данные: 112233
Подстановка: PDS7788

Рис.2 Перекодировка входных данных

Шаг 3

В окне отладка MCR Алгоритмов убедиться, что при прокатывании карты с прописанным ранее кодом (112233) срабатывает алгоритм ПДС Перекодировка с параметром 7788. Либо в окне редактирования заказа убедиться, что запрашивается информация с нужной карты ПДС.

Рис.3 Результат прокатывания карты на кассе
 

Настройка нефискальности у валюты

Этапы настройки

1. Запустить менеджерскую станцию, залогиниться с учетными данными дилера.

2. Открыть справочник "Деньги - Валюты". Выбрать нужную валюту, которую хотите сделать нефискальной, в нашем случае "Безналичная валюта 1" (см. рис.1).

Рис.1 Настройка фискальности валюты

3. В секции "Печать" проверить свойство "Тип фискальности" и выставить необходимый параметр.

Возможны следующие значения:

  1. Добавлять скидку на сумму - добавление в чек скидки на сумму, внесенную валютой этого типа; 

Пример: сделали заказа на 310 руб. Оплата комбинированная (100 рублями (фиск.) и 189 безналичной валютой 1 c типом фискальности = добавлять скидку на сумму). Тогда в чеке на фискальном принтере в итог пройдет 100 руб, а 189 руб пройдет как скидка к заказу (см. рис.2).

  1. Не печатать чек - если присутствует платеж валютой этого типа, то фискальный чек не печатается совсем, следовательно информация о данной валюте не попадает в фискальный принтер.

  2. Суммарно с вычитанием - печать чека без расшифровки на сумму за вычетом платежа, внесенного валютой этого типа. Работает по принципу п.1 (добавлять скидку на сумму), но в фискальном чеке не печается информация о скидке, т.е. информации о данной валюте вообще нет. 

  3. Фискальный чек - если выставлен флаг, фискальный принтер печатает в чеке принятые к оплате суммы в валютах этого типа.

Первые 3 типа делают валюту нефискальной!

Рис. 2 Печать фискального чека в зависимости от типа фискальности.

4. В свойстве группы валют тоже есть параметр "Тип фискальности". Выставленный параметр в свойстве валюты будет дублироваться в новосозданную валюту в этой группе. Данное свойство группы не перекрывает это же свойство у валюты.

5. Новые параметры вступят в силу только после закрытия общей смены на кассе!

Дополнительно

Для отображения  валюты как фискальной скидки в фискальных отчетах и отчетах кипера, а также на распространенных ФР с возможными вариантами налогообложений, необходимо в свойствах валюты выставить тип фискальности = фискальная скидка.

Рис.3 Тип фискальности валюты

Настройка нового кассового интерфейса на версии 7.5.03 после апгрейда с 7.5.02

1. Настройка использования новой схемы форм:

Схема форм: Функциональный дизайн

2. Настройка использования селекторов:

Главное меню (11) -> ФД Главное меню (2002006)
Чек: Селектор операций (205) -> ФД Чек:Селектор операций (2002017)
Быстрый чек: Селектор операций (206) -> ФД Быстрый чек:Селектор Операций (2300592)
Чек: Селектор операций, клавиатура (207) -> ФД Селектор операций клавиатура (2300928)
Чек: Доп. операции (215) -> ФД Чек:Доп. перации (2400012)
Чек: Контекстное меню (216) -> ФД Чек: Контекстное меню (2300705)
Чек: UCS Main Selector (217) -> ФД Чек:UCS Main Selector (2002010)
Метрдотель: Операции (312) -> ФД Метрдотель:операции (2002023)
Официант: Операции (401) -> ФД С концом сессии (2300569)
Официант: Операции работы с заказом (408) -> ФД Официант: Опиерации работы с зак (2002000)
Официант: Контекстное меню (409) -> ФД Операции: Контекстное меню (2300449)
Окно переноса: В каждой панели (613) -> ФД Окно переноса (2002013)
Окно переноса: Общий (614) -> ФД Окно переноса:Общий (2002015)
Калькулятор: операции (901) -> ФД Калькулятор (2002029)
Ok Отмена (903) -> ФД (2002025)
Регистрация персонала: Селектор операций (904) -> ФД Регистрация персонала (2301075)
Контроль остатков: Селектор операций (906) -> ФД Контроль остатков (2002031)
Просмотр отчетов: операции (907) -> ФД Просмотр отчетов: операции (2300981)
Поиск чеков/заказов: Операции поиска (908) -> ФД Поиск чеков/заказов (2301008)
Закрытые чеки: Селектор операций (909) -> ФД Закрытые чеки:Селектор операций (2300961)
Контроль заказов: Селектор операций (910) -> ФД Контроль Заказаов:Селектор операций (2300996)
Навигация (911) -> ФД Навигация (2301006)
Инвентаризация: селектор операций (913) -> ФД Инвентаризация: Селектор операций (2002027)

Примечание: обязательно проверьте использование цветовых схем (Настройки - Графический интерфейс - Использование цветовых схем). При необходимости выбрать "Новый дизайн".

Настройка предоплат

Поддержка авансов в соответствии с ФЗ-54 ФФД 1.05 выполнялась по задаче http://tracker.ucs.ru/issues/116573

Термины

  • Аванс = предоплата, оформленная по закону
  • Чек аванса = фискальный чек предоплаты
  • Товар аванса = специальное псевдо-блюдо, которое пробивается в фискальном чеке предоплаты. В фискальный регистратор надо передать специальный признак товара аванса.
  • Зачёт аванса = использование предоплаты, оформленное по закону
  • Валюта зачёта аванса = специальная валюта, у которой заполнен для конкретного фискального регистратора специальный индекс оплаты "зачёт аванса"
  • Причина предоплаты = элемент српавочника RK7 "Причины внесения/выдачи денег", у которой выставлен флаг "Предоплата"

Сценарии

Предоплаты как внесение

Классический сценарий использования предоплат. При добавлении в заказ предоплаты оформляется документ внесения денег в кассу, при использовании предоплаты (пробитии чека) оформляется изъятие денег из кассы на сумму предоплаты. Этот сценарий противоречит российскому законодательству, так как внесение денег осуществляется без оформления фискального чека, однако, имеется и плюс, так как отчёты по товарам и деньгам всегда совпадают (и товары и валюты учитываются в момент использования предоплаты).

Для использования этого сценария надо в параметре "Учет предоплат" выставить значение "как внесение"

Фискальные предоплаты (как было раньше)

При добавлении в заказ предоплаты создаётся выбирается причина предоплаты, создаётся новый заказ в котором добавляется нераспределяемая наценка (ссылка берётся из причины) и этот заказ оплачивается валютой предоплаты, клиенту выдаётся фискальный чек. При удалении предоплаты соответствующий фискальный чек удаляется. После закрытия общей смены при удалении предоплатя вместо удаления чека лфломляется возврат на сумму предоплаты, при этом в возвратном чеке в качестве товара используется нераспределяемая "Наценка для позднего удаляения".

При использовании предоплаты оформляется нефискальная оплата на сумму предоплаты. Способ фискальности выбирался по значению параметра "Учет предоплат" "суммарно с вычитанием" для "чек, потом суммарно" и "фискальная скидка" для " "чек, потом скидка". Начиная с 7.6.1 способ фискальности просто задаётся у валюты зачёта аванса,

Для использования этого сценария надо в параметре "Учет предоплат" выставить значение "чек" (до 7.6.1 было два значения "чек, потом суммарно" и "чек, потом скидка")

Фискальные предоплаты (как будет теперь в РФ)

Теперь положено пробивать два фискальных чека: один при принятии денег, другой при выдаче товара (использовании предоплаты). В причине предоплаты выбирается валюта и учёт происходит в соответствии с настройками этой валюты. В параметре "Учет предоплат" выставить значение "чек"

Нефискальные предоплаты (внесение), как лучше

Использование разных валют (при приёме и при зачёте аванса) со своими настройками фискальности, возможно, разными, теоретически позволяет реализовать все возможные схемы учёта предоплат. В частности, если валюта приёма аванса нефискальная, а валюта зачёта фискальная, то это аналогично учёту "как внесение". Такой способ учёта перспективней, так как позволит упростить логику, исключив печать лишних документов внесений-выдачи.

Изменения в версии 7.6.1

  • В элементах справочника "Причины внесения/выдачи" добавлено поле "Валюта зачёта аванса" - ссылка на валюту, использующуюся для зачёта аванса. Поле показывается и обязательное, если у причины стоит флаг "предоплата". Эта валюта будет использована в платеже чека CurrLine, она же будет передаваться в фискальный чек.

  • В налоговые группы добавлен признак "Для аванса". При продаже блюда с такой налоговой группой UniFR передаст драйверу нижнего уровня атрибут ForAdvance="1" тэга Item. В причине внесения/выдачи денег "предоплата" есть (и всегда была) ссылка на нераспределяемую наценка. Если эта наценка будет ссылаться на блюдо с такой налоговой группой, то при приёме предоплаты будет распечатан чек продажи аванса.

Обновление на 7.6.1

Минимальная версия: 7.6.1.4.

В процессе обновления происходят следующие изменения:

  • Объединяются значения "Чек, потом суммарно" и "Чек, потом скидка" параметра "Учет предоплат". В обоих случаях новым значением станет "Чек".
  • Добавляются предустановленные валюты "Зачёт аванса" (код 200017) и "Фискальный зачёт аванса" (код 200018) в группе валют "Зачёт аванса".  Валюта "Зачёт аванса" имеет тип фискальности "Фискальная скидка", если параметр "Учет предоплат" имел значение "Чек, потом скидка" или "Суммарно с вычитанием" в остальных случаях. Исключения параметров игнорируются.
  • Валюта "Фискальный зачёт аванса" - фискальная. Для неё по умолчанию настроены индексы для фискальников "Штрих", "Атол", "Прим"
  • Добавляется налоговая группа "Аванс 18%" (код 4) у которой выставлен флаг "Для аванса"
  • Новые драйвера "Штрих", "Атол", "Прим"

Настройка причин внесения денег для инкассации

Настройка

В справочнике "Деньги - Причины внесения/выдачи денег" создать новую причину для внесения или выдачи денег и выставить соответственно значение параметра "Внесение денег" или "Изъятие денег" в значение "Да". 

Рис. Настройка причины для внесения или изъятия денег

Работа на кассе

При проведении инкассации на кассе станут доступны причины, у которых свойство "Изъятие денег" имеет значение "Да".

Рис. Выбор причины при инкассации на кассе

При проведении операции "Подкрепления денег"  на кассе станут доступны причины, у которых свойство "Внесение денег" имеет значение "Да".

Рис. Выбор причины при подкреплении на кассе

 

 

Настройка расширенных свойств

Введение

Расширенные свойства — это пользовательские поля, которые можно назначать объектам менеджерской станции. 

Настройка расширенных свойств

Чтобы создать расшиенное свойство, перейдите в Настройки > Настройка > Расширенные свойства. Создайте новую группу расширенных свойств или воспользуйтесь предустановленной. 

Укажите название и сделайте свойство активным. 
Перейдите во вкладку Типы расширенных свойств и создайте новый тип. Укажите ему

  • Название 
  • Системное имя

Нажмите 2 раза на поле Список типов чтобы выбрать элементы, к которым будет относится расширенное свойство. 

Нажмите правой кнопкой мыши на пустом месте и выберите Добавить Элемент.

Выберите нужный тип. Для примера создадим расширенное свойство для элемента меню. Они находятся в группе Меню, Модификаторы, Цены.
Найдите нужный тип и нажмите по нему 2 раза левой кнопкой мыши. 

Созданный тип появится в списке типов: 

Сохраните/Ctrl+S и перезапустите менеджерскую станицию.
Проверяем. Откроем меню и проверим наличие нашего свойства:

Готово. Вы создали расширенное свойство. 

Настройка связи с сервером геолокации

1. Общие сведения о сервере геолокации

Сервер геолокации принимает метки от GPS-устройств, сохраняет их в БД, предоставляет массив меток по запросу.

2. Настройка связи с сервером геолокации

2.1  Создание и настройка группы баз данных

В менеджерской станции зайти в меню «Расширения – База данных» (см. рис.1), вызвав контекстное меню, создать новую группу баз данных (см. рис.2), и опять с помощью контекстного меню зайти в «Свойства» группы (см.рис. 3), затем переименовать её (см. рис.4).

Рис. 1.  Меню «Расширения – База данных»

Рис. 2. Создание новой группы баз данных

Рис. 3. Меню «Свойства» группы баз данных

Рис. 4 Свойства группы баз данных

«GUID» – генерируется автоматически;

«Название» – название группы;

«Альт. название» – название группы на альтернативном языке, заполняется при необходимости;

«Код» - генерируется автоматически;

«Статус» – выбирается активный.

 

2.2 Создание и настройка базы данных

Для группы баз данных вызываем контекстное меню (см. рис.5) и нажимаем «Создать новую базу данных». На созданной базе данных через контекстное меню выбираем «Свойства» (см. рис.6) и заполняем их (см. рис.7).

Рис. 5 Меню «Создать новую базу данных»

Рис. 6 Меню «Свойства» базы данных

Рис. 7. Свойства базы данных

«GUID» – генерируется автоматически;

«Альт. название» – название на альтернативном языке, заполняется при необходимости;

«Код» - генерируется автоматически;

«Название» – название базы данных;

«Статус» – выбирается активный;

«Имя пользователя» –логин  пользователя, зарегистрированного на сервере геолокации;

«Пароль» – пароль пользователя, зарегистрированного на сервере геолокации;

«Строка соединения» -  http://[адрес сервера]:[порт]/api/gpx;

«Тип базы данных» – GPX;

«Параметр Начальная дата» – начальная дата загрузки данных в базу данных;

«Параметр Конечная дата» - конечная дата загрузки данных в базу данных.

 

2.3 Настройки ini-файла

При наличии отдельной роли для экспедиторов для ускорения построения отчета на основе данных геолокации в ini-файле FS «IRReportsFSPrj.ini» в зоне [FS_AGREGATE] необходимо установить:

- Exp_role={[GUID роли]} - GUID роли можно найти в менеджерской под дилерской учетной записью, меню «Персонал-Работники»;

- Agregate=1 (см. рис.8).

Рис. Пример раздела ini-файла

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

 

 

Настройка тарификации

Настройка тарификации

Для настройки тарификации необходимо

  1. Включить опцию «Тарификация» в параметре «Использование опций\Использовать тарификацию»
  2. Добавить драйвер интерфейса на закладку «Устройства» кассового сервера
  3. Добавить логический интерфейс в справочнике сервис/интерфейсы
  4. Выбрать у логического интерфейса в свойстве по имени кассового сервера драйвер
  5. В справочнике Настройки\Столы и залы\Планы залов и столы для плана зала на закладке «Тарифицируемые устройства» создать устройства, выбирая Логическое устройство, заполняя номер дорожки – номер выхода реле тарификатора
  6. На кассовом сервере (для Windows):
    • Остановить кассовый сервер
    • Вполнить preload .\rkeeper.ini
    • Из подпапки preload взять tar2eth.dll и положить рядом с кассовым сервером

UCS Ethernet Rater for windows, UCS Ethernet Rater DOS

Local Port(18253) – порт на  компьютере (не на устройстве). Должен быть разным, для разных тарификаторов на одном сервере.

IP Address() – адрес хаба. Необходимо заполнить

Log File name() – имя файла журнала для отладки. Если пустое, отладка не выводится

Настройка фискальной предоплаты

 1. Настройки -> Параметры. Для параметра Учет предоплат выставить значение Печатать чек.


2. Деньги -> Скидки и наценки. Создать нераспределяемую суммовую наценку (Предоплата). Детализация = 0.


3. Деньги -> Причины внесения/выдачи денег. Создать новую причину для предоплаты, указать наценку (предоплата).

4. При фискальное предоплате нельзя закрывать заказ на сумму меньше предоплаты (сдачи дать нельзя), поэтому можно создать наценку для чаевых и сдачу выводить в чаевые.
5. Заказы с предоплатой можно переносить в новую смену при закрытии общей смены, для этого у работника должно быть право (в совйствах роли) Закрывать смену при наличии открытых столов.

Описание установочных параметров

Введение

В этом разделе описаны параметры системы, которые настраиваются при инсталляции и параметры, с помощью которых настраивается связь с другими системами.

Для редактирования параметров войдите в пункт меню «Настройки/Параметры» и выберите в дереве группу параметров «Установочные»

Корневые элементы

Параметр Назначение
EnterpriseCode Код предприятия для ПДС и Хеад-офиса
ShowLogo Выводить ли лого R-Keeper в левом-верхнем углу каждого окна
CRC32CheckMode Режим проверки целостности модулей на кассе
CubesSourceType Источник данных (и способ построения) по умолчанию для кубов
LightWeightCheckBase Хранить лишь частичные данные в check.udb, позволяет сократить размер check.udb при использовании альтернативных СУБД
ExtCodesBase Все внешние коды, присваиваемые новым элементам, гарантированно будут больше этого значения.

Группа «Связь с другими системами»

Группа «StoreHouse4»

Используется при импорте себестоимостей из StoreHouse4

Параметр Назначение
SH4Storehouse Код склада в StoreHouse, при использовании нескольких складов следует указать их коды через запятую
SH4Username Имя пользователя в StoreHouse
SH4Password Пароль пользователя в StoreHouse
SH4Server Адрес сервера StoreHouse (как отображается в окне about клиента склада, если присутствует имя в скобках – следует писать его).
SH4CommodityGroup Код товарной группы в StoreHouse4, при использовании нескольких групп следует указать их коды через запятую
SH4UseAltNames Экспортировать альтернативные названия в StoreHouse 4, см. Экспорт товаров и продаж в SH4

Группа «Персональные карточки»

См. Настройка связи с ПДС

Параметр Назначение
ShowCardImage Показывать картинку, связанную с карточкой
PDSUseCurrentLogicDate Использовать в качестве даты транзакции ПДС/Farcards текущую логическую дату смены, если Νο, то используется текущая системная дата
ShowCardInfo Показывать диалог с информацией о карточке
PDSServerName Сетевое имя сервера клиентских карточек (см. NetServerName), может быть перекрыт параметром интерфейса, см. PDS Server Name. Надо задавать при необходимости использования исключений (для нескольких серверов)

Группа «Shelter»

См. Настройка связи с Shelter

Параметр Назначение
ShelterStationGroup "Группа станций" для UCS Шелтер, перекодируется в код услуги, см. Секция [TranslateOperation]
ShelterTranslateAll Передавать все платежи в UCS Шелтер, если не выставлено, то передаются только платежи на номер

Группа KDS и VDU

Параметр Назгначение
KDSClassiffication Классификация для КДС и VDU, если не задана - КДС не используется
VDUTextLabel Текст с параметрами: %0:s - имя официанта (по умолчанию), %1:s - имя стола, %2:s - категория заказа, %3:s - тип заказа, %4:s - сохраняемый комментарий визита, %5:s - несохраняемый комментарий

Группа «Brunswick Bowling»

См. Настройка Brunswick Vector

Параметр Назначение
TariffNewTable Определяет поведение интерфейса при переброске результата тарификации в R-Keeper. Если включен - будет создан новый стол (при этом номер стола равен номеру дорожки), если выключен - результат тарификации будет добавлен к существующему столу. Применяется, как правило, в крупных боулингах

Группа «Весовой товар»

Параметр Назначение
BarcodeDivisor Делитель веса, полученного из весового штрих-кода (например, из алгоритма «Обработка по маске»)
WeightUnitName Название единицы измерения для весовых блюд
DoseUnitName Название единицы измерения для дозируемых блюд

Группа «Лицензирование»

Параметр Назначение
LicenseNotifyBefore Период (в днях), за который следует выдавать предупреждение на кассе о приближающемся истечении срока действия лицензии
LicenseNotifyText Текст сообщения с предупреждением об истечении срока действия лицензии (используйте %s для вставки срока окончания действия)

Группа «Языковые настройки»

Параметры этой группы не редактируются, а устанавливаются при запуске сервера refsrv.exe из файлов перевода (см. MainLang , AltLang)

Параметр Назначение
MainLangID Идентификатор языка Windows для основного языка – устанавливается сервером автоматически по клавиатуре словаря сервера (см. MainLang)
AltLangID Идентификатор языка Windows для альтернативного языка - устанавливается сервером автоматически по клавиатуре словаря сервера (см. AltLang)
MainCharset  Charset основного языка
AltCharset Charset альтернативного языка
HTTPCharsets  Набор символов для HTTP. С версий 7.5.3.255

 

Примечание: Начиная с версии 7.5.3.255 добавлен новый параметр "Набор символов для HTTP". Если ему прописать значение Windows-1251, то в WEB-интерфейсе серверов сообщения на русском языке будут выводиться в правильной кодировке.

Группа «Конфигурация SQL Сервера»



Название


Описание


  ADO провайдер


Имя провайдера услуг БД. В текущий момент поддерживается значение ‘SQLOLEDB.1’ (MS SQL Server). Если заполнено – идет запись в БД.


  Имя сервера


Имя сервера SQL


  Имя пользователя


Имя пользователя на сервере SQL


  Пароль


Пароль пользователя на сервере SQL


  База данных


Название БД, куда записываются изменения

Отладочные параметры

Полное описание отладочных сообщений доступно по ссылке — https://support.ucs.ru/ru/node/9709

 

 В этом разделе описаны параметры системы, которые могут использоваться для отладки кассы.

Для редактирования параметров войдите в пункт меню «Настройки/Параметры» и выберите в дереве группу параметров «Отладка»

Параметр Назначение
DebugMessages Список (через запятую) кодов отладочных сообщений. Сообщения указанных кодов будут выводиться кассой в файл cash.stk.
CalcLogFileName Имя файла журнала расчёта. В этот файл сохраняются отладочные сообщения во время расчёта заказа. Расчёт заказа выполняется многократно: при каждом изменении заказа, для всех валют в списке оплат и т.п.
ScreenshotPrefix Путь на кассе и начало имени файла, где будут сохраняться скриншоты экрана. Для сохранения скриншота надо назначить на клавиатуру или читалку магнитных карт функциональную клавишу с операцией «сохранить  Screenshot»

Премии и штрафы

 

1. Премии и штрафы

Премии – это вознаграждение для работника, выражающееся в денежном эквиваленте. Премия может быть назначена автоматически или вручную на кассовой станции.

Штрафы - денежное взыскание для работника.  Назначается вручную на кассе. Сумма штрафа может быть фиксированной, либо значение штрафа вводится вручную на кассе.

Рис.1 Типы премий и штрафов

Для того чтобы создать в системе новую премию/штраф нужно открыть справочник Премии / Штрафы. См.рис.2.

Рис.2 Справочник Премии / Штрафы

В левой части, открывшегося справочника создаем новую группу для премии/штрафа. Щелкнув правой кнопкой мыши, из контекстного меню выбираем строку Новый набор премии / штрафа. Вводим название группы, делаем статус - активный. См.рис.3.

Рис.3 Создание новой группы

На закладке Фиксированные премии создаем новое правило для расчета премии/штрафа. См.рис.4.

Рис.4 Создание нового правила

2. Премия от свойств заказа

2.1. Премия от свойств заказа (от суммы заказа)

Сумма премии зависит от суммы заказа, назначается на основного официанта, если  в использовании не заданы другие условия (роль или работник). Пример: 10% от суммы заказа более 2000 р  (сумма заказа рассчитывается с учетом скидок). См.рис.5. 

Рис.5

Описание основных параметров

Секция "Интервал"

Значения максимального и минимального лимита показателя рассчитывается из расчета [сумма заказа] * [коэффициент].

Минимальный лимит показателя – минимальный показатель значения премии, при котором премия должна срабатывать;

Максимальный лимит показателя – максимальная показатель значения премии, при котором премия будет назначена. Если значение премии, рассчитанное на кассе, превысит указанное, то премия работнику назначена не будет.

Максимальный лимит показателя имеет смысл заполнять, если для разных сумм заказа предполагается разный процент премии. Например, премия 10% если сумма заказа 2000-5000руб и 15% если сумма заказа превышает 5000 руб. Для реализации такого расчета нужно завести две премии:

1) Премия на заказ 2000-5000 с настройками:

Минимальный лимит показателя = 200

Максимальный лимит показателя = 500

Коэффициент = 0,10

2) Премия на заказ от 5000 с настройками:

Минимальный лимит показателя = 500

Максимальный лимит показателя = 0,00 (т.е. не задан)

Коэффициент = 0,15

Секция "Основное"

Макс. сумма премии/штрафа – максимальная сумма премии, которая может быть назначена сотруднику;

Коэффициент – процент премии, выраженный в долях, т.е. если требуется рассчитать 10% от суммы заказа, то коэффициент = 0,1. При расчете премии сумма заказа умножается на коэффициент.

Тип объекта – параметр имеет три значения: категория, комбо элемент меню или элемент меню. Если параметр не задан, то премия будет рассчитываться от суммы всего заказа. Если будет указан один из параметров, то откроются дополнительные опции: объект1, объект2 и объект3, в которых можно будет задать конкретную категорию блюд или блюдо. Если эти параметры будут заполнены, то при расчете премии будут учитываться только блюда указанной категории блюд, либо сумма заданных блюд.

Правило расчета – фиксированное значение системы, зависит от типа созданной премии;

Единица измерения суммы - единица измерения в денежном эквиваленте;

2.2. Премия от свойств заказа (от количества блюд в заказе)

Сумма премии зависит от количества определенных блюд в заказе, работнику автоматически начисляется фиксированная сумма премии за каждое проданное блюдо, например, официанту будет начислено 20 руб. за продажу определенного блюда или блюдо определенной категории (категории бар). См.рис.6

Рис.6

Описание основных параметров

Секция "Интервал"

Значения максимального и минимального лимита показателя рассчитывается из расчета [количество блюд] * [коэффициент].

Минимальный лимит показателя – минимальный показатель значения премии, при котором премия должна срабатывать;

Максимальный лимит показателя – максимальная показатель значения премии, при котором премия будет назначена. Если значение премии, рассчитанное на кассе, превысит указанное, то премия работнику назначена не будет.

Секция "Основное"

Макс. сумма премии/штрафа – максимальная сумма  премии, которая может быть назначена сотруднику, не зависимо от значения максимального лимита показателя;

Коэффициент – сумма премии за одно блюдо. При расчете премии количество блюд умножается на коэффициент.

Тип объекта – параметр обязателен для заполнения. Имеет три значения: категория, комбо элемент меню или элемент меню. В  дополнительных опциях параметра: объект1, объект2 и объект3, нужно указать категорию блюд или блюда, для которых будет рассчитываться премия.

2.3. Настройка использования автоматической премии.

После создания правил работы премии от суммы заказа или от количества блюд необходимо настроить использование этой премии.  Для этого на панели инструментов нажать на значок использования . Откроется окно, представленное на рис.7.

Из левой части окна значение «Автоматически» перетащить мышкой в таблицу использования. В правой части окна указываются дополнительные опции для назначения премии. Обязательным для заполнения является поле Ресторан. Если не указывать никаких других опций, то премия будет автоматически назначаться на основного официанта заказа.  Если задавать дополнительные параметры в настройке использования премии, то вы получите дополнительные ограничения по назначению премии. Например, назначение премии можно ограничить по периоду (с 18 до 23); премию можно назначать на определенные столы или на заказы определенной категории или типа заказа.

Рис.7

3. Премия/Штраф за отработанное время

Премия/Штраф назначается сотруднику автоматически, с учетом выполненных настроек.

Данная Премия/Штраф работает только вместе с модулем Учета рабочего времени, настроенного через R-Keeper7.

В списке премий и штрафов – это Новая премия за отработанное время, Новый штраф за опоздание и Новый штраф за отработанное время см.Рис. 7

Рис. 8

3.1. Премия за отработанное время

На Рис. 9 показан пример настройки Премии (Оплата работы менеджеров)

Рис. 9

Интервал

Значения максимального и минимального лимита показателя – это количество отработанных часов, для которых рассчитывается премия.

Минимальный лимит показателя – минимальное количество отработанных часов, для которых начнет рассчитываться премия; задается обязательно для расчета премии;

Максимальный лимит показателя – максимальное количество отработанных часов, для которых будет начислена премия.  Если расчет премии не зависит от количества отработанных часов, то данное значение можно не указывать. Если количество отработанных часов превысит данный показатель, то премия по данному правилу работнику назначена не будет.

Основное

Макс. сумма премии/штрафа – максимальная сумма  премии, которая может быть назначена сотруднику (значение параметра чаще выставляется для настройки фиксированной премии);

Коэффициент – сумма премии за один час работы. При расчете премии количество отработанного времени умножается на коэффициент.

Правило округления – выбирается правило округления для расчета суммы премии.

Премию за отработанное время можно считать начислением заработной платы. С помощью настроек данной премии можно получить два правила начисления зар.платы: фиксированная зар.плата (за смену) и начисление за отработанное время. Рассмотрим настройки справочника для  каждого случая.

На Рис. 10 показаны настройки для начисления фиксированной суммы премии (фиксированная оплата труда). Например, оплата работы менеджера рассчитывается 2500 руб. за выход на смену.

Минимальный лимит показателя – выставить время, которое определяет выход сотрудника на работу, можно выставить значение 00:01.

Максимальный лимит показателя – значение можно не выставлять, если расчет премии не завит от отработанных часов.

Коэффициент и Максимальная сумма премии не должны быть равны.

Рис. 10

На Рис. 11 показаны настройки для начисления суммы премии рассчитанной за отработанное время (почасовая оплата труда). Например, оплата работы поваров рассчитывается: 700 рублей за отработанный час, но сумма за смену не превысит 3000 руб.

Минимальный лимит показателя – выставить время, которое определяет выход сотрудника на работу, можно выставить значение 00:01.

Максимальный лимит показателя – значение можно не выставлять, если расчет премии не завит от отработанных часов.

Коэффициент – размер премии за 1 час.

Максимальная сумма премии – указывается максимальное значение, которое не может превысить начисленная премия (параметр не обязательный для заполнения).

Рис. 11

Примечание: Если необходимо, чтобы премия начислялась не за отработанное время, а за выход, то поле коэффициент надо оставить пустым. В этом случае сумма премии возьмется из поля Макс. сумма. Если коэффициент заполнен, то премия считается по формуле = отработанное время*коэффициент/100.

3.2. Штраф за опоздание

Штраф за опоздание является фиксированным. Для разного времени опоздания можно задать разную сумму штрафа см Рис. 12.

Рис. 12

Минимальный лимит показателя – выставить время опоздания сотрудника (время будет рассчитываться системой с учетом параметра Начало смены, который задается при настройке Учета рабочего времени),

Максимальный лимит показателя – максимальное время опоздания, которому соответствует значение штрафа.

Максимальная сумма премии – значение штрафа, за указанный интервал опоздания.

3.3. Штраф за недоработку

Штраф за неотработанное время рассчитывается в зависимости от заданных параметров (время недоработки * коэффициент). Время рассчитывается с учетом параметров, заданных при настройке Учета рабочего времени (Начало смены и Продолжительность смены). см Рис. 13.

Рис. 13

Минимальный лимит показателя – выставить минимальное время недоработки сотрудника.

Максимальный лимит показателя – максимальное время недоработки, которому соответствует значение штрафа.

Коэффициент – сумма штрафа за 1 час времени.

Максимальная сумма премии – максимальное значение штрафа, за указанный интервал опоздания.

3.4. Настройка использования премии/штрафа за отработанное время.

Описанные выше премии/штрафы назначаются сотрудникам автоматически. Для этого для каждой премии/штрафа нужно настроить использование. В использовании премии обязательно указать ресторан и роль см Рис. 14.

Рис. 14

4. Ручные Премии и Штрафы

Премии или штрафы, назначаемые вручную могут иметь либо фиксированную сумму штрафа, либо сумма премии или штрафа может быть назначена индивидуально на кассовой станции.

Рис.8

Описание основных параметров

Секция "Основное"

Правило расчета – фиксированное значение  (вручную или фиксированный) применяется при создании премии.

Максимальная сумма премии/штрафа – указать максимальное значение премии/штрафа, которое можно назначить сотруднику. Если премия фиксированная, то значения обязательно для заполнения, эта сумма будет назначаться сотрудникам при выборе данной премии/штрафа на кассе. Если сумма премии/штрафа назначается вручную, то указывать это значение не обязательно. Значение указывается в том случае, если нужно ограничить возможность ввода суммы премии/штрафа на кассе.

5. Назначение премии вручную на кассовой станции

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

Рис.9

6. Отчеты о назначении премии и штрафов

На кассовой станции в кассовых отчетах можно увидеть информацию о Премии и штрафах за текущую смену. Отчет можно построить как по выбранному работнику, так и по всем работникам.

Рис.10

Так же можно построить отчет в Сервере отчетов за любой  закрытый  период.

 

Рис.11

Редактор макетов

Описание редактора макетов

   В общем виде документ для печати в RK7 состоит из 2 составляющих: 1) набор кассовых OLAB-кубов(наборы данных) 2) непосредственно сам макет документа. Набор кубов(датасэтов) определяет, какие наборы данных будут применяться в документе, т.е. наборы переменных, которые могут быть использованы в макете. Сам макет позволяет определить внешний вид будущего документа.

Стоит сразу оговорится, что печатные документы в RK7 2-х типов: системные и пользовательские. Главное отличие первых от вторых заключается в том, что в системном документе нельзя изменить набор кубов(датасетов), также нельзя изменить и сами кубы. Для пользовательских документов можно менять и набор кубов и сами кубы(например добавлять и удалять новые переменные) .

На рисунке 1 показаны основные элементы редактора макетов:

рис. 1

1) Бэнд; 2) Мемо; 3) Лист; 4) Помощник с указателем доступных датасэтов.

  Макет может состоять из одного или нескольких листов, на этих листах размещаются бэнды (секции), в бэнды могут быть вложены другие бэнды или размещены мемо поля. Свойства листов, бэндов и мемо полей изменяются через инспектор объектов. Размеры бэндов и полей изменяются с помощью перетаскивания их границ.

  Каждому бэнду соответствует источник данных (датасет), представляющий собой набор записей(список переменных), которыми можно оперировать внутри этого бэнда. С помощью мемо - полей выводятся отдельные поля источника данных или любой текст. Названия полей источника данных заключаются в квадратные скобки.

При добавлении бэнда на лист можно создать объект 5-и типов (для чего служит каждый из них - можно догадаться по названию), основной тип бэнда в который выводятся непосредственно данные - виртуальный. После создания, с помощью двойного клика можно привязать к бэнду нужный набор данных, с этим набором данных впоследствии можно будет работать внутри бэнда(рис. 2).

рис. 2

После того, как к бэнду привязали набор данных - внутри можно разместить memo - внутрь этих memo вставляем переменные из набора данных., таким образом  нужный набор данных будет печаться в отчете(рис. 3).

рис. 3

Переменные обрамляются квадратными скобками , также есть подсветка синтаксиса. При отправке макета на печать элементы на листе выполняются последовательно (сверху вниз),  т.е. если мы делаем новый макет пречека и поместили на лист например бэнд с набором данных "Блюда", то во время выполнения этого бэнда будут обработаны все записи из пречека: один проход - одно блюдо, т.е. в общем смысле в бэнде у нас выполнится цикл размером в количество блюд в пречеке, после выполнения этого цикла, будет выполнен следующий бэнд (цикл) и т.к. далее. Разрешается использование вложенных бэндов, тогда получаем цикл вложенный в цикл.

Важно понимать, что переменные из набора данных можно использовать только в рамках своего бэнда. 

Редактор макетов оснащен встроенным редактором скриптов, который имеет ситаксис схожий с Pascal(с некоторыми ограничениями). Скрипты могут быть применены к memo(нижняя часть редактора memo), листу, бэнду, в зависимости от того где размещен скрипт - зависит время срабатывания кода - сначала выполняется лист, затем бэнд, далее memo в этом бэнде. Пример использования скрипта в memo представлен на рисунке 4.

рис. 4

1. Общие свойства для всех элементов

  • Видимый (Visible)

Показывать объект или нет. Скрипт выполняется вне зависимости от того, видим объект или нет.

  • Имя (Name)

Имя объекта. С помощью этого имени происходит доступ к объекту в скриптах

  • Тег (Tag)

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

  • Скрипт (Script)

Текст скрипта. Пишется на pascal подобном языке, синтаксис – pascal. Нет доступа к массивам и указателям. Скрипт может содержать локальные переменные, для чего их объявляют в начале скрипта с помощью конструкции var. Из скрипта есть доступ ко всем объектам макета (страницам, бэндам, мемо полям). Скрипт может изменять свойства объектов макета. Доступ к полям источника данных осуществляется посредством конструкции [ДатаСет.ИмяПоля]. Каждый скрипт выполняется по два раза: первый раз на этапе предварительного расчета макета, второй на этапе генерации. Узнать, на каком этапе сейчас находимся, можно с помощью переменной Report.Stage, которая принимает следующие значения stPrecalc (предварительный расчет), stShowing (генерация).

2. Лист (Документ)

Макет отчета состоит из одного или нескольких листов. Листы обрабатываются и печатаются последовательно, независимо друг от друга, порядок вывода – слева на право. Каждый лист содержит свой набор служебных бэндов: Заголовок отчета, Верхний и Нижний колонтитул, Итог по отчету.

Свойства Листа (Документа)

  • Фикс. Высота (Fixed Height)

Фиксированная высота бумаги. Задает, сколько строк помещается на печатную страницу. По достижению этого количества строк, будет начата новая страница. В случае слипового принтера это приведет к выдаче сообщения с предложением вставить новый лист бумаги, в случае роликового последует отрезание бумаги.

  • Переменные (Variables)

Список переменных общий для всех листов макета. В данном редакторе описываются глобальные переменные макета. К глобальным переменным есть доступ из любого скрипта макета, в отличие от локальных, которые доступны только в рамках того скрипта, где их объявили.

  • Параметры (Parameters)

Список параметров общий для всех листов макета. Источники данных (датасеты) изначально содержат данные по всем станциям, официантам, кассирам и т.д. Для того, чтобы построить отчет только по конкретному работнику используются параметры. Перед печатью отчета на кассе, пользователю предлагается задать значения для параметров и отчет строится с учетом этих ограничений. Параметры отчета работают как фильтры для датасетов. При разработке макета задается список его параметров. Каждый параметр описывается следующими свойствами:

Имя поля – Имя поля по которому будет ставится фильтр. Все датасеты будут отфильтрованы по этому полю. Если в датасете нет поля с таким именем, то датасет не фильтруется.

Коллекция – Справочник, из которого будут выбираться значения для параметра.

Значение – Фиксированное значение для параметра. Значения выбираются из справочника, заданного Коллекцией. Параметры с заданным значением при печати отчета не изменяются.

  • Объединения (Union Tables)

Список объединений общий для всех листов макета. С помощью объединения можно создать таблицу, являющуюся объединением двух других таблиц. Результирующая таблица по набору полей соответствует структуре первой таблицы. Результатом объединения является таблица состоящая из строк как первой, так и второй таблиц. В одном макете можно задать несколько объединений, каждое из которых описывается свойствами:

Имя – Имя, которое получит результирующая таблица

Таблица 1 – Имя первой таблицы

Таблица 2 – Имя второй таблицы

  • Новая страница (New Page)

Если true, то, после завершения печати всех бэндов страницы, будет вставлена команда отрезания бумаги (для роликовых принтеров,. слиповыми принтерами данная команда игнорируется)

  • Два прохода (Two Passes)

Если true, то при построении макета скрипты выполняются по два раза: первый раз с Report.Stage = stPrecalc, второй с Report.Stage = stShowing. Два прохода нужны, чтобы скриптом делать такие изменения в отчете, которые потребуют перегенерацию отчета. Например, если из скрипта бэнда изменять группировку или сортировку этого же бэнда.

3. Бэнд (секция) (Band)

Бэнды располагаются на листах или вкладываются в другие бэнды. Бэнды разделяются на бэнды с источниками данных и бэнды без источников данных (служебные). К служебным относятся бэнды следующих типов:


Report Title


Заголовок отчета


Выводится один раз в самом начале отчета


Report Summary


Итог по отчету


Выводится один раз в самом конце отчета


Page Header


Верхний колонтитул


Выводится в начале каждой печатной страницы


Page Footer


Нижний колонтитул


Выводится в конце каждой печатной страницы

Порядок обработки и печати бэндов: на каждой печатной странице сверху страницы выводится Верхний колонтитул, снизу страницы Нижний колонтитул. Один раз, на первой странице, после Верхнего колонтитула печатается Заголовок отчета, на последней странице, перед Нижним колонтитулом печатается Итог по отчету. Остальные бэнды выводятся в порядке расположения  сверху-вниз, т.е. первым выйдет на печать самый верхний бэнд, затем второй по расположению и т.д. Если в макете несколько листов, то каждый из листов обрабатывается и печатается как отдельный макет и может содержать Заголовок, Итог по отчету и Колонтитулы.

Все бэнды, кроме служебных, могут содержать до 3-х секций: Тела, Верхнего и Нижнего колонтитула. Ни одна из секций не является обязательной, но хотя бы одна из секций должна присутствовать. Порядок печати бэнда: сначала печатается содержимое верхнего колонтитула, затем печатается тело, причем тело печатается столько раз сколько строк в источнике данных, после чего печатается содержимое нижнего колонтитула.

Бэнд может изменять содержимое своего источника данных, сортируя, фильтруя и перегруппировывая его. Делается это посредством использования свойств Фильтр, Группировка и Сортировка. Порядок обработки свойств: сначала на источник данных налагается фильтр (фильтр бэнда и фильтр, полученный из параметров отчета), затем получившийся источник данных группируется, после чего сортируется.

Свойства Бенда

  • Источник данных (DataSet Name)

Источник данных, связанный с бэндом

  • Фильтр (Filter)

            Текст скрипта, с помощью которого налагается фильтр на источник данных. Пишется на pascal подобном языке. Скрипт применяется к каждой строке источника данных. Суть работы скрипта состоит в том, чтобы выставить переменную Filter в true для тех строк источника данных, которые должны остаться в итоговом датасете. Пример: Filter := ([ИсклИзДоходов]=1). В источнике данных останутся только те строки, в которых поле ИсклИзДоходов равнялось 1.

  • Порядок сортировки (Sort Order)

Набор полей, по которым выполняется сортировка связанного с бэндом источника данных

  • Группировка (Grouping)

            Группировка задает набор полей, по которым исходный источник данных группируется. По остальным полям выполняется суммирование (считаются агрегаты).

Пример: допустим, мы имеем источник данных Оплаты:


Группа Валют


Валюта


Заказ


Гостей


Сумма


Нац. Сумма


Наличные


Рубли


1/2


2


300


300


Наличные


Евро


1/3


3


20


700


Кредитные карты


Master card


1/4


5


100


100


Наличные


Рубли


1/5


2


500


500


Наличные


Рубли


1/2


2


200


200

 Если мы сгруппируем его по полю Группа Валют, то получим:


Наличные


Рубли, Евро


1/2,1/3,1/5,1/2


9


1020


1700


Кредитные карты


Master card


1/4


5


100


100

Если сгруппируем по полям Группа Валют, Валюта, то получим:


Наличные


Рубли


1/2,1/5,1/2


6


1000


1000


Наличные


Евро


1/3


3


20


700


Кредитные карты


Master card


1/4


5


100


100

            Как видно из примера, по числовым полям посчитались итоги, строчные поля соединились. В данном примере мы посчитали национальные суммы по группам валют и по валютам. Заметим, что итог по Кол-ву гостей посчитан неверно, т.к. в исходных данных есть несколько записей по одному заказу. По остальным полям итог не имеет смысла.

            Посчитать итог можно и с помощью агрегатных (суммовых) полей. Существует три вида агрегатных полей:

СУММА(Поле) – Аналог SUM(Поле) в SQL. Позволяет посчитать итог по полю Поле. Итог считается по первоначальному датасету, который был до группировки, но с использованием всех фильтров. В нашем примере агрегат [СУММА(Нац сумма)] посчитается как 1700, агрегат [СУММА(Сумма)] посчитается как 1020.

ЧИСЛО(Поле) – Аналог COUNT(DISTINCT Поле) в SQL. Позволяет подсчитать количество уникальных значений по полю Поле. К примеру [ЧИСЛО(Валюта)] вернет 3, т.к. в источнике данных Оплаты используется три валюты.

СУММА(Поле1, Поле2) – Аналога в SQL не имеет. Объединяет группировку с подсчетом итогов. Работает следующим способом: исходный датасет группируется по полям Поле1, Поле2, после чего по Полю2 считается итог. К примеру, нужно посчитать сумму гостей по всем заказам, тогда [СУММА(Заказ, Гостей)] вернет правильно рассчитанный итог = 12, в то время как при простом суммировании колонки Гостей получим 14.

Эти же агрегаты можно вычислить с заданным условием:

СУММАУСЛ(Поле;Условие) – Аналог SUMIF в Excel. Позволяет посчитать итог по полю Поле для тех строк, где выполняется условие Условие. Условие это выражение вида ИмяПоля = Значение. Вместо оператора = (равно) можно использовать любой оператор сравнения: >,<,<=,>=,<>. В нашем примере агрегат [СУММАУСЛ(Нац сумма; ГруппаВалют=Наличные)] посчитается как 1600, агрегат [СУММАУСЛ(Сумма; ГруппаВалют=Наличные)] посчитается как 920.

ЧИСЛОУСЛ(Поле; Условие) – тоже что и ЧИСЛО(Поле1), но только для тех строк датасета, для которых выполняется Условие, имеющее вид ИмяПоля=Значение. К примеру [ЧИСЛОУСЛ(Валюта; ГруппаВалют=Наличные )] вернет 2, т.к. в источнике данных Оплаты используется две наличные валюты.

СУММАУСЛ(Поле1, Поле2; Условие) – тоже что и СУММА(Поле1, Поле2), но только для тех строк датасета, для которых выполняется Условие, имеющее вид ИмяПоля=Значение. К примеру, нужно посчитать сумму гостей по всем заказам с оплатой наличными, тогда [СУММАУСЛ(Заказ, Гостей; ГруппаВалют=Наличиные)] вернет 7

  • Категория (Category)

В качестве категории может выступать любое поле источника данных. Обрабатывается категория следующим образом: сначала определяются уникальные значения по указанному полю, затем для каждого полученного значения выполняется печать бэнда. При каждой печати бэнда на источник данных ставится фильтр вида Категория = Значение. К примеру, если в качестве категории указать  Группу Валют, то источник данных Оплаты напечатается следующим образом:


Валюта


Заказ


Гостей


Сумма


Нац. Сумма


Кредитные карты


Master card


1/4


5


100


100


Наличные


Рубли


1/2


2


300


300


Евро


1/3


3


20


700


Рубли


1/5


2


500


500


Рубли


1/2


2


200


200

  • Вычислимые поля (Calculated Fields)

С помощью этого свойства можно добавить вычислимые поля в датасет бэнда. Добавлять вычислимые поля нужно для того, чтобы сделать группировку или сортировку по полям, которые отсутствуют в датасете, но могут быть вычислены на основании его полей. Каждое вычислимое поле описывается следующими свойствами:

Выражение – Непосредственно выражение. На данный момент в качестве выражений могут выступать атрибуты (например Работник.Код, или ЭлементМеню.Вес)

Имя Поля – системное название добавляемого поля. Задается на английском языке, нужно для использования данного поля в скриптах.

Заголовок пользовательское название добавляемого поля

Верхний колонтитул (Header)

Верхний колонтитул бэнда. При выводе бэнда печатается первым. Характеризуется следующим свойствами:


Цветной


Colored


Печать содержимого колонтитула с выделением цветом. Работает, если принтер поддерживает  инверсионную печать


Двойная Высота


Double Height


Двойная высота печати содержимого колонтитула


Двойная Ширина


Double Width


Двойная ширина печати содержимого колонтитула


Прятать Пустые Строки


Show Empty Lines


Флаг определяет, печатать или нет пустые строки


Размер


Size


Высота колонтитула в строчках. Если 0, секция не печатается

  • Тело (Body)

Тело бэнда. Выводится после печати Верхнего колонтитула. Содержимое тела бэнда печатается столько раз, сколько записей в датасете. Свойства тела бэнда совпадают со свойствами верхнего колонтитула.

  • Нижний колонтитул (Footer)

Нижний колонтитул бэнда. Выводится после Верхнего колонтитула и Тела бэнда. Свойства нижнего колонтитула совпадают со свойствами верхнего колонтитула.

  • Поведение - Показывать пустые (Show Empty)

Флаг, указывающий, следует ли выводить бэнд, если в источнике данных, связанном с бэндом, нет ни одной записи. По умолчанию такие бэнды не выводятся, даже если у них задан Верхний или Нижний колонтитул

  • Перед началом (Before Start)

Скрипт, который выполняется перед началом обработки бэнда

  • После завешения (After Finish)

Скрипт, который выполняется после окончания обработки бэнда

  • Скрипт (Script)

Скрипт, который выполняется для каждой строчки источника данных, непосредственно перед ее печатью

  • Секция XML (XML Section)

Используется для экспорта печатного документа в XML. При экспорте строки, сгенерированные этим бэндом, попадут в секцию с указанным именем. По умолчанию имя секции совпадает с именем источника данных.

4. Мемо поле (Memo)

С помощью мемо - полей выводятся отдельные поля источника данных или любой текст. Названия полей источника данных заключаются в квадратные скобки. Мемо поля вкладываются в бэнды.

Свойства мемо поля

  • Выравнивание

Задает способ выравнивания текста: по левому краю, по центру или по правому краю

  • Содержание

Содержит текст, который будет выведен на печать. Для вывода на печать полей из источника данных, их (названия полей) необходимо заключить в квадратные скобки: [ИмяПоля]. Чтобы вывести на печать поле из другого источника данных, не связанного с бэндом, в который вложено мемо нужно использовать конструкцию [ИмяИсточникаДанных.ИмяПоля]. Для вывода на печать escape последовательностей, нужно использовать конструкцию <EscapeКоманда>. Список escape команд будет приведен ниже. Количество полей, которое можно вывести с помощью одного мемо, не ограничено.л

  • Формат

Задает формат переменной (число, дата, время, другое)

  • Прятать нули
  • Альтернативный язык
  • Перенос по словам

Включить автоперенос

  • Атрибуты XML
  • Класс XML
  • Тэг XML

5. Пример настройки фильтра

Предположим, что необходимо настроить фильтрацию бэнда блюдо в пречеке по категориям. Выглядеть должно примерно так:

[Классификация]

                                  [Категория1]
                                             
                                                             Блюдо1
                                                             Блюдо2
                                                             Блюдо3

       Итого по категории: [ценоваясумма]

                                   [Категория2]

                                                            Блюдо4
                                                            Блюдо5
                                                            Блюдо6

        Итого по категории: [ценоваясумма]

Итого по классификации

Решение.

  1. Добавить в бэнд блюд расчетное поле с нужной классификацией (скажем поле Category);
  2. Выставить у бэнда Категорию=Category;
  3. Сгруппировать бэнд по полю Category;
  4. Вложить в бэнд еще один бэнд блюд;
  5. У вложенного бэнда добавить такое же расчетное поле и выставить такую же группировку;
  6. Поле для вывода имени блюда нужно добавлять во вложенный бэнд, для имени имени категории во внешний.

Редактирование макета чека

Введение

В статье описано, как отредактировать макет чека и применить его для печати. Рекомендуем ознакомиться с предыдущей статьей, в которой описаны элементы редактора макетов.

Создание макета чека

Разберём процесс создания нового макета на примере макета чека оплаты.

  1. Откройте менеджерскую станцию
  2. Перейдите в раздел Настройки > Печать > Документы и Макеты
  3. Выберите нужный макет чека и нажмите на него правой кнопкой мыши
  4. Выберите пункт Новый макет (копия)
  5. Введите название нового макета чека и сделайте его активным
  6. Нажмите 2 раза на Дизайн макета и отредактируйте макет чека
  7. Если не знаете, как редактировать макет чека — эта информация есть статья о редакторе макетов.
  8. Сохраните изменения

Применение макета

Осталось применить созданный макет.

  1. Перейдите в Настройки > Печать > Схемы печати
  2. Выберите нужную схему печати или создайте свою. Мы будем редактировать основную
  3. Выберите Основную схему и в разделе Представления документов нажмите правой кнопкой мыши на пустом месте
  4. Выберите пункт Добавить представление документа
  5. Откроется меню Документы и Макеты. Выберите созданный ранее макет:
  6. Нажмите ОК
  7. Макет появится в схеме печати. Теперь чековый принтер по этой схеме печати будет печатать 2 чека. Чтобы этого избежать, удалите из схемы печати стандартный макет чека.
  8. Готово! Теперь чек оплаты будет печататься по нашему шаблону.

Импорт макета

Макет можно не создавать с нуля, а импортировать готовый. Для этого понадобится файл макета, имеющий расширение .mak.

  1. Для этого откройте дизайнер макетов — это пункт 6 раздела создания макета чека
  2. В дизайнере макетов нажмите кнопку  или сочетание клавиш Ctrl+O
  3. Выберите файл макета
  4. Нажмите Открыть
  5. Новый макет импортируется. Нажмите ОК в дизайнере макетов
  6. Сохраните изменения.

Печать расширенных свойств на чеке

Если требуется распечатать на чеке расширенное свойство, то необходимо:

  1. Создать копию нужного макета чека
  2. Открыть дизайн макета чека.
  3. Вы можете выбрать любое удобное место и создать свой виртуальный бэнд, а мы для примера отредактируем стандартный
  4. Отредактируйте бэнд блюда. Нажмите 2 раза на элемент [Название]
  5. Нажмите правой кнопкой мыши в верхнем поле. Откроется меню Атрибуты
  6. Добавьте в верхнее поле элемент Элементменю > Расширенные свойства
  7. Выберите нужное расширенное свойство и нажмите ОК. Свойство появится в виде ссылки: [Элементменю.Расширенноесвойство]
  8. Нажмите ОК. Теперь при печати под названием будет печататься расширенное свойство.

Если необходимо вывести расширенное свойство заказа, используйте бэнд Заказы.

Настройка суммы произвольной категории в чеке

Как добавить в Пречек (Чек) суммы по произвольной категории?

Главное:
1. Сделать копию используемой печатной формы
2. Переименовать ее адекватно задаче.
Основное (открыть редактирование макета):
1. Добавить бэнд (виртуальный) в конце макета
2. Установит источник данных бэнда в «блюда»

3. Выделить нужный Бенд. Выбрать пункт "Вычисляемые поля". Добавить Вычисляемое поле из Представленного списка Атрибутов (Элемент меню --> Классификации).В окне Вычисляемые поля Имя Поля и Заголовок заполняется вручную.

Предупреждение: в некоторых версиях, в частности 7.5.2.289 "Имя поля" необходимо заполнять латинскими буквами.

Иначе при нажатии на кнопку "ОК" выскакивает ошибка "Invalide name indetifier: "Суммы по категориям".


4. С помощью поля Группировка, в свойствах выделенного Бенда, открыть окно Диалог группировки и вынести в правое окно нужную классификацию (созданное вами вычисляемое поле, найдите его по заголовку, который вы раннее указали). Если окно группировки содержит другие данные, то перенесите их в левое окно.


5. Создать в данном Бенде Мемо и выбрать нужную классификацию из предлагаемого списка.


6. Кинуть на Бэнд еще одно Мемо и туда вывести переменную [ЦеноваяСумма] (в этой ситуации суммы будут указываться без учета скидки). Если суммы по категориям нужно указывать с учетом скидки, то в поле Редактирование содержимого должна быть формула [Ценовая Сумма-СуммаСкидки]


7. Для того чтобы печатались суммы по категориям, только в случае отличной от нуля, для созданного Бенда нужно указать Фильтр.

8. При использовании комбо-блюд необходимо использовать следующий фильтр: Filter := ([ComboUNI]=0) либо  Filter := ([Комбо]=0) в зависимости от того, что не учитывать при расчете сумм: комбо блюдо или комбо-элементы, в противном случае суммы по комбо-блюдам будут "двоиться".

9. Сохранить изменения в макете и вынести данный макет в используемую схему печати

Создание кассового отчета "Общий расход блюд по официантам"

Создание отчета "Общий расход блюд по официантам"

1. Открываем справочник [Настройки -> Печать -> Документы и макеты]. В группе "Пользовательские отчеты" создаем новый документ, например Общий расход блюд.

2. Для данного документа выбираем куб, предварительно созданный в справочнике Настройка - OLAP отчеты - Кубы и отчеты. Данных куб можно загрузить из прикрепленного файла.

Примечание: чтобы загрузить любой объект (в данном случае Куб) в базу необходимо сделать следующее: зайти в пункт Сервис -> XML импорт/экспорт, далее нажать кнопку Load XML file, выбрать XML файл, открыть его и нажать кнопку Add items.

Рис. Создание документа и привязка к нему куба

3. Для данного документа так же необходимо создать новый макет. Шаблон макета можно загрузить из прикрепленного файла (учтите, что в данном макете не настроена группировка по блюдам).

Рис. Создание макета для документа

4. Редактирование макета в менеджерской станции

Для группировки по официантам в данном макете Бенд2 добавлен в тело Бенда1. У Бенда2 размер нижнего колонтитула был выставлен больше 0 и в него помещено мемо-поле для итоговой суммы по официанту. 

Рис. Редактирование макета в дизайнере макетов

Если необходимо группировать блюда, то необходимо настроить группировку для Бенда2

Рис. Настройка группировки блюд

5. Обязательно в используемую схему печати добавить представление документа для макета из.п.3

Рис. Добавление представления документа

6. Пример данного отчета на кассе представлен ниже

Рис. Отчет "Общий расход блюд по официантам"

Рис. Отчет "Общий расход блюд по официантам" (с группировкой по блюдам)

ВложениеРазмер
kubobshchrashblyud.rar2.94 КБ
obshchrashblyud.rar950 байтов

Создание и печать произвольного пользовательского макета

Создание и печать произвольного пользовательского макета

В ряде случаев возникает необходимость напечатать для заказа документ произвольной формы, при этом стандартные варианты печати, такие как: чек, пречек, сервис-печать и др. для этого не подходят. Например, при использовании «резервирования», клиент просит напечатать ему список блюд с ценами и другой информацией о будущем банкете, как поступить в этом случае?

1. Создание печатного макета

В RK 7 существует специальный тип документов, который называется пользовательские макеты (рис. 1):

Рис. 1 (Раздел с пользовательскими макетами).

В данном разделе можно создавать собственные печатные макеты, доступный набор данных в этом разделе приблизительно такой же, как в пречеке, чеке и других подобных документах. Главное отличие: печать этого макета не вызывает дополнительных операций, в отличие от например пречека, который закроет заказ к редактированию или чека, который вовсе попросит оплатить заказ перед тем, как напечататься.

Схема работы в этом разделе точно такая же, как и с любым другим печатным макетом:

1.     Создаем новый документ.

2.     Открываем макет для редактирования.

3.     Размещаем на листе бэнды, в них мемо или вложенные бэнды.

Сохраняем макет и создаем для него печатное представление.

Рис. 2 (Редактор макета)

 

2. Создание кнопки для печати макета из интерфейса кассы

 

После создания макета, а также печатного представления к этому макету. Переходим к реализации функции его распечатки из кассы.

1.     Создаем в «Сервис-Скрипты» в разделе «Операции» новый скрипт, внутрь которого пишем:

 RK7.PerformRefObject(RK7.FindItemByCode(rkrefMaketSchemeDetails, 88)); (где 88 – код печатного представления для созданного макета – рис. 3)

 

Рис. 3

2.     Берем любую не использованную пользовательскую операцию в «Сервис-Операции», переименовываем ее так, как нам удобно в свойстве скрипт, указываем скрипт из п.1 (рис. 4):

 

Рис. 4

 

3.     Создаем новую функциональную клавишу, к которой привязываем операцию из п.2 (рис. 5):

 

Рис. 5

 

4.     Размещаем функциональную клавишу в нужном селекторе (рис. 6):

 

Рис. 6

 

5. Выставляем свой селектор в «использовании селекторов» (рис. 7):

 

Рис. 7

Теперь при нажатии функциональной клавиши на печать будет отправляться наш пользовательский макет.  

 

3. Для чего это можно использовать?

1.     Печать состава заказа (предварительного) гостю;

2.     Печать этикетки для собранного заказа;

3.     Печать документа имитирующего копию чека;

4.     Печать любого справочного документа по заказу.

 

Примечание:  не обязательно использовать обычные печатные макеты, в данном разделе могут быть созданны и графические макеты с использование редактора FastReport

 

Экспорт и импорт элементов справочников

Пошаговая инструкция

Механизм экспорта/импорта элементов справочников через XML файлы является удобным инструментом, позволяющим переносить элементы между базами данных справочников комплекса RKeeper-7. Следует отметить, что на данный момент механизм находится на стадии тестирования, принимаются предложения по его улучшению и доработкам, а так же сообщения об ошибках. В любом случае при любом использовании процедуры импорта необходимо сделать резервную копию базы данных справочников. Далее следует описание процесса по шагам.

Шаг 0.
Сделать резервную копию базы данных справочников. ВНИМАНИЕ! Если Вы пропустили этот пункт - дальнейшее чтение данного документа быссмысленно!

Шаг 1.
Зайти в менеджерскую станцию, подключившись к базе данных, из которой необходимо выгрузить элементы (отчеты). Выделить необходимые отчеты и выбрать в меню "Действия" - "Сохранить Элементы в XML файл..."
 

Шаг 2.

Убедиться в корректности списка элементов для экспорта и нажать на кнопку "Save XML File" (будет переведена и добавлена картинка).
 
Шаг 3.
Ввести имя файла для сохранения набора элементов. На этом операции, производимые с базой, из которой проводится экспорт, завершены.
 
Шаг 4.
Убедиться, что в базе данных, куда следует произвести импорт, необходимые отчеты отсутствуют (или присутствуют, если идет их обновление). Выбрать пункт меню "Сервис" - "XML Импорт/Экспорт".
Шаг 5.
В форме "XML Импорт/Экспорт" нажать кнопку Load XML File (будет переведена и добавлена картинка).

 
Шаг 6.
Выбрать файл, из которого следует произвести импорт элементов.
 
Шаг 7.
Убедиться в корректности списка элементов для импорта и нажать на кнопку "Add items" (будет переведена и добавлена картинка).
 
 
Шаг 8.
Ответить утвердительно на запрос программы (естественно, если Вы сделали резервную копию перед проведением процедуры импорта).
Шаг 9.
Убедиться в корректности списка проимпортированных элементов. В случае неудачи следует откатить базу на резервную копию, созданную в п. 0. 
 

Настройка депозитных заказов

Настройка депозитных заказов

Данную настройку следует делать, когда нужно ввести депозит (предоплату) = 1000 руб, который не возвращается, если сумма заказа меньше 1000 рублей. Если заказ превышает 1000 рублей, то разница доплачивается гостем.

1 способ настройки системы: Предоплата, валюта Депозит 1000 р. (для предоплаты), Наценка (сдачи в чаевые).
 

  «+»  «-»
1 Печать предоплаты. Гость получает фискальный «чек» на операцию предоплаты.  Кассир должен вручную внести предоплату в заказ.
2 Блюда в отчетах и складе «проходят» со своими ценами. При оплате заказа с депозитом кассир должен выбирать дать сдачу или Сдачу в счаевые.Но можно настроить авто сдачу для рублей, тогда кнопки Дать сдачу не будет!
3  Учитывать сдачу в чаевые (да, нет) – настраивается в параметрах.   

1) В справочнике Параметры проверить значение Учет предоплат и Учет чаевых.

2) В справочнике Скидки и Наценки создать нераспределяемую Наценку «сдача на депозит». Примечание: обязательно указать Налоговую группу. Сумма детализации скидки=0.

3) Настройка Валют. В справочнике Классы Ставок завести новую ставку валют «депозит 1000»

4) В справочнике Валюты настроить валюты Депозит 1000р. и Рубли


5) Настроить права работника Кассира (к стандартным правам кассира добавить недостающие)
• Выбор заказа для закрытия
• Добавить предоплату
• Оплаты
• Рассчитать чек
• Сдачу в чаевые
 

Настройка прав пользователей

Привилегии

    По умолчанию часть пунктов меню недоступна пользователю. Доступность тех или иных справочников регулируется набором привилегий для роли. Если требуется разрешить определенные пункты – необходимо зайти в свойства роли (Персонал – Работники), открыть редактор свойства «Привилегии» и проставить (убрать) необходимые привилегии.

Права на свойства

    Часть свойств также недоступна пользователю по умолчанию (см. ниже). Для редактирования этого списка следует использовать форму Установки Инспектора (Сервис – Менеджерская Станция – Установки Инспектора). На вкладке «Права Доступа» выбирается группа прав или отдельное право и для него указывается видимость и возможность редактирования. В меню сверху следует выбрать роль и класс элементов, для которых накладывается запрет или, наоборот, разрешение. По умолчанию форма доступна только дилеру.

Список скрытых по умолчанию свойств

Класс элемента Скрытые свойства
Элемент Меню Группа Интерфейс
Скидка/Наценка Группа Интерфейс
Тип Валют Группа Печать
Валюта Группа Печать (кроме «Печатать в Пречеке»)