|
![]() |
#1 |
Участник
|
в итоге получается я так надеюсь конечный код, + надо запустить где-то и когда-то два\один пересчет.
X++: delete_from INVENTTRANSPOSTING where INVENTTRANSPOSTING.InventTransId == "номер лота из строк журнала"; //!!! будет закоментарено но надо что то запустить delete_from LEDGERTRANS where LEDGERTRANS.Voucher == "номер Документа ГК из строк журнала"; //!!! будет закоментарено но надо что то запустить delete_from LEDGERBALANCESDIMTRANS where LEDGERBALANCESDIMTRANS.AccountNum == "не знаю может если повезет по одной из сумм и дате"; delete_from INVENTJOURNALREPORTTABLE_RU where INVENTJOURNALREPORTTABLE_RU.JournalId == "номер журнала"; delete_from InventJournalTrans where InventJournalTrans.JournalId == "номер журнала"; delete_from TRANSACTIONLOG where TRANSACTIONLOG.Txt == "не знаю может если повезет по юзеру и дате"; delete_from INVENTJOURNALTABLE where INVENTJOURNALTABLE.JournalId == "номер журнала"; delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала"; // спертый кусок из посоветанного для правки INVENTSUM 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 |
Участник
|
Цитата:
Сообщение от opusss
![]() //!!! будет закоментарено но надо что то запустить
delete_from LEDGERTRANS where LEDGERTRANS.Voucher == "номер Документа ГК из строк журнала"; //!!! будет закоментарено но надо что то запустить delete_from LEDGERBALANCESDIMTRANS where LEDGERBALANCESDIMTRANS.AccountNum == "не знаю может если повезет по одной из сумм и дате"; Повторюсь. Самостоятельный пересчёт InventSum можно не делать если воспользоваться параметром dropInventOnHand метода InventTrans.delete(). T.е. если X++: delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала"; X++: ttsbegin; while select forupdate InventTrans where INVENTTRANS.InventTransId == "номер лота из строк журнала" { InventTrans.delete(true); } ttscommit; |
|
![]() |
#3 |
Участник
|
Внимание ОШИБКА !!!
Приношу свои извенения. Мой английский меня подвёл ![]() Цитата:
Сообщение от S.Kuskov
![]() Повторюсь. Самостоятельный пересчёт InventSum можно не делать если воспользоваться параметром dropInventOnHand метода InventTrans.delete(). T.е. если
X++: delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала"; X++: ttsbegin; while select forupdate InventTrans where INVENTTRANS.InventTransId == "номер лота из строк журнала" { InventTrans.delete(true); } ttscommit; я ошибся с точностью до наоборот. Параметр dropInventOnHand (название этого параметра меня и подвело, оказывается drop - в смысле пропускать) нужно оставить равным NoYes::No (значение по умолчанию), если хотите чтобы InventSum пересчитался сам. Т.е. код можно оставить ваш (он и InventTrans удалит и одновременно InventSum пересчитает): Правильный вариант X++: // удаление INVENTTRANS и пересчет INVENTSUM delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала"; Последний раз редактировалось S.Kuskov; 24.12.2009 в 08:58. |
|