SELECT WITH SELECT_ORDER, NESTED_LOOP, FORCE_PLACEHOLDERS INDEXISHINT SUM(PostedQty), SUM(PostedValue), SUM(PhysicalValue), SUM(Deducted), SUM(Registered), SUM(Received), SUM(Picked), SUM(ReservPhysical), SUM(ReservOrdered), SUM(OnOrder), SUM(Ordered), SUM(Arrived), SUM(QuotationReceipt), SUM(QuotationIssue), SUM(PhysicalInvent), SUM(PostedValueSecCur_RU), SUM(PhysicalValueSecCur_RU), SUM(AvailPhysical), SUM(AvailOrdered) FROM InventSum GROUP BY InventSum.ItemId ASC USING INDEX ClosedItemDimIdx WHERE ((Closed = ???)) AND InventTable.ItemId=InventSum.ItemId AND InventTable.ItemId=InventSum.ItemId JOIN INDEXISHINT * FROM InventDim GROUP BY InventDim.InventLocationId ASC USING INDEX DimIdIdx WHERE InventSum.InventDimId = InventDim.inventDimId
Это запрос с таким кодом
X++:
void executeQuery()
{
// > добавленный мной кусок -->
QueryBuildDataSource BR;
Query q;
str s='';
QueryBuildRange findOrAddRange(int fNum){
QueryBuildRange ret;
ret=BR.findRange(fNum);
if(!ret) ret=BR.addRange(fNum);
return ret;
}
// > добавленный мной кусок <--
;
element.inventDimSetupObject().modifyQuery(inventSum_DS,inventDim_DS);
// > добавленный мной кусок -->
q=InventSum_ds.query();
BR=q.dataSourceNo(1).addDataSource(tablenum(InventTable));
BR.relations(true);
/*fItemGroupId =findOrAddRange(fieldnum(InventTable,ItemGroupId));
fModelGroupId =findOrAddRange(fieldnum(InventTable,ModelGroupId));
fDimGroupId =findOrAddRange(fieldnum(InventTable,DimGroupId));
fItemBuyerGroupId=findOrAddRange(fieldnum(InventTable,ItemBuyerGroupId));
*/
InventSum_ds.query(q); // пробовал InventSum_ds.queryrun(new sysqueryrun(q)); - тот же эффект
info(inventsum_ds.query().dataSourceNo(1).toString());
/*fItemGroupId.value(ItemGroupId.valueStr());
fModelGroupId.value(ModelGroupId.valueStr());
fDimGroupId.value(DimGroupId.valueStr());
fItemBuyerGroupId.value(ItemBuyerGroupId.valueStr());
*/
// > добавленный мной кусок <--
super();
}
Как видно, InventTable в запросе есть