и даже после такой модификации код все еще не будет оптимальным и универсальным.
ведь кто-то может заоптимизировать inventSum или добавить туда статусов и дополнительных полей.
А этот австралийский индус жестко указывает список суммируемых полей в жестко написанном запросе.
Разобраться с методом newQuery?... Нет это же "quick and dirty" программирование.
На самом деле должно быть так:
X++:
Query = InventSum::newQuery(null, 'your item',DimCriteria, ParmCriteria, ParmGroupBy);
QueryRun = new Qureyrun(Query);
while( QueryRun.next() )
{
inventSum = QueryRun.get(tablenum(InventSum));
inventQty += inventSum.availPhysical();
}
info(strfmt('%1', inventQty));
Код сразу стал прозрачным и универсальным.
Недели и месяцы, потраченные на оптимизацию производительности запросов не пропадают зря только потому, что какой-то индус написал прямой запрос к таблице.
Но ведь для этого надо разобраться с параметрами.
А это так сложно, чтобы делать "enjoy" от "fast and dirty" примера...