Цитата:
Сообщение от
mazzy
Думаю, что надо дальше искать и анализировать тяжелые запросы
Уверен?
\Data Dictionary\Tables\ProdBOM\Methods\calcCostAmount
X++:
container calcRealCostAmount()
{
InventTrans inventTrans;
InventDimParm inventDimParmFinancial;
InventDimParm inventDimParmActive;
InventDimGroupId dimGroupId;
InventQty qty = 0;
CostAmount value = 0;
boolean first = true;
;
while select inventTrans // !!!
index hint TransIdIdx
where inventTrans.InventTransId == this.InventTransId &&
inventTrans.ItemId == this.ItemId &&
inventTrans.StatusIssue == StatusIssue::Deducted &&
inventTrans.ValueOpen == InventTransOpen::Yes &&
inventTrans.PackingSlipReturned == NoYes::No
{
if (first)
{
dimGroupId = InventTable::find(inventTrans.ItemId).DimGroupId;
inventDimParmFinancial.initFinancialInvent(dimGroupId);
inventDimParmActive.initDimActive(dimGroupId);
first = false;
}
qty += inventTrans.Qty;
value += inventTrans.estimatedCostValue(inventDimParmFinancial,inventDimParmActive); /// !!!
}
qty = abs(qty);
value = abs(value);
return [qty,value];
}
и как этому не тормозить при тысячах отборочных накладных по производственному заказу?