Возможно здесь где-то уже пролетала такая ошибка ...
К сожалению, результат выполнения двух этих циклов разный.
Первый выдает инфолог, второй - нет.
Отличаются только указанием условия inventTable.Dimension[12]:
X++:
VendInvoiceTrans vendInvoiceTrans;
InventTable inventTable;
;
while select forceliterals vendinvoiceTrans
group by TableId
where vendinvoiceTrans.Voucher == "Ю3РПН00710274"
join inventTable
group by Dimension[12]
where inventTable.ItemId == vendinvoiceTrans.ItemId
&& inventTable.Dimension[12] != ''
{
info("1 - OK");
}
while select forceliterals vendinvoiceTrans
group by TableId
where vendinvoiceTrans.Voucher == "Ю3РПН00710274"
join inventTable
group by Dimension[12]
where inventTable.ItemId == vendinvoiceTrans.ItemId
&& inventTable.Dimension[12]
{
info("2 - OK");
}
А запросы на БД идут вот такие интересные.
В первом цикле - вполне корректный:
SELECT B.DIMENSION12_ FROM VENDINVOICETRANS A,INVENTTABLE B WHERE ((A.DATAAREAID=N'y31i') AND (A.VOUCHER=N'Ю3РПН00710274')) AND ((B.DATAAREAID=N'y31i') AND ((B.ITEMID=A.ITEMID) AND (B.DIMENSION12_<>' '))) GROUP BY B.DIMENSION12_ ORDER BY B.DIMENSION12_
А во втором - WTF?!
SELECT B.DIMENSION12_ FROM VENDINVOICETRANS A,INVENTTABLE B WHERE ((A.DATAAREAID=N'y31i') AND (A.VOUCHER=N'Ю3РПН00710274')) AND ((B.DATAAREAID=N'y31i') AND ((B.ITEMID=A.ITEMID) AND ((((((((((((((((((B.DIMENSION>' ') AND (B.DIMENSION2_>' ')) AND (B.DIMENSION3_>' ')) AND (B.DIMENSION4_>' ')) AND (B.DIMENSION5_>' ')) AND (B.DIMENSION6_>' ')) AND (B.DIMENSION7_>' ')) AND (B.DIMENSION8_>' ')) AND (B.DIMENSION9_>' ')) AND (B.DIMENSION10_>' ')) AND (B.DIMENSION11_>' ')) AND (B.DIMENSION12_>' ')) AND (B.DIMENSION13_>' ')) AND (B.DIMENSION14_>' ')) AND (B.DIMENSION15_>' ')) AND (B.DIMENSION16_>' ')) AND (B.DIMENSION17_>' ')) AND (B.DIMENSION18_>' ')))) GROUP BY B.DIMENSION12_ ORDER BY B.DIMENSION12_