Имя: Пароль:
1C
 
Как правильно пересчитывать сумму документа в валюте?
0 HomoAlbus
 
26.07.18
17:17
Всем добра.

Возник тут спор с коллегой:
Я считаю, что если у нас в документе есть 10 строк с товаром в уе, то мы должны сначала посчитать общую стоимость товаров в уе, перевести их в рубли, а потом распределить по ТЧ.
Он утверждает, что можно считать построчно и складывать.

Есть ли методическая инфа на этот счет?
1 Cyberhawk
 
26.07.18
17:19
Методическая инфа вас, рассуждающих об алгоритме, не должна волновать
2 Cyberhawk
 
26.07.18
17:21
Предлагаемое тобою распределение общей суммы по долям - геморрой какой-то. Чем он вызван? Коллега же твой не видит смысла усложнять.
3 HomoAlbus
 
26.07.18
17:22
(1) Так в том-то и дело, что волнует. Чтобы выбрать вариант решения, надо его чем-то обосновать, может быть есть какой-нибудь документ, регламентирующий этов в БУ, например
4 RomanYS
 
26.07.18
17:22
(2) типовые в основном сейчас делают так
5 HomoAlbus
 
26.07.18
17:24
(2) Принципиальный вопрос. Босс смотрит на накладную, она на 100 баксов, значит в рублях должно быть, скажем 6000 (по ЦБ), а в рублях оно 6000,08 (из-за сумм погрешностей округления по строкам). Могут возникнуть вопросы
6 azernot
 
26.07.18
17:26
Общая сумма в у.е. - это сума взаиморасчётов. Т.е. при любом раскладе, общая сумма в рублях должна быть рассчитана из общей суммы в у.е.

Далее, если стоит задача получить суммы в рублях по каждой строке (например для печатной формы), то их общая сумма должна равняться общей сумме документа. Однако, из-за округлений, простой пересчёт каждой строки может не дать общую сумму.

Отсюда и необходимость этого геморра с пересчётом общей суммы и распределением.
7 HomoAlbus
 
26.07.18
17:28
(6) Это законодательная норма? Есть хоть че-нибудь методическое на этот счет?
8 azernot
 
26.07.18
17:29
(7) Это здравый смысл. В законодательстве вы вряд ли найдёте что-то подробно описывающее этот процесс.
9 vde69
 
26.07.18
17:30
(0) Вы обсуждаете 2 разные методики расчета, обе имеют некоторые проблемные места

1. пропорциональное деление - на малых суммах будет давать очень большую погрешность (то есть когда сумма например колеблется в районе 10 копеек)
2. построчный расчет - дает суммарную ошибку (может вылезти итого и несколько рублей)


я рекомендую третий алгоритм связный с нарастающим итогом:

1. Упорядочиваем таблицу от малого к большему
2. берем первую строку и рассчитываем ее
3. складываем строки 1 и 2 и расчитываем сумму, потом вычитаем уже расчитаное первой строки и результат помещаем в строку 2
3. складываем первые 3 строки....


в результате получается очень красиво
10 Cyberhawk
 
26.07.18
17:31
(9) Чем предлагаемое тобой отличается от "пропорционального деления"?
11 azernot
 
26.07.18
17:32
(10) Тем, что финальная копейка, на которую всё разойдётся будет отнесена на последнюю строку, а не на строку с самой большой суммой.
12 vde69
 
26.07.18
17:33
(10) на некоторых наборах данных отличается... Особенно когда суммы маленькие, например при расчете НДС мелких вещей
13 Cyberhawk
 
26.07.18
17:33
(11) Шта?
(12) Пример приведи
14 RomanYS
 
26.07.18
17:36
(11) В типовых есть РаспределитьПропорционально, она скорее всего не идет ни по одному из предложенных Вами алгоритму
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший