|   |   | 
| 
 | 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) Это из БСП.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |