Копейки в счетах

Клиент жалуется, что в счетах на оплату цены выводятся с копейками:

Причем, по его словам, раньше сумма тоже была с копейками, но предыдущие программисты поправили и сумма стала выводиться целая, но цена выводится с копейками.

Цены на все товары целые, проблема возникает, только когда клиенту дают скидку, а скидка даётся каждому клиенту. Причина возникновения копеек — в том, что сумма скидки не делится нацело на количество. Должно быть так:

Анализируя код, действительно, нашел правку предыдущих программистов в методе РассчитатьСуммыВСтрокеТЧ модуля ТабличныеЧастиУНФКлиент:

СтрокаТабличнойЧасти.СуммаСкидкиНаценки = Окр(СтрокаТабличнойЧасти.СуммаСкидкиНаценки);

Но увы, этого мало. Нужно чтобы сумма скидки делилась нацело на количество. Для этого после округления предыдущими программистами добавляю приведение к целому, которое делится на количество. Причем скидка будет изменена в меньшую сторону, что правильно для бизнеса:

//Осипов - чтобы цена всегда была целая 2022-11-27 +++
//При этом скидка округляется в меньшую сторону
Если КоличествоСтроки <> 0 Тогда
	СтрокаТабличнойЧасти.СуммаСкидкиНаценки = Цел(СтрокаТабличнойЧасти.СуммаСкидкиНаценки / КоличествоСтроки) * КоличествоСтроки;
КонецЕсли;
//еще добавляем пересчет суммы, иначе не меняется сумма			
СтрокаТабличнойЧасти.Сумма = КоличествоСтроки * СтрокаТабличнойЧасти.Цена - СтрокаТабличнойЧасти.СуммаСкидкиНаценки - ?(ЕстьСкидкаБонусом, СтрокаТабличнойЧасти.СуммаСкидкиОплатыБонусом, 0);
//--

Если скидка за одну штуку составляет 1 рубль, то округление может произойти до нуля. Но обычно все же там скидки более высокие за штуку товара.

Среда: УНФ 1.6.26.172. Платформа: 8.3.19.1150. Объем 1 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *