|   |   | 
| 
 | Пробитие суммы скидки в чеке (Штрих-М) | ☑ | ||
|---|---|---|---|---|
| 0
    
        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(); Но в итоге после пробития - в чеке ОФД ни слова о скидках. Помогите кто чем может, люди добрые. | |||
| 1
    
        serpentt 03.02.21✎ 09:13 | 
        А фактически скидка на чек применилась?     | |||
| 2
    
        serpentt 03.02.21✎ 09:14 | 
        Если ПРИМЕНИЛАСЬ, то выводите информацию о скидке произвольной строкой в чеке(так делают в АТОЛе)     | |||
| 3
    
        Ivan Bezdomnyi 03.02.21✎ 10:49 | 
        (1) ну я так понимаю что нет, потому что например
 Берем один товар, сумма товара 10, оплата наличными 1, бонусами 9. Пишу FR.Price = 10; FR.DiscountValue = 9; FR.Summ1 = 1; Выдает ошибку "Сумма всех типов оплаты меньше итога чека"... | |||
| 4
    
        Исновая 03.02.21✎ 11:11 | 
        Нету скидки в фр уже давно, сумму скидки высчитываете в программе, пропорционально уменьшаете цену и с помощью сьроки после закрытия чека " СУММА со скидкой бла бла или скидка блабла...     | |||
| 5
    
        Ivan Bezdomnyi 08.02.21✎ 07:58 | 
        (4) Хорошо, но вот пример, первый что пришел в голову
 Товар1 / Количество 3 / Цена 4 / Сумма 12 Товар2 / Количество 3 / Цена 3 / Сумма 9 Итого 21 Оплата: наличными 11, бонусами 10 Как эти бонусы распределить пропорционально, чтобы цена уложилась в копейки? | |||
| 6
    
        hhhh 08.02.21✎ 08:12 | 
        Товар1 / Количество 3 / Цена 2 / Сумма 6
 Товар2 / Количество 2 / Цена 2 / Сумма 4 Товар2 / Количество 1 / Цена 1 / Сумма 1 | |||
| 7
    
        Kigo_Kigo 08.02.21✎ 08:46 | 
        Через коэффициент участия
 СуммаВсего = Итог("Сумма"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Сумма = Сумма - Сумма/СуммаВсего*100 * СуммаСкидкиБаллами/100; КонецЦикла; | |||
| 8
    
        d4rkmesa 08.02.21✎ 09:12 | 
        (0)(5) Посмотрите как в типовой УТ 10. Там цены давно уже с учетом всех скидок указываются, а несоответствия между ценой*количество и суммой выравниваются настройкой форматно-логического контроля.     | |||
| 9
    
        Ivan Bezdomnyi 08.02.21✎ 10:05 | 
        (6) как вариант, но как-то не красиво)
 (7) сразу с первой строки: Сумма = 12 - 12/21 * 100 * 10/100 = 6,285714... и тут хоть округляй хоть нет, в итоге у цены тоже точность будет за пределами копеек и получим "Сумма всех типов оплаты меньше итога чека" (8) хорошо, попробую там поискать | |||
| 10
    
        Ivan Bezdomnyi 08.02.21✎ 10:34 | 
        (8) Можно поподробнее про форматно-логический контроль и про выравнивание несоответствия между ценой*количество и суммой?
 Потому что сейчас проблема именно в этом. | |||
| 11
    
        Kigo_Kigo 08.02.21✎ 11:07 | 
        (10) Просто в полученно наличными всегда суй 1 рубль, все что лишнее будет попадать тупо в сдачу     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |