display show фронтол 6 скрипт
Display show фронтол 6 скрипт
С 1 июля 2017 прекращена поддержка программного продукта Frontol 4
С 9 ноября 2019 прекращена поддержка программного продукта Frontol 5
пруф
С 3 августа 2017 восстановление лицензий производится ТОЛЬКО через СервисДеск
Просьба обращаться к партнерам компании для оформления заявок в СД
ГК «АТОЛ»
Группа: Главные администраторы
Сообщений: 4 002
Регистрация: 15.12.2004
Из: Москва
Пользователь №: 3
Пример №1. Использование параметра E (идентификатор события) и получение значений счетчиков в сценарии
// Пример использования идентификатора события в сценарии
function EventToText(E)
<
switch (E) <
case 1: return «Открытие чека»;
case 2: return «Добавление позиции»;
case 3: return «Редактирование позиции»;
case 4: return «Закрытие чека»;
case 5: return «Отмена чека»;
case 6: return «Ввод оплаты»;
case 7: return «Сторно оплаты»;
case 8: return «Ввод карты»;
case 9: return «Отмена карты»;
case 10: return «Ввод клиента»;
case 11: return «Отмена клиента»;
case 12: return «Ввод ручной скидки»;
>
>
// Пример обращения к значениям счетчиков в сценарии
function CountersToText(RO)
<
Text = «Всего счетчиков » + RO.Counter.Count + «\n»;
Text += «Ин.» +
«\tКод» +
«\tВида»+
«\tЗначение» +
«\t\»Наименование Вида\»\n»;
for (RO.Counter.Index = 1; RO.Counter.Index POUL
Магистр слова
Группа: Партнеры
Сообщений: 14 606
Регистрация: 17.2.2007
Из: Москва
Пользователь №: 10 778
Магистр слова
Группа: Партнеры
Сообщений: 14 606
Регистрация: 17.2.2007
Из: Москва
Пользователь №: 10 778
При введении бонусной карты скрипт подсчитывает максимальную скидку чека по минимальным ценам всех позиций и выводит сообщения со значением максимальной скидки на чек и количеством бонусов на карте.
function BeforeAct(AO, RO, E)
<
if (RO.BuyCount>0)
var MaxSkidka = 0;
for (RO.Pos.Index = 1;
RO.Pos.Index POUL
Магистр слова
Группа: Партнеры
Сообщений: 14 606
Регистрация: 17.2.2007
Из: Москва
Пользователь №: 10 778
Магистр слова
Группа: Партнеры
Сообщений: 14 606
Регистрация: 17.2.2007
Из: Москва
Пользователь №: 10 778
скрипт проверки наличия введенной карты
function AfterAct(AO, RO, E)
<
Магистр слова
Группа: Партнеры
Сообщений: 14 606
Регистрация: 17.2.2007
Из: Москва
Пользователь №: 10 778
if (RO.Card.Count >=2) //Проверяем количество введенных в чек карт
AO.ShowError («Ввод карты запрещен»);
if (RO.Card.Count == 1) //Если количество введенных карт в чеке = 1
<
enter2ndkard = true; //Разрешаем ввод 2-й карты
Karta = O.Value.slice (7, O.Value.length); //Отбрасываем первые 7 знаков вводимой карты
for (RO.Card.Index = 1; //Перебираем введенные карты
RO.Card.Index FireBird Service Manager
Пишу скрипты за еду.
ООО «B2C»
Если долго вглядываться в докуметацию, она начнет давать ответы на вопросы
Разговорчивый
Группа: Партнеры
Сообщений: 1 214
Регистрация: 13.3.2006
Из: г.Тобольск ООО «Атрикс»
Пользователь №: 3 705
ГК «АТОЛ»
Группа: Специалисты
Сообщений: 457
Регистрация: 4.12.2006
Пользователь №: 9 746
Группа: Пользователи
Сообщений: 46
Регистрация: 4.8.2009
Пользователь №: 17 100
function BeforeAct(AO, RO, E, O)
<
for (RO.Counter.Index = 1;
RO.Counter.Index 0)
AO.ShowError(«Карта уже введена. «);
for (RO.Counter.Index =1; //Проверяем наличие средств для оплаты по карте.
RO.Counter.Index awerta
Группа: Новички
Сообщений: 12
Регистрация: 20.11.2009
Пользователь №: 19 033
Может кому понадобиться!
Скидка на позицию, равная 20% от суммы чека или равная 100 руб., если 20 % от чека больше чем 100 руб.
С условием, что в чеке присутствует товар с минимальной ценой равной розничной, и стоимость этого товара исключается из общей суммы чека.
Плюс присутствует проверка на то, что такая скидка уже была сделана.
function qwert(AO, RO, POS)
<
Summa = 0;
for (RO.Pos.Index = 1;
RO.Pos.Index 100)
<
Summa = 100;
>
return Summa;
Тех.поддержка
Группа: Администраторы
Сообщений: 54 439
Регистрация: 25.9.2008
Из: Москва
Пользователь №: 14 717
Магистр слова
Группа: Партнеры
Сообщений: 14 606
Регистрация: 17.2.2007
Из: Москва
Пользователь №: 10 778
Вот этот момент совсем не понял:
if (RO.Pos.WareMinPrice == RO.Pos.Price)
<
Группа: Пользователи
Сообщений: 3
Регистрация: 7.9.2011
Из: г.Артём, Приморский край
Пользователь №: 38 746
Здравствуйте, товарищи. На нашем предприятии возникла необходимость в такой скидке: скидка действует на определенное количество товара, например от 1 до 4 штук. Т.е если покупатель приобретает от 1-ой до 4-х штук товара, то возникает скидка. Однако, если покупатель берет 5 штук и более, скидка на первые 4 позиции не должна быть отменена. Т.е. скидка должна остаться для 4-х штук товара, но на пятую штуку и далее уже не распространяться.
Формулами и другими способами сделать не получается, поэтому предлагаю такую схему:
1. Создается Сценарий, который в зависимости от некоторого параметра будет выдавать разную скидку.
2. Создается Ставка скидки, где в качестве ставки указывается ссылка на сценарий. Ставка идет на позицию, автоматическая.
3. Создается Условие в одноименной справочнике, где прописывается Ставка и Сценарий, а самих условий нет.
4. Создается Классификатор, который косвенно будет задавать параметры скидки.
5. К классификатору привязываются товары.
Имя классификатора содержит параметры скидки и строится по следующему шаблону: НачКол_КонКол_ПроцентСкидки.
Например, классификатор с именем 1_4_10, означает, что скидка действует на товар с количеством от 1 до 4 и составляет 10% на товар.
Хочется еще сказать, что классификаторы загружаются из 1С. Я создал там справочник схемы скидок, каждый элемент которого соответствует классификатору. При этом во Фронтоле неизменными остаются элементы справочников Ставки, Условия, Сценарии, а классификаторы и Объекты скидок, каждый раз (при загрузке товаров) удаляются и создаются снова.
код файла goods.spr привожу ниже сценария.
function BeforeAct(AO, RO, E, O)
<
>
function AfterAct(AO, RO, E, O)
<
>
function FuncAct(AO, RO)
<
>
function DiscountVariable(AO, RO, POS)
<
numBegin = 0;
numEnd = 0;
discount = 0;
param = «»;
paramInt = 0;
CurrentClassifier = 0;
numFind = 0;
for (POS.Classifier.Index = 1;
POS.Classifier.Index POUL
Магистр слова
Группа: Партнеры
Сообщений: 14 606
Регистрация: 17.2.2007
Из: Москва
Пользователь №: 10 778
Для начинающих ссылка на адекватный справочник по JS:
Начинающий
Группа: Пользователи
Сообщений: 84
Регистрация: 17.9.2006
Пользователь №: 8 850
Мой первый скрипт. Надеюсь, кому-то пригодится. Плюс будет интересно услышать комментарии от гуру.
Схема работы следующая.
1. Выпускаются карты сертификатов с какой-то нумерацией, идущей подряд.
2. Сертификатам присваивается какой-то номинал (в примере скрипта два номинала – 5000 руб. и 6000 руб.).
3. Карты продаются/выдаются клиентам без регистрации через фронтол. В моем случае просто стопку карт продали организации по безналу, а она раздала своим сотрудникам.
4. Клиенты приходят отоваривать сертификаты. Они могут набрать товара на любую сумму: меньше номинала сертификата, больше или равно. Клиенты могут одновременно отоварить два и более сертификата разных номиналов.
5. При покупке на сумму меньше номинала сертификата чек будет закрыт на сумму покупки с видом оплаты «Сертификат». При покупке на сумму, равную сертификату, чек будет закрыт по номиналу сертификата. При покупке на сумму больше номинала сертификата, будет зарегистрирована оплата на сумму сертификата, а остальное надо будет доплатить наличными или по безналу.
6. Сертификат у покупателя изымается.
7. Нигде не контролируется, что сертификат уже был отоварен. Поэтому изымать сертификат надо обязательно.
1. Создаем сценарий с моментом действия «Ввод платежа».
function inArray(data, array) <
for (var i = 0; i = certificateSumm) <
RO.AddPayment(2, certificateSumm);
> else <
RO.AddPayment(2, RO.SummWD)
>
AO.Cancel()
>
>
function AfterAct(AO, RO, E, O)
<
>
function FuncAct(AO, RO)
<
>
function NoAction(AO, RO, POS)
<
>