![]() |
#7 |
Участник
|
во-первых, спасибо за ответы!
Цитата:
Alexanderrrr, Вы не там ищете. Блокировки в InventSum.find() - это следствие, а причина где-то в дебрях "расчета аванса", который зачем-то выполняет блокировку запасов в наличии, его и копайте
X++: /* Select table InventSum for update */ public InventSum inventSumSelectLocked(InventTrans inventTrans) { InventSum inventSum; ; if (!this.mustUseTTSSystem()) inventSum = InventSum::find(inventTrans.itemId,inventTrans.inventDimId,true); else { if (!this.dBConnectionUpd() || !TTSLevel_Upd || !appl.ttsLevel()) throw error(strfmt("@SYS69842",funcname())); inventSum.setConnection(this.dBConnectionUpd()); select firstonly forupdate inventSum index hint itemDimIdx where inventSum.ItemId == inventTrans.itemId && inventSum.InventDimId == inventTrans.inventDimId; } return inventSum; } X++: void update(NoYes dropInventOnHand= NoYes::No) { InventTrans this_Orig; InventSum inventSum; ttsbegin; this.setStatusDate(); this.setClosedOpen(); //Dual Warehouse --> this.setClosedOpenSecCur_RU(); //Dual Warehouse <-- this.setDirection(); if (!dropInventOnHand) { this_Orig = this.orig(); appl.inventUpdateTTSControl().setTTSBeginUpd(); if (InventSum::mustInventTransBeUpdated(this,this_Orig)) { inventSum = appl.inventUpdateTTSControl().inventSumSelectLocked(this); if (!inventSum.canInventTransBeUpdated(this_Orig)) { inventSum.updateInventTrans(this,NoYes::Yes,null,false); inventSum = appl.inventUpdateTTSControl().inventSumSelectLocked(this_Orig); inventSum.updateInventTrans(this_Orig,NoYes::No,null,true); } else inventSum.updateInventTrans(this,NoYes::Yes,this_Orig); } else if (InventSum::mustInventTransBeLogUpdated(this,this_Orig)) { appl.inventUpdateTTSControl().insertInventSumLogTTS(this,NoYes::Yes,inventSum); appl.inventUpdateTTSControl().insertInventSumLogTTS(this_Orig,NoYes::No,inventSum,true); } this.updateTransIdReturn(); appl.inventUpdateTTSControl().setTTSCommitUpd(); } super(); ttscommit; }
__________________
..в каждой программе есть хотя бы одна ошибка.. Последний раз редактировалось Alexanderrrr; 09.01.2010 в 16:12. |
|