Добрый день.
Имеется проблема, конфигурация УТ 11.1, но это к теме имеет косвенное отношение. Необходимо распределять скидку на товар для каждой позиции. Приведу пример.
Продаем Товар, 200 шт., цена Товара 0,31 р. в сумме 62 р. На всю сумму делаем скидку 31 р. Теперь нам надо определить цену Товара после применения скидки. 31/200 = 0,155. Округлить до 0,15 или 0,16 мы не можем, тогда итоговая сумма не будет равна 31 р. Мы должны разделить на несколько позиций, например
1. Товар цена: 0,15, количество 150, сумма 22,5 р.
2. Товар цена: 0,17, количество 50, сумма 8,5 р.
Итого: 31 р.
Проблема усложняется и тем, что количество товара может быть не целым, например 0,003.
Менять сумму скидки при невозможности разделения суммы со скидкой на количество товара без остатка не выйдет. Скидка может быть бонусами, покупатель будет против неполного списания их со счета.
В какую сторону копать для построения алгоритма?
Имеется проблема, конфигурация УТ 11.1, но это к теме имеет косвенное отношение. Необходимо распределять скидку на товар для каждой позиции. Приведу пример.
Продаем Товар, 200 шт., цена Товара 0,31 р. в сумме 62 р. На всю сумму делаем скидку 31 р. Теперь нам надо определить цену Товара после применения скидки. 31/200 = 0,155. Округлить до 0,15 или 0,16 мы не можем, тогда итоговая сумма не будет равна 31 р. Мы должны разделить на несколько позиций, например
1. Товар цена: 0,15, количество 150, сумма 22,5 р.
2. Товар цена: 0,17, количество 50, сумма 8,5 р.
Итого: 31 р.
Проблема усложняется и тем, что количество товара может быть не целым, например 0,003.
Менять сумму скидки при невозможности разделения суммы со скидкой на количество товара без остатка не выйдет. Скидка может быть бонусами, покупатель будет против неполного списания их со счета.
В какую сторону копать для построения алгоритма?
По теме из базы знаний
Найденные решения
(9) Если вопрос заключается в том, как распределить сумму после применения скидки пропорционально количеству, при этом учесть разрядность результата, то используйте функцию "ОбщегоНазначения.РаспределитьСуммуПропорциональноКоэффициентам" (в зависимости от версии конфигурации функция может располагаться и в модуле "ОбщегоНазначенияКлиентСервер").
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
хорошо,зайдем с другого края, у покупателя есть бонусов на 500 руб.
он оплачивает покупку на сумму 400 руб бонусами. по вашей логике цена товара уйдет в 0. как вы через бухгалтерию будете проводить продажу за 0 руб.? Налоговые органы не поймут!
он оплачивает покупку на сумму 400 руб бонусами. по вашей логике цена товара уйдет в 0. как вы через бухгалтерию будете проводить продажу за 0 руб.? Налоговые органы не поймут!
(4) вы зачем-то прицепились к скидке бонусом, проблема может быть и при обычной скидке. Под полным списанием со счета я не подразумевал возможность списания баллов больше или равным сумме документа. Вопрос о реализации в розницу товаров в подарок к теме вообще никакого отношения не имеет.
(7) Извините, тогда я не понял Ваше первоначальных вопрос. Я подумал, что результат по описанному алгоритму Вам необходимо получить непосредственно в ТЧ "Товары" типовыми средствами.
А раз Вы заполняете некую собственную таблицу, при этом привели алгоритм расчета сумм, то в чем же тогда вопрос?
А раз Вы заполняете некую собственную таблицу, при этом привели алгоритм расчета сумм, то в чем же тогда вопрос?
(8) Я не привел алгоритма. Вопрос в том, какой метод использовать для разработки алгоритма? Я понимаю, что это частный случай равномерного распределения, но не уверен что не существует типовых методов для данной предметной области, не хотелось бы изобретать велосипед.
(9) Если вопрос заключается в том, как распределить сумму после применения скидки пропорционально количеству, при этом учесть разрядность результата, то используйте функцию "ОбщегоНазначения.РаспределитьСуммуПропорциональноКоэффициентам" (в зависимости от версии конфигурации функция может располагаться и в модуле "ОбщегоНазначенияКлиентСервер").
(10) Не подходит, функция кидает не распределенный остаток на максимальный элемент массива. Кинув предложенный в теме пример, получил 0.16 для всего массива и -0.84 для нулевого элемента, т.е. помимо неравномерного распределения, еще и цена может выйти отрицательной.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот