|
01.12.2020, 03:00 | #1 |
Участник
|
Програмное изменение количества в строке заказа
Добрый день,
Я сегодня внезапно столкнулся с проблемой, что когда я через код изменяю значениe PurchLine.PurchQty, и сохраняю строку значение в заказе изменяется без проблем, но вот значение складской проводки не обновляется, и тестеры сильно переживают. Пробовал вызывать дополнительные функции на таблице перед апдейтом (как например modifiedField и тп., пробовал разное значение параметра dropInvent при вызове апдейта, но не выходит. У кого-нибудь есть пример правильного обновления количества через код? Что я упускаю?
__________________
С уважением, Dozer |
|
01.12.2020, 04:50 | #2 |
Участник
|
Поставьте точку останова где-нибудь в InventTrans.update(), InventTrans.insert()
Обновите руками, посмотрите как вы туда, в обновление складских проводок, попадаете и почему не попадаете при использовании вашего кода. Или поищите в стандарте какой-нибудь вариант изменения количества через код - какой-нибудь импорт, копирование строк, создание заказа на основании других документов и т.д. |
|
01.12.2020, 08:26 | #3 |
Участник
|
Все верно.
На проводки влияет не PurchQty, а RemainInventPhysical, поэтому нужно корректно менять и его. Более того, есть еще несколько полей с количеством и при изменении PurchQty должны быть изменено и другие поля. Например, можно посмотреть в методе PurchLine.createLine как инициализируются поля QtyOrdered и остальные. |
|
|
За это сообщение автора поблагодарили: Pandasama (1). |
01.12.2020, 16:32 | #4 |
Участник
|
Цитата:
\Forms\PurchTable\Data Sources\PurchLine\Fields\PurchQty\Methods\modified super() - это как раз табличный метод modifiedField(), но смотреть надо, что там дальше. После super(), что еще кроме собственно PurchQty надо изменить Там, конечно, часть действий по обновлению картинки на форме, но в том числе и методы по обновлению данных запускаются
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
01.12.2020, 18:02 | #5 |
Участник
|
Повозился ещё немного и вроде как вот такой финальный код работает правильно:
X++: purchLine.PurchQty = newQty;
PurchLine::modifyPurchQty(purchLine, purchLine.inventDim(), false);
InventMovement::bufferSetRemainQty(purchLine);
purchLine.update();
__________________
С уважением, Dozer |
|
01.12.2020, 18:59 | #6 |
Аманд
|
Цитата:
Сообщение от Dozer
Добрый день,
Я сегодня внезапно столкнулся с проблемой, что когда я через код изменяю значениe PurchLine.PurchQty, и сохраняю строку значение в заказе изменяется без проблем, но вот значение складской проводки не обновляется, и тестеры сильно переживают. Пробовал вызывать дополнительные функции на таблице перед апдейтом (как например modifiedField и тп., пробовал разное значение параметра dropInvent при вызове апдейта, но не выходит. У кого-нибудь есть пример правильного обновления количества через код? Что я упускаю? Если не секрет, что за модифа? |
|
02.12.2020, 00:59 | #7 |
Участник
|
Клиент заказал кастомную форму для быстрого изменения количеств в строках заказа по вариантам продукта.
В деталях долго расписывать, проект очень замороченый.
__________________
С уважением, Dozer |
|
|
За это сообщение автора поблагодарили: Vals (1). |
Теги |
d365 for operations, purchline, x++ |
|
|