Копейки в счетах
Клиент жалуется, что в счетах на оплату цены выводятся с копейками:
Причем, по его словам, раньше сумма тоже была с копейками, но предыдущие программисты поправили и сумма стала выводиться целая, но цена выводится с копейками.
Цены на все товары целые, проблема возникает, только когда клиенту дают скидку, а скидка даётся каждому клиенту. Причина возникновения копеек — в том, что сумма скидки не делится нацело на количество. Должно быть так:
Анализируя код, действительно, нашел правку предыдущих программистов в методе РассчитатьСуммыВСтрокеТЧ модуля ТабличныеЧастиУНФКлиент:
СтрокаТабличнойЧасти.СуммаСкидкиНаценки = Окр(СтрокаТабличнойЧасти.СуммаСкидкиНаценки);
Но увы, этого мало. Нужно чтобы сумма скидки делилась нацело на количество. Для этого после округления предыдущими программистами добавляю приведение к целому, которое делится на количество. Причем скидка будет изменена в меньшую сторону, что правильно для бизнеса:
//Осипов - чтобы цена всегда была целая 2022-11-27 +++ //При этом скидка округляется в меньшую сторону Если КоличествоСтроки <> 0 Тогда СтрокаТабличнойЧасти.СуммаСкидкиНаценки = Цел(СтрокаТабличнойЧасти.СуммаСкидкиНаценки / КоличествоСтроки) * КоличествоСтроки; КонецЕсли; //еще добавляем пересчет суммы, иначе не меняется сумма СтрокаТабличнойЧасти.Сумма = КоличествоСтроки * СтрокаТабличнойЧасти.Цена - СтрокаТабличнойЧасти.СуммаСкидкиНаценки - ?(ЕстьСкидкаБонусом, СтрокаТабличнойЧасти.СуммаСкидкиОплатыБонусом, 0); //--
Если скидка за одну штуку составляет 1 рубль, то округление может произойти до нуля. Но обычно все же там скидки более высокие за штуку товара.
Среда: УНФ 1.6.26.172. Платформа: 8.3.19.1150. Объем 1 час.
Свежие комментарии