Показать сообщение отдельно
Старый 07.01.2008, 16:41   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
а теперь параметры

X++:
Query Query;
QueryRun QueryRun;
InventDim DimCriteria;
InventDimParm ParmCriteria;
InventDimParm ParmGroupBy;
;
////////////// параметры //////////////
DimCriteria.clear();
DimCriteria.InventLocationId = 'your wh';

ParmCriteria.clear();
ParmCriteria.ItemIdFlag = NoYes::Yes;
ParmCriteria.InventLocationIdFlag = NoYes::Yes;

ParmGroupBy.clear();
ParmGroupBy.ItemIdFlag = NoYes::Yes;

////////////// цикл //////////////
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));
Стал ли код менее понятным?
Нет.

Стал ли код более универсальным?
Да.

Стал ли код правильным?
Еще не совсем. Не хватает проверки на допустимость склада - бывают номенклатуры, для которых склад неактивен.
Но поскольку в "примере" рассматривается только одна номенклатура и только один склад - это несущественно. Вот если бы мы раскрывали цикл по нескольким номенклатурам и складам...

Можно ли этот код использовать в качестве паттерна для дальнейшего использования?
Да.

А ведь достаточно было посмотреть на УЖЕ СУЩЕСТВУЮЩИЕ методы и чуть-чуть подумать...
"fast and dirty", блин
__________________
полезное на axForum, github, vk, coub.