Показать сообщение отдельно
Старый 16.02.2012, 14:54   #1  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Странная ошибка при разноске
Добрый день,

После перехода с 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
Миниатюры
Нажмите на изображение для увеличения
Название: Invoice Issue.jpg
Просмотров: 774
Размер:	184.5 Кб
ID:	7563  
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.