![]() |
#341 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() PurchLine.update() в D365FO стал просто великолепен: мало того, что метод раздулся до 370 строк (что, PurchLineType.update()? не, не слышали), так он еще и начал пересчитывать налоги по заказу на покупку - видать, какой-то костыль для отображения итогов по заказу в виде FormPart.
![]() ![]() Скорее всего вызов необходим для корректного пересчета распределений, к тому же название метода как бы намекает, сам пересчет распределения идет ниже в том же методе, вызывается для всей покупки целиком, правда в последних версиях AX2012, ребята поняли или им кто-то подсказал, что бывают проблемы с производительностью. Поэтому они добавили флажок(purchline.SkipDistributionUpdate) для скипа пересчета распределения всей покупки при обновлении строки и его используют при некоторых массовых действиях со строками, а про InclTax возможно забыли, т.к. чек скорее всего не был активирован ![]() Я так понимаю вопрос больше риторический ? ![]()
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: gl00mie (3). |
![]() |
#342 |
Участник
|
PurchTotals "переопределить" можно, другое дело, что это нужно делать "иногда". Подобные места все чаще приходится лечить с помощью Option 3. Disposable context, в данном случае: где-то вышле по стеку создать singleton-"флажок", а где-то ниже, скажем, в постобработчике создания PurchTotals, по флажку подпихивать класс-пустышку вместо реального класса расчета итогов. Но выглядит это все очень извратно на фоне нормальных ветвлений в коде, которые можно было делать прежде.
|
|
![]() |
#343 |
Участник
|
Там вообще все плохо с purchline, есть в ГЛ параметрах галка, обрабатывать сабледжер параллельно и из-за нее purchline на апдейте tax сама себя лочит...
|
|
|
За это сообщение автора поблагодарили: Logger (1). |
![]() |
#344 |
Moderator
|
Кстати, у меня есть сильное подозрение, что замечательное новое логирование быстро съедает IOT Quote и Azure начинает зажимать дисковые операции. (Aka IOT Throttling.) Возможно из за этого микрософт и вынужден был перевести подписные VM на DS12 (где, как я понимаю, ограничения по IOT не такие жесткие).
|
|
![]() |
#345 |
Участник
|
AX 2012 R3. В методе SysDictIndex.showDuplicates() неверно формируется список ORDER BY. Иначе говоря, если подсунуть индекс InventDim.DimIdx, у которого отключены некоторые поля, то неверно составленный запрос вызовет ошибку.
Вместо X++: stmtStr += int2str(enabledFields[i]+1); X++: stmtStr += int2str(i+1);
__________________
// no comments |
|
|
За это сообщение автора поблагодарили: ax_mct (3). |
![]() |
#346 |
Участник
|
Ну и такая же байда с ResultSet, если количество фактических полей не совпадает с описанным, выбирается getString(12) при том, что в SELECT-е участвовало всего 10 полей.
__________________
// no comments |
|
![]() |
#347 |
Microsoft Dynamics
|
D365 FO
public class InventItemInventoryDimensionStorageDimConversionTaskInitiatorDelegateHandlers { } В одном имени два раза использованы слова Inventory и Dimension... При Балмере такого не было... Кто-нибудь натыкался на доку, по каким критериям оценивать таблицы с InventDimId, нужен им конвертер или нет? |
|
|
За это сообщение автора поблагодарили: gl00mie (2). |
![]() |
#348 |
Участник
|
Есть все таки в Ax какие то традиции переходящие имхо из поколение в поколения.
RunBase X++: public QueryRun queryRun() { return null; #if.never return QR; #endif } |
|
![]() |
#349 |
Administrator
|
Хорошие традиции. Несут в себе документацию, что в этом методе надо возвращать переменную QR, определенную в ClassDeclaration наследника RunBase.
Т.е. это документирование того, как надо использовать фреймворк.
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#350 |
Участник
|
|
|
![]() |
#351 |
Участник
|
![]() |
|
|
За это сообщение автора поблагодарили: mazzy (5), trud (3), db (5). |
![]() |
#352 |
Участник
|
Этот код вывел 16?
Арифметика неверно считает? |
|
![]() |
#353 |
Участник
|
почему сразу "неверно"?
очевидно, что сейчас так записывается битовый сдвиг осьмерки влево на единицу. |
|
![]() |
#354 |
Участник
|
|
|
![]() |
#355 |
Роман Долгополов (RDOL)
|
арифметика не при чем. проблема в реализации case с множественными значениями. если в в такой ветке нет break, то код ветки выполняется столько раз, сколько значений в списке
вот так работает нормально X++: public static void main(Args _args) { int i = 1; int j = 0; switch (i) { case 1: case 2,3,4: Info("!!"); j+=8; break; } Info(int2Str(j)); } а вот так вообще 32: X++: public static void main(Args _args) { int i = 1; int j = 0; switch (i) { case 1, 2,3,4: Info("!!"); j+=8; } Info(int2Str(j)); } |
|
|
За это сообщение автора поблагодарили: Logger (5). |
![]() |
#356 |
Роман Долгополов (RDOL)
|
|
|
|
За это сообщение автора поблагодарили: trud (1), Stitch_MS (1). |
![]() |
#357 |
Участник
|
DAX 2012 R3
При переименовании кода складского журнала через паспорт записи не меняется код журнала в InventTransOriginJournalTrans.InventJournalId и в InventTransOrigin.ReferenceId. В результате, разнести нормально такой журнал не получается. Плюс - удаление такого журнала оставляет складские проводки Заказано в базе, хотя строки журнала удаляются.
__________________
Ален ноби, ностра алис. Что означает - если один человек построил, другой завсегда разобрать может. |
|
![]() |
#358 |
Участник
|
Ну т.е. по факту WTF в данном случае, что эту функцию смены кода оставили. Реально ей пользоваться можно практически никогда.
__________________
Ivanhoe as is.. |
|
![]() |
#359 |
Участник
|
Цитата:
Но похоже, если взят курс на замену натуральных ключей суррогатными, то её время подходит к концу.
__________________
Ален ноби, ностра алис. Что означает - если один человек построил, другой завсегда разобрать может. |
|
![]() |
#360 |
Модератор
|
Давным-давно, один мальчик установил KB4492562, и все инвойсы стали показывать 4.67. Никто так и не смог разобраться, правильно это было или нет
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: twilight (1). |