![]() |
#8 |
Участник
|
Вобщем-то разобрались где, что и как считается.
Итак есть класс InventCostItemDim и у него есть метод метод CreateErrorAdjustment. Этот метод исполняется до пересчета расходных проводок. И делает проводку по сопоставлению, на проводку прихода. Сумму для проводки он получает так: сначала пересчет вычисляет следующую дельту для складского прихода (из примера в ворде): дельта = (1009,33/101)*39 - 389,7 дельта = 0,04 (т.е. вычисляется стоимость прихода за единицу, умножается на уже сопоставленное количество, из этого всего вычитается уже сопоставленная сумма) затем вычисляется такая же дельта для каждого складского сопоставления отдельно и суммируется. затем находится разница этих дельт и делается: CreateErrorAdjustment(разница дельт). Говоря по простому, пересчет сравнивает два параметра: 1. Ошибку округления общим скопом (проводка прихода) 2. Суммарную ошибку округления отдельно по проводкам И если они не равны то делает коррекцию прихода. В чем проблема с нашим примером: Вычисляя ошибку округления по проводкам, он каждое полученное значение, перед суммирование округляет, а так как значения там очень маленькие то суммируется каждый раз 0. Сейчас мы "убрали" это округление и пытаемся пересчитать заново. Ждем результата. Если че не понятно - спрашивайте. |
|