Вот переписанный ваш запрос.
X++:
display SalesLineAmount nds18() // НИКАКИХ real. Только Extended Data Type = EDT
{
TaxItemGroup nds; // НИКАКИХ str. Только Extended Data Type = EDT
SalesLineAmount nds18; // НИКАКИХ real. Только Extended Data Type = EDT
;
while select SalesLine where
salesLIne.InventTransId==inventtrans.inventTransId
&& salesline.TaxItemGroup == 'НДС18' // сразу сокращайте выборку, не надо тянуть с сервера лишние записи
{
nds18 += SalesLine.LineAmount;
}
return nds18 ;
}
а вот как вы его должны были написать
X++:
display SalesLineAmount nds18() // НИКАКИХ real. Только Extended Data Type = EDT
{
TaxItemGroup nds; // НИКАКИХ str. Только Extended Data Type = EDT
;
select sum(lineAmount) from SalesLine where
salesLIne.InventTransId==inventtrans.inventTransId
&& salesline.TaxItemGroup == 'НДС18' // сразу сокращайте выборку, не надо тянуть с сервера лишние записи
;
nds18 = SalesLine.LineAmount;
....
return nds18 ;
}
далее, таблица inventTrans в данном запросе явно лишняя...
но даже после такой модификации все равно написано плохо, поскольку в display-методах не должно быть обращений к базе.
Цитата:
Сообщение от
CasperSKY
конкретно дисплей метод взят откуда то из стандартного метода ...
Не может такого быть!