|
![]() |
#1 |
AX*****
|
можно использовать вместо длительного
Цитата:
Проверка целостности данных компании
X++: static void Job(Args _args) { InventSumReCalcItem reCalcItem; Dialog dialog = new Dialog("Коррекция остатков номенклатуры"); DialogField dialogItemId = dialog.addField(typeId(ItemId)); ItemId itemId; InventTable inventTable; ; if (dialog.run()) { itemId = dialogItemId.value(); } if (itemId) { while select inventTable where inventTable.ItemId == itemId { reCalcItem = new InventSumReCalcItem(inventTable.ItemId, true, CheckFix::Fix); reCalcItem.updateNow(); } } } |
|
![]() |
#2 |
Участник
|
1. Спасибо.
2. Обсуждение сильно уходит в сторону от исходного вопроса. Метод reCalcItem.updateNow() не удаляет никаких записей, насколько я помню. Он только пересчитывает те записи, которые в момент пересчета затрагиваются в inventTrans. |
|
![]() |
#3 |
AX*****
|
не согласен.. В версии 2.5 если по номенклатуре есть левые остатки ничем кроме inventsum не подкреплены -- данный код "убьет" эти остатки из таблицы inventsum.
|
|
![]() |
#4 |
Участник
|
Цитата:
Вот кусок кода из метода loadCurrentInventSum() (вызывается внутри updateNow()) X++: while select forupdate inventSum where inventSum.itemId == itemId { cacheInventSum.ins(inventSum); if (checkFix == checkFix::Fix) inventSum.delete(); } }
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: aidsua (1). |
![]() |
#5 |
Участник
|
|
|
Теги |
inventsum, производительность |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|