Добрый день,
После перехода с 4ки на 2009 стали получать ошибку при разноске. Место где не проходит проверка в \Classes\LedgerVoucherObject\checkBalancePerDate. Суть ошибки не понятна, так как настройки не меняли и все работало, проблема возникает только при разноске в валюте компании.
Проверили класс LedgerVoucherObject - никаких модификаций нет. Но в тоже время обнаружили, что в 4ке изменен один из методов, который, как оказалось, "исправляет" эту ошибку. Изменения в 4ке не имели комментариев и не были перенесены в новую систему.
\Classes\LedgerVoucherObject\postRoundingDifferencesPerDate
- изменен только первый вызов этого метода, второй без изменений.
X++:
this.addTrans(
LedgerVoucherTransObject::newVoucherTrans(
this,
LedgerPostingType::MSTDiff,
accountNum,
dimension,
companyCurrencyCode,
transactionTxt.txt(),
ledgerTrans.TransDate,
0,
-ledgerTrans.AmountCur, //0, mxk - Invoice issue in GBP
-ledgerTrans.AmountMST,
0,
NoYes::No,
true,
tmpVoucherMap),
false);
Т.е. изменен параметр "AmountCur" c значения по умолчанию "0" на "-ledgerTrans.AmountCur".
Не понятно, почему без него возникает эта ошибка. Просмотрел вроде никаких других модификаций в этом функционале у нас нет.
Партнеры как обычно ничего полезного не посоветовали, кроме стандартных настроек, которые мы и так смотрели.
С одной стороны вроде проблему решили изменив метод, но вот только не понятна причина и следствия
AX 2009 SP2 Appl 5.0.1500.4570