Каталог решений - Точный расчет пропорционально зависимых значений в спецификации.

Точный расчет пропорционально зависимых значений в спецификации.

Точный расчет пропорционально зависимых значений в спецификации.

В наличии

Больше статья, чем программа. Прилагаемая внешняя обработка — пример расчета на таблице значений.

Категория:

Описание

Точный расчет пропорционально зависимых значений в спецификации.
(Пример на сумме накладной и НДС)

Проблема возникает при округлении значений в расчетных колонках спецификации.
Накопление этих округлений приводит иногда к ощутимой погрешности расчетного итогового значения:

Итог по расчетной колонке <> Расчетное значение по итогу «колонки-основания» для расчета (1)

(проще говоря)

Итог("НДС") <> СтавкаНДС * Итог("Сумма") 

Погрешность в 1-2 копейки возникает очень часто, если количество строк в документе большое,
может достигать 10-20 копеек.

На первый взгляд проблема надуманна или несущественна.
Она имеет организационное решение: выверять сумму построчно в накладных;
расставаться с поставщиками, которые присылают такие документы;
в силу несущественности оставить как есть.

Исключения всегда есть:

— Валютная накладная с курсом, — пересчет спецификации на момент ввода в «рублевую» учетную систему,
— Необходимость распространения общей скидки / надбавки от суммы документа на его спецификацию (скидка, бонус, доп. расходы).
— Документы перепродажи между собственными юрлицами с небольшой наценкой (десятые доли процента), —
разница между «исходящим» и «входящим» НДС может сильно отличаться от нормативной по ставке от наценки.

Идея точного расчета состоит в том, чтобы условие (1) выполнялось на любой момент пересчета спецификации.
Таким образом, на примере НДС для позиции i спецификации (единая ставка для всей спецификации):

НДС_i = Окр(СтавкаНДС * Сумма_i,2); // по старому
    
НДС_i = Окр(СтавкаНДС * ПромИтог("Сумма",1,i),2) -
                                           ПромИтог("НДС",1,i-1); // по новому

 

ПромИтог(<Колонка>,<ГраницаОтВкл>,<ГраницаДоВкл>) — промежуточный итог по указанной колонке
по диапазону строк с указанными границами.

Или, словами: НДС для позиции это разница между ставкой НДС от накопленной суммы на данную позицию
минус накопленный НДС на предыдущую позицию.

Пример для НДС условный, таким же образом могут сводиться в ноль любые процентные расчеты.

Реализация метода — в прилагающейся внешней обработке.

has been added to your cart:
Оформление заказа