Задача: Создать скрипт, добвляющий блюдо в заказ в момент перехода в режим расчета. процесс должен выглядеть так: в режиме быстрого чека при нажатии на кнопку «Расчет заказа» система проверят сумму заказа. Если сумма заказа больше или равно определенной сумме, то система показывает сообщение с кнопками «Да» и «Нет».
При нажатии на «Да», система добавляет блюдо с кодом NNN в заказ и переходит в режим расчета.
При нажатии на «Нет» система сразу переходит в режим расчета

Решение от UCS: В быстрый чек добавить пользовательский селектор «Оплата» вместо стандартного. К этому селектору привязать пользовательскую операцию со скриптом ниже:
procedure ProcessOperation1001304(Parameter: integer);


begin


if not RKCheck.Valid then


exit //important checking


else


begin


if RKCheck.CurrentOrder.UnpaidSum >= 300 then // Order sum checking


if GUI.RKMessageDlg('Do You want add bonus dish?', 0, 3, 10000) = 6 then


RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(39), '1'); // add dish with code 39


end;


RK7.PostOperation(rkoBalanceReceipt, 0);


end;
В данном скрипте заменить сумму «300» на требуемую, а также сменить код добавляемого блюда «39» на актуальное значение.


Другое решение №2:
1. Сервис -> Скрипты -> Перед расчётом заказа -> Создать вышеуказанный скрипт.
2. Настройки -> Графический интерфейс -> Схемы Форм -> Копирую текущую схему "Новый Дизайн" как "01_Новый Дизайн"
3. Настройки -> Графический интерфейс -> Использование Схемы Форм -> устанавливаю "01_Новый Дизайн" как основную.
4. Настройки -> Графический интерфейс -> Схемы Форм -> "01_Новый Дизайн" -> вкладка "Ссылки на скрипты" выбираю вышеуказанный скрипт из Скрипты -> Перед расчётом заказа

ВОПРОС: Скрипт отрабатывает, однако при попытке добавить блюдо выдает ошибку: "Блюдо не может быть добавлено, т.к. распечатан пречек."

Если у кого есть идеи как эту ошибку побороть, буду очень признателен.