Вообще-то, еще одна причина может быть в кастомизированном коде. Т.е. где-то, как-то, создаются суммы бух.проводок вообще без округления. Ведь в случае, если округление настроено как 0.00 метод Currency::amount() выполняет округление до копейки.
Другими словами, причина в том, что полученная сумма amountMST имеет дробную часть более, чем 2 знака после запятой. А вот как этот "хвост" появился, как следствие штатного функционала (раньше было округление до 0,001) или как следствие ошибок кастомизации, и надо выяснить. После этого уже искать пути решения.
Найти как раз не сложно. Просто поискать бух.проводки (LedgerTrans) у которых суммы имеют более 2 знаков после запятой. Далее смотреть как эти проводки были созданы.
|