Каталог решений - УТ 11.1 Простые примеры: Округлять автоматическую скидку до целого рубля по итогу

УТ 11.1 Простые примеры: Округлять автоматическую скидку до целого рубля по итогу

УТ 11.1 Простые примеры: Округлять автоматическую скидку до целого рубля по итогу

В наличии

Или сдача без копеек

Категория:

Описание

Пролог (в блоге)

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

Решение:

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

Для этого в модуле формы документа Реализация товаров и услуг, находим процедуру РассчитатьСкидкиНаценкиНаСервере и вставляем кусок кода после расчёта скидок, но перед обновлением итоговых сумм, например, перед строкой

Объект.СкидкиРассчитаны = Истина;

 

Текст, на рисунке он не помещается, можно скопировать отсюда:

текИтог = Объект.Товары.Итог("СуммаСНДС");
Простить = текИтог % 1;
Если Простить > 0 Тогда
	текСумма = 0;
	максСтрока = -1;
	Для Каждого Элемента из Объект.Товары Цикл
		Если Элемента.СуммаСНДС > текСумма Тогда
			текСумма = Элемента.СуммаСНДС;
			максСтрока = Элемента.НомерСтроки - 1;
		КонецЕсли;
	КонецЦикла;
	Если максСтрока  -1 Тогда
		Объект.Товары[максСтрока].СуммаСНДС = Объект.Товары[максСтрока].СуммаСНДС - Простить;
		Объект.Товары[максСтрока].СуммаАвтоматическойСкидки = 
			Объект.Товары[максСтрока].СуммаАвтоматическойСкидки + Простить;
		Объект.Товары[максСтрока].ПроцентАвтоматическойСкидки = 
			Окр(Объект.Товары[максСтрока].СуммаАвтоматическойСкидки / 
			(Объект.Товары[максСтрока].Количество * Объект.Товары[максСтрока].Цена) * 100, 2);
		СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(Объект);
		ТекПроцентНДС = ЦенообразованиеКлиентСервер.ПолучитьСтавкуНДСЧислом(Объект.Товары[максСтрока].СтавкаНДС);
		Объект.Товары[максСтрока].СуммаНДС = ЦенообразованиеКлиентСервер.РассчитатьСуммуНДС(Объект.Товары[максСтрока].Сумма, 
			ТекПроцентНДС, СтруктураПересчетаСуммы.ЦенаВключаетНДС);
		Объект.Товары[максСтрока].Сумма = Объект.Товары[максСтрока].СуммаСНДС - 
			?(СтруктураПересчетаСуммы.ЦенаВключаетНДС, 0, Объект.Товары[максСтрока].СуммаНДС);
	КонецЕсли;                                                                             
КонецЕсли;

Теперь при записи или по команде пользователя «Рассчитать скидки» будет выполняться корректировка копеек.

has been added to your cart:
Оформление заказа