Распределение суммы по суммам со скидкой. УНФ 1.6
Клиент обратился с проблемой, что при попытке распределить сумму на позиции в заказе покупателя сумма не увеличивается, а уменьшается.
Пример: 8 штук по 5.000 тысяч, скидка 30%. Сумма без скидки 40.000, сумма со скидкой 28.000:
При распределении 10.000 рублей должна получиться сумма 38.000.
Нажимаем Еще — Изменить, вводим сумму, нажимаем Выполнить:
Получаем сумму 26.600 и цену 4750:
Если поправить так, чтобы сумма отсчитывалась не от суммы со скидкой, а от суммы всего, то получается такой расчет:
Потому что сумма получается 50.000 (40.000 + 10.000) — 30% = 35.000.
Но на самом деле, то, что хочет клиент не реально получить без расчетов. Потому что скидки могут быть разными в разных строках. Скидки убирать нельзя, потому что в каждой строке они свои, согласованные с клиентами. Поэтому я посоветовал подбирать сумму для распределения, пока не получится нужная.
Доработка в модуль ГрупповоеИзменениеСтрокСервер выглядит так:
&Перед("ОбработатьТаблицу") Процедура ТР_ОбработатьТаблицу(ЭтаФорма, Таблица, Действие, ОбъектДействия, Значение, ИмяЭлементаНоменклатура, ПараметрыОтбора) //Корректируем распределение сумм Если Значение <> Неопределено И Действие = ПредопределенноеЗначение("Перечисление.ДействияГрупповогоИзмененияСтрок.РаспределитьСуммуПоСуммам") Тогда Для каждого Строка Из Таблица Цикл Если НЕ Строка.Пометка Тогда Продолжить; КонецЕсли; Попытка СуммаСкидкиНаценки = Строка.СуммаСкидкиНаценки; СуммаВсего = Строка.Всего Исключение СуммаСкидкиНаценки = Неопределено; КонецПопытки; //Если есть колонка заказ покупателя Если СуммаСкидкиНаценки = Неопределено Тогда Продолжить; КонецЕсли; Строка.Сумма = СуммаВсего + СуммаСкидкиНаценки; //Чтобы распределялось относительно ВСЕГО КонецЦикла; КонецЕсли; КонецПроцедуры
Среда: УНФ 1.6.26.172. Объем: 1 час.
Свежие комментарии