Вход | Регистрация
    1  2
1С:Предприятие :: 1С:Предприятие 8 общая

Помогите с алгоритмом распределения

Помогите с алгоритмом распределения
Я
   Документовед
 
10.12.20 - 16:05
Допустим есть две таблиц ТЗ в одной есть суммовая колонка в виде базы, в другой суммировавшая колонка для распределния и сколько было распределено по этой строчке.

Есть третья тз куда в суммовую колонку пишется результат распределния.

Все суммы точностью до 2х знаков.

Допустим мы распределяем, округляем. Однако естественно в результате в таблицу попадает не вся сумма. Для упрощения Округляем всегда вниз:
ПредвСуммаРаспред = стрТЗКсраспред.Сумма * стрТЗ.СуммаБаза/тзБаза.Итог("СуммаБаза");
СуммаРаспред = Цел( ПредвСумма   * 100)/100

В результате набегают копейки отклонений.

Вопрос как распределить эти копейки?

Кинуть на строчку с самой большой базой - слишком много приходится.

Если перебирать все строки базы и по очереди раскидывать копейки, то на строки с маленькой базой могут придется слишком много.
   RetardedToBoot
 
101 - 15.12.20 - 12:51
сейчас задумался, и да, действительно в (17) почти то же самое. Это ты своей не устойчивой терминалогией и копейками запутал, у меня их не было. Можно вообще все в функцию запихнуть, и не нужно будет доп.выравнивания. То же кратко получится, типа такого:

Функция Распределить(сумма, база_здесь, база_вся, точность, погрешность) Экспорт
   fisher
 
102 - 15.12.20 - 13:01
(101) > Можно вообще все в функцию запихнуть
Можно. Но не нужно:
1) кроме распределения на том же проходе частенько еще что-то полезное делается
2) функция из (17) не только для распределения пропорционально базе. Ту же СуммуСНДС по строке рассчитать, чтобы сошлось с общим итогом.
3) функция из (17) позволяет в одном проходе работать сразу с несколькими ресурсами. Ну, например, одновременно чего-то распределять и сумму с ндс рассчитывать без потери копеек
   fisher
 
103 - 15.12.20 - 13:03
Ее прелесть именно в универсальности и простоте использования. Просто в нужных местах обычное Окр заменяется на эту функцию и все.
   RetardedToBoot
 
104 - 15.12.20 - 13:44
Так это все те же самые поделить и умножить. А по нескольким ресурсам эта возможность из-за соответствия. Его так же в параметр, я его не упомянул для упрощения.
   RetardedToBoot
 
105 - 15.12.20 - 13:45
Зато не будет лишних округлений.
   RetardedToBoot
 
106 - 15.12.20 - 15:09
Кстати, я кажется как-то раз сталкивался с тем, что бухгалтера просили разобраться почему там копеечка висит, и все сводилось к такому округлению. Хотя давно это было, может я и не правильно помню. Т.е. в принципе, как очень редкий случай, при округлении из (17) возможно зависание копейки.
   fisher
 
107 - 15.12.20 - 15:22
(106) А значение косинуса в военное время в принципе может достигать четырех. В виде исключения.
  1  2

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.