Раз возникают вопросы, расскажу предысторию.
Нужно выставить акциз на нефтепродукт (допустим на Диз.Топливо(ДТ)). Ставка акциза всегда задаётся в EUR на 1 число каждого месяца, и в течение месяца не меняется. Например на 01/08/04 на материал ДТ она равна 60 EUR. Курс EUR, для расчёта тоже всегда берётся на 1 число (так в инструкции по начислению акциза написано). На 01/08/04 курс EUR равен 2.602,53 BYB. Прошу заметить, что курс с копейками, хотя валюта BYB - без копеек. Но это тоже прихоть НацБанка Респ. Беларусь. Ставка акциза в EUR, но выставляем его для резидентов в BYB (тоже так положено). Поэтому цена в EUR, а валюта документа BYB.
Как система считает стоимость: Цена в валюте(EUR) умножается на курс валюты документа (BYB), а затем округляется до валюты до числа знаков валюты документа(для BYB - 0 знаков). После этого полученную цену умножает на кол-во в позиции, затем опять округляет до "валюты документа" и получается стоимость.
А в инструкции по расчёту акциза написан следующий алгоритм: цена в EUR умножить на кол-во умножить на курс а затем округлить до "валюты документа" - BYB.
PS.
А если цена скажем в EUR, валюта документа не BYB а RUR, то система посчитает стоимость вот как:
1. Цена в EUR * курс валюты БЕ (BYB)
2. Округление до числа знаков валюты БЕ (0)
3. Цена в валюте БЕ(BYB) * курс вал. док. (RUR)
4. Округление до числа знаков валюты RUR (2)
5. Цена в RUR * кол-во позиции
6. Округление до числа знаков валюты RUR (2)
На больших кол-вах и ценах такие разбежки получаются ....
Вот я и хотел узнать как сделать так, чтоб система не делала промежуточные округления, а округляла один раз, в самом конце.
Спасибо за внимание. Булыга А.С.
|
|