27.01.2010, 16:27 | #1 |
Участник
|
Метод TmpInventTransMark.updateTmpMark()
Ax2009 SP1 Hotfix Rollup 3 с GLS-слоем для Восточной Европы
Собственно, заинтересовала 183-я строка этого метода. X++: if (abs(inventTrans.financialOpenQty() > abs(qtyRemain))) В Ax3.0 аналогичный этому метод располагался в таблице InventTrans. Там была точно такая же строчка
__________________
Дмитрий |
|
|
За это сообщение автора поблагодарили: kashperuk (5), Logger (1), Raven Melancholic (1), Sergey Petrov (1), Ievgenii (2). |
27.01.2010, 17:22 | #2 |
Участник
|
|
|
27.01.2010, 17:44 | #3 |
Участник
|
Я попросил изменить на обратное условие - так намного лучше видно, что скобки расставлены неверно:
X++: if (abs(qtyRemain) < abs(inventTrans.financialOpenQty())) |
|
|
За это сообщение автора поблагодарили: Raven Melancholic (2). |
28.01.2010, 15:20 | #4 |
NavAx
|
Баян...
Маркировка - достала! Вроде, в 4ке перерабатывали этот механизм - неужели в 5ке взяли опять 3ку за основу? o_O
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... Последний раз редактировалось Maximin; 28.01.2010 в 15:24. |
|
|
За это сообщение автора поблагодарили: Damn (1). |
29.10.2019, 09:57 | #5 |
Участник
|
Поднял старую тему, поскольку также вызывает недоумение фрагмент этого кода в dax2012, который тянется с младших версий
X++: else if (tmpInventTransMark.QtyMarkNow != 0) // update new marking { qtyRemain = -tmpInventTransMark.QtyMarkNow; loop = 0; while (loop < 4) // почему здесь значение 4, а не 3 ? { // Select transactions are to be marked inventTransThis = TmpInventTransMark::inventTransMark(_inventTransId, _inventDimCriteria, _qty, tmpInventTransMark, loop); loop = 0 - Не маркированные проводки с тем же значением InventDimId loop = 1 - Не маркированные проводки, но по значениям аналитик loop = 2 - Проводки по значениям аналитик, маркированные с другой проводкой loop = 3 - Проводки по значениям аналитик. Без контроля маркирования Вот loop = 3 и вызывает вопросы. По сути, этот шаг цикла просто еще раз отберет те же самые проводки, которые были отобраны на предыдущих шагах. В результате, если изначально ошиблись с подсчетом количества для маркирования или другой пользователь внес изменения в проводки, то вот этот самый шаг с loop = 3 может привести к разнообразным глюкам маркирования Я не очень понимаю, это специально было сделано? Может, в младших версиях был в этом какой-то смысл?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
Теги |
ax2009, ax3.0, bug, баг, ошибка |
|
|