Epic Fail Остатки на дату InventSumDateValueReportDim
Здравствуйте,
была простая задача: получить остатки на определенную дату.
в компании используется складская аналитика Склад. (только).
Задачка простая на 30.09.2010 получить остатки по номенклатуре вида:
Номенлкатура, Склад, Количество, Сумма
по идее все должно работать за счет стандартного класса InventSumDateValueReportDim
как бы не так

есть номенклатура 'ЦТ0085140'
по ней движение появилось 05.11.2010
до этой даты 05.11.2010 НЕТ ПРОВОДОК в InventTrans с такой номенклатурой по любой складской аналитке
05.11.2010 куплено 20 штук
20.11.2010 продано 1 штука
на текущий день 19 штук осталось
на 30.09.2010 по этой номенклатуре должно быть ровно 0
по всем складским аналитикам.
но увы.
X++:
InventDimId _inventDimId;
date _date;
itemId _itemId;
Qty qty, qty2;
InventSumDateValueReportDim Invent; // класс расчета на определенную дату
InventDim inventDimLoc;
InventDimParm inventDimParmLoc;
;
_itemId = 'ЦТ0085140';
_inventDimId = 'ЦАН00069498';
_date = mkdate(30,9,2010);
inventDimParmLoc.InventLocationIdFlag = NoYes::Yes;
inventDimParmLoc.InventGTDIdFlag_RU = NoYes::No;
inventDimLoc = inventDim::find(_inventDimId);
Invent = InventSumDateValueReportDim::newParameters(
_date,
_itemId,
inventDimLoc,
inventDimParmLoc);
qty = Invent.PostedQty() - Invent.deductedQty() + Invent.receivedQty();
qty2 = Invent.PostedQty();
info(StrFmt("%1 %2",qty ,qty2));
упорно возвращает 19
а вот такой код возвращает все верно 0
X++:
inventTrans inventTrans;
select sum(Qty) from inventTrans
group by inventDimId, itemId
where
inventTrans.ItemId == 'ЦТ0085140' &&
inventTrans.DatePhysical <= mkdate(30,09,2010) &&
inventTrans.StatusIssue <= StatusIssue::Deducted &&
inventTrans.StatusReceipt<= StatusReceipt::Received &&
inventTrans.inventDimId == 'ЦАН00069498';
info(strfmt("%1", inventTrans.Qty));
Вопрос: неужели на стандартный класс нельзя положиться,
если движение по номенклатуре началось позже указанной даты?
выдает ерунду.