Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Пробитие суммы скидки в чеке (Штрих-М)

Пробитие суммы скидки в чеке (Штрих-М)
Я
   Ivan Bezdomnyi
 
03.02.21 - 07:04
1С 8.2 Конфигурация самописная
В программе есть бонусная система, т.е. клиент может часть чека оплачивать бонусами. Это надо как-то пробивать. Возникла идея пробивать эти бонусы как скидку.
Полдня вчера гуглил, внятного ответа на свой вопрос так и не нашел.
В общем виде пробитие выглядит так:

Для Каждого Стр Из Товары Цикл
    FR.PaymentItemSign = 1; //Товар
    FR.PaymentTypeSign = 4; //Полный расчет
    FR.Quantity = Стр.Количество;
    FR.Price = Стр.Цена;
    FR.Department = 1; //Секция
    FR.StringForPrinting = Стр.Номенклатура.Наименование;
    FR.CheckType = 0;
    FR.FNOperation();
КонецЦикла;
FR.Summ1 = СуммаНал;
FR.Summ4 = СуммаБезнал;
FR.FNCloseCheckEx();

Пробовал использовать Discount()
FR.Summ1 = СуммаСкидкаБонусы;
FR.Tax1 = 0;
FR.Tax2 = 0;
FR.Tax3 = 0;
FR.Tax4 = 0;
FR.Discount();

Пробовал FNDiscountOperation() вместо FR.FNOperation() (распределив бонусы пропорционально).
FR.DiscountValue = СкидкаСтр;
FR.FNDiscountOperation();

Но в итоге после пробития - в чеке ОФД ни слова о скидках.
Помогите кто чем может, люди добрые.
   serpentt
 
1 - 03.02.21 - 09:13
А фактически скидка на чек применилась?
   serpentt
 
2 - 03.02.21 - 09:14
Если ПРИМЕНИЛАСЬ, то выводите информацию о скидке произвольной строкой в чеке(так делают в АТОЛе)
   Ivan Bezdomnyi
 
3 - 03.02.21 - 10:49
(1) ну я так понимаю что нет, потому что например
Берем один товар, сумма товара 10, оплата наличными 1, бонусами 9.
Пишу
FR.Price = 10;
FR.DiscountValue = 9;
FR.Summ1 = 1;

Выдает ошибку "Сумма всех типов оплаты меньше итога чека"...
   Исновая
 
4 - 03.02.21 - 11:11
Нету скидки в фр уже давно, сумму скидки высчитываете в программе, пропорционально уменьшаете цену и с помощью сьроки после закрытия чека " СУММА со скидкой бла бла или скидка блабла...
   Ivan Bezdomnyi
 
5 - 08.02.21 - 07:58
(4) Хорошо, но вот пример, первый что пришел в голову

Товар1 / Количество 3 / Цена 4 / Сумма 12
Товар2 / Количество 3 / Цена 3 / Сумма 9
Итого 21
Оплата: наличными 11, бонусами 10

Как эти бонусы распределить пропорционально, чтобы цена уложилась в копейки?
   hhhh
 
6 - 08.02.21 - 08:12
Товар1 / Количество 3 / Цена 2 / Сумма 6
Товар2 / Количество 2 / Цена 2 / Сумма 4
Товар2 / Количество 1 / Цена 1 / Сумма 1
   Kigo_Kigo
 
7 - 08.02.21 - 08:46
Через коэффициент участия
  СуммаВсего = Итог("Сумма");
            ВыбратьСтроки();
            Пока ПолучитьСтроку() = 1  Цикл
                Сумма = Сумма - Сумма/СуммаВсего*100 * СуммаСкидкиБаллами/100;
            КонецЦикла;
   d4rkmesa
 
8 - 08.02.21 - 09:12
(0)(5) Посмотрите как в типовой УТ 10. Там цены давно уже с учетом всех скидок указываются, а несоответствия между ценой*количество и суммой выравниваются настройкой форматно-логического контроля.
   Ivan Bezdomnyi
 
9 - 08.02.21 - 10:05
(6) как вариант, но как-то не красиво)

(7) сразу с первой строки: Сумма = 12 - 12/21 * 100 * 10/100 = 6,285714... и тут хоть округляй хоть нет, в итоге у цены тоже точность будет за пределами копеек и получим "Сумма всех типов оплаты меньше итога чека"

(8) хорошо, попробую там поискать
   Ivan Bezdomnyi
 
10 - 08.02.21 - 10:34
(8) Можно поподробнее про форматно-логический контроль и про выравнивание несоответствия между ценой*количество и суммой?
Потому что сейчас проблема именно в этом.
   Kigo_Kigo
 
11 - 08.02.21 - 11:07
(10) Просто в полученно наличными всегда суй 1 рубль, все что лишнее будет попадать тупо в сдачу

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.