Data Dictionary \ Maps \ PriceDiscHeading \ Methods
X++:
server void updateFinalDisc(PriceDiscLine priceDiscLine)
{
PriceDisc priceDisc;
InventTableModule inventTableModule;
AmountCur balanceEndDisc;
ModuleInventPurchSales moduleType = priceDiscLine.moduleType();
;
while select sum(LineAmount) from priceDiscLine
group by ItemId
where priceDiscLine.SalesPurchId == this.SalesPurchId
&& priceDiscLine.ItemId
join inventTableModule
group by EndDisc
where inventTableModule.ItemId == priceDiscLine.ItemId &&
inventTableModule.ModuleType == moduleType &&
inventTableModule.EndDisc == NoYes::Yes
{
balanceEndDisc += priceDiscLine.LineAmount;
}
.........................................
Зачем такой сложный расчёт balanceEndDisc?
Явно не для производительности...

Разве это не эквивалентно чему-то вроде вот этого: (или я туплю?)
X++:
select sum(LineAmount) from priceDiscLine
where priceDiscLine.SalesPurchId == this.SalesPurchId
&& priceDiscLine.ItemId
join tableId from inventTableModule
where inventTableModule.ItemId == priceDiscLine.ItemId &&
inventTableModule.ModuleType == moduleType &&
inventTableModule.EndDisc == NoYes::Yes;
balanceEndDisc = priceDiscLine.LineAmount;