Возникла следующая проблема, помогите плз её решить.
Суть такова:
В отчёте на табличке Item, триггер OnAfterGetRecord прописано:
....
GetQuantityAndAmount(0D, CALCDATE('<-1D>', StartingDate));
StartingQty := ROUND(DebitQuantity - CreditQuantity / QuanUnitToBaseUnit, ValencyValue, '=');
StartingCost := DebitCost - CreditCost;
GetQuantityAndAmount(0D, EndingDate);
EndingQty := ROUND(DebitQuantity - CreditQuantity / QuanUnitToBaseUnit,ValencyValue,'=');
EndingCost := DebitCost - CreditCost;
GetQuantityAndAmount(StartingDate, EndingDate);
IncreaseQty := ROUND(DebitQuantity / QuanUnitToBaseUnit,ValencyValue,'=');
IncreaseCost := DebitCost;
....
Таким образом считаются суммы на: начало и конец периода, а также приход и расход за заданный период.
Код самой функции:
//код
ValueEntry.SETRANGE("Posting Date", StartDate, EndDate);
ValueEntry.SETFILTER(ValueEntry."Valued Quantity",'>0');
ValueEntry.CALCSUMS("Invoiced Quantity","Cost Amount (Actual)");
DebitQuantity := ValueEntry."Invoiced Quantity";
DebitCost := ValueEntry."Cost Amount (Actual)";
ValueEntry.SETFILTER(ValueEntry."Valued Quantity",'<0');
ValueEntry.CALCSUMS("Invoiced Quantity","Cost Amount (Actual)");
CreditQuantity := -ValueEntry."Invoiced Quantity";
CreditCost := -ValueEntry."Cost Amount (Actual)";
//код
Эту функцию надо переделать таким образом, чтобы в неё попадали сторнирующие акты списания со знаком '+'. Есть вариант, но нужно отказаться от использования CALCSUMS. Переписывать отчёт полностью слишком долго.
Может кто-нибудь подскажет вариант?
Должно быть нечто подобное, как я понимаю:
....
IF ValueEntry."Item Ledger Entry Type"=ValueEntry."Item Ledger Entry Type"::"Negative Adjmt." THEN
....