|
1с 8.2 Как решить задачу | ☑ | ||
---|---|---|---|---|
0
skupidom5
25.11.15
✎
11:47
|
Коллеги, требуется составить пропорцию:
есть заказ покупателя сумма заказа = 100 руб. В заказе заполнена табличная часть: Товары 1 строка - Номенклатура №1 кол-во 2 цена 10 сумма 20; 2 строка - Номенклатура №2 кол-во 3 цена 5 сумма 15; 3 строка - Номенклатура №3 кол-во 1 цена 65 сумма 65 есть оплата по заказу: "Платежное поручение входящее" с видом операции "Оплата от покупателя" сумма оплаты (единая, без разбивки) = 75 руб. Внимание вопрос: как пропорционально распределить сумму платежа между позициями заказа, получить размер платежа по каждой строке заказа |
|||
1
aleks_default
25.11.15
✎
11:48
|
(0)у тебя хотя бы самое среднее образование есть?
|
|||
2
Горогуля
25.11.15
✎
11:49
|
(0) никак
|
|||
3
MrKartez
25.11.15
✎
11:51
|
Пропорцию по количеству или сумме
|
|||
4
rbcvg
25.11.15
✎
11:52
|
Ну умножь каждую строку на 75 и раздели на 100.
15 11,25 48,75 |
|||
5
2mugik
25.11.15
✎
11:53
|
троль что ли?
|
|||
6
Рэйв
25.11.15
✎
11:53
|
(0)
строка 1 :75/100*20 строка 2: 75/100*15 строка 3: 75/100*65 И чему вас только в третьем классе учили... |
|||
7
singlych
25.11.15
✎
11:54
|
у меня даже жена пропорции составляет на раз
|
|||
8
Garykom
гуру
25.11.15
✎
11:54
|
(6) а копейки как делить будем?
|
|||
9
rsv
25.11.15
✎
11:56
|
(8) Величина веса не округляется . А результат умножения веса цифры на 75 можно округлить.
|
|||
10
Господин ПЖ
25.11.15
✎
11:57
|
в любой типовой есть функция РаспределитьСумму по массиву коэффициентов
|
|||
11
aleks_default
25.11.15
✎
11:57
|
(0) Срочно профессию сменить. Попробуй что-нибудь руками поделать, головой не получается.
|
|||
12
Garykom
гуру
25.11.15
✎
11:59
|
(9) ага а потом при сложении 3-х сумм почему то <> сумме полной оплаты?
|
|||
13
Господин ПЖ
25.11.15
✎
11:59
|
(8) смотря до какой точности идет подсчет... дельту распределения (т.е. отклонение исходного числа от суммы распределнных) сбрасывают на наибольший исходный "коэффициент" чтобы минимизировать отклонение
|
|||
14
Господин ПЖ
25.11.15
✎
12:00
|
(12) все учтено могучим ураганом (с) золотой теленок
|
|||
15
Garykom
гуру
25.11.15
✎
12:01
|
(13) (14) ну давай распредели оплату в 1 копейку...
|
|||
16
rsv
25.11.15
✎
12:02
|
(12) У коэффициента веса хвост после запятой в N. Этого должно хватить.
|
|||
17
Garykom
гуру
25.11.15
✎
12:02
|
(16) см (15)
|
|||
18
Господин ПЖ
25.11.15
✎
12:03
|
(15) легко. уйдет в строку 3 т.к. она максимальная
|
|||
19
rsv
25.11.15
✎
12:03
|
(17) Для копеек (два знака после запятой) потянет.
|
|||
20
Господин ПЖ
25.11.15
✎
12:04
|
не ищите золото в кармане с дыркой
все уже решено, учите мат. часть - кишки конфигурации |
|||
21
mTema32
25.11.15
✎
12:07
|
Автор, копируй:
Функция РаспределитьСуммуПропорциональноКоэффициентам(Знач РаспределяемаяСумма, Коэффициенты, Знач Точность = 2) Экспорт Если Коэффициенты.Количество() = 0 Или Не ЗначениеЗаполнено(РаспределяемаяСумма) Тогда Возврат Неопределено; КонецЕсли; ИндексМаксимальногоКоэффициента = 0; МаксимальныйКоэффициент = 0; РаспределеннаяСумма = 0; СуммаКоэффициентов = 0; Для Индекс = 0 По Коэффициенты.Количество() - 1 Цикл Коэффициент = Коэффициенты[Индекс]; АбсолютноеЗначениеКоэффициента = ?(Коэффициент > 0, Коэффициент, -Коэффициент); Если МаксимальныйКоэффициент < АбсолютноеЗначениеКоэффициента Тогда МаксимальныйКоэффициент = АбсолютноеЗначениеКоэффициента; ИндексМаксимальногоКоэффициента = Индекс; КонецЕсли; СуммаКоэффициентов = СуммаКоэффициентов + Коэффициент; КонецЦикла; Если СуммаКоэффициентов = 0 Тогда Возврат Неопределено; КонецЕсли; Результат = Новый Массив(Коэффициенты.Количество()); Для Индекс = 0 По Коэффициенты.Количество() - 1 Цикл Результат[Индекс] = Окр(РаспределяемаяСумма * Коэффициенты[Индекс] / СуммаКоэффициентов, Точность, 1); РаспределеннаяСумма = РаспределеннаяСумма + Результат[Индекс]; КонецЦикла; // Погрешности округления отнесем на коэффициент с максимальным весом. Если Не РаспределеннаяСумма = РаспределяемаяСумма Тогда Результат[ИндексМаксимальногоКоэффициента] = Результат[ИндексМаксимальногоКоэффициента] + РаспределяемаяСумма - РаспределеннаяСумма; КонецЕсли; Возврат Результат; КонецФункции |
|||
22
Garykom
гуру
25.11.15
✎
12:08
|
(20) проблема что в кишках из-за заворотов в головах тоже завороты
задача (0) изначально чисто теоретическая и не имеет никакого отношения к реальности на практике оплату считают отдельно по каждой единице товара (потому что невозможно вернуть 0,5 штуки к примеру) т.е. правильно будет не в % считать а по очереди закрывать оплаченной суммой позиции |
|||
23
Рэйв
25.11.15
✎
12:10
|
(8)Ой, да элементарно. Отнимим от ста общую сумму распределенного и хвост положим в последнюю строку.Стандарт.
|
|||
24
rsv
25.11.15
✎
12:58
|
(21) Мутно . В (0) один запрос без цикла .
|
|||
25
skupidom5
25.11.15
✎
14:31
|
Получается фигня, вот конкретный пример:
в заказе сумма по строчкам: 1 - 349,2 2 - 426,8 3 - 417,1 эти цены в EURO курс = 76,70 всего прошло 6 платежек, все они в руб. 1 - 2 950 000; 2 - 2 500 000; 3 - 1 050 000; 4 - 1 500 000; 5 - 1 000 000; 6 - 7 500 000 т.е. если следовать примеру выше: 7500000 / 100 * ((349,2 + 426,8 + 417,1)*76,70)... получается = 6 862 869 285,75 ... |
|||
26
Мэс33
25.11.15
✎
14:40
|
1) 349,2 + 426,8 + 417,1 = 1 193,1
2) 7 500 000 / 1 193,1 = 6 286,15 3) 349,2 * 6286,15 = 2 195 123,58 426,8 * 6286,15 = 2 682 928,82 7 500 000 - (2 195 123,58 + 2 682 928,82) = 2 621 947,6 |
|||
27
skupidom5
25.11.15
✎
14:53
|
1 193,1 в евро
|
|||
28
skupidom5
25.11.15
✎
14:53
|
7 500 000 - это рубли
|
|||
29
aleks_default
25.11.15
✎
14:57
|
может бан?
|
|||
30
Мэс33
25.11.15
✎
14:59
|
(28) тьфуить.
Ну неважно. Переводишь в рубли и аналогично. Остаток в копейках - на последнюю строчку. |
|||
31
Мэс33
25.11.15
✎
15:00
|
(28) Хотя какая разница? Рубли-евро? Тебе по условию надо было правильно распределить 7 500 000? Верно? Используя какой-нибудь базис для распределения. Тебе уже подсказали - как это делается.
|
|||
32
skupidom5
25.11.15
✎
15:08
|
спасибо
|
|||
33
shuhard
25.11.15
✎
15:15
|
(1) у него среднепи..здобольное
|
|||
34
mTema32
25.11.15
✎
15:39
|
(24) Это из БСП.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |