|
25.05.2016, 12:57 | #1 |
Участник
|
Баг в генераторе фин. отчетов AX 2012 R2 CU7
Нашел ошибку в методе LedgerRRGEBufferEvalOperationGroup_W.parms().
Сценарий воспроизведения ошибки следующий:
X++: public LedgerRRGOperationParm_RU parms(LedgerRRGOperationParm_RU _parms = parms) { LedgerRRGOperationParm_RU ret = super(_parms); /* Для исправления ошибки, комментируем этот кусочек кода if (curParams) { return curParams; }*/ return ret; } Последний раз редактировалось Morpheus; 25.05.2016 в 13:01. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
26.05.2016, 06:50 | #2 |
Microsoft Dynamics
|
Скорее всего этим фиксом вы не только починили свою проблему, но и сломали что-то другое. Поскольку в таком виде этот метод будет возвращать параметры сформированные с ячейки, а не с текущей вычисляемой операции.
Не помню уже, для какой фичи я сделал именно так, но ведь сделал же не просто так Последний раз редактировалось AlexSD; 26.05.2016 в 06:56. |
|
26.05.2016, 07:28 | #3 |
Участник
|
Может быть переменная curParams должна где-то обнулятся при смене контекста, а она не обнуляется?
|
|
26.05.2016, 11:32 | #4 |
Участник
|
У меня, правда в предыдущей версии, это закомментировано уже давно. Но в в методе parms, а в методе eval:
X++: // AAK_OVIK 10.04.2013 --> // Непонятно зачем тут это - в результате для строк формул вместо параметров // родителя (ячейки) в parms возвращаются параметры текущей строки // а если по текщей строке нет каких-то составляющих параметров и есть предыдущая // строка, то вместо параметров родителя берутся параметры предыдущей строки /* curParams = operation.parms(); */ // AAK_OVIK 10.04.2013 <-- |
|
|
|