Выполните у себя такое вот задание - только убедитесь что номенклатура, которая указана в макросе выше, есть в остатках на каком-то складе.
X++:
static void testIfCursorBuffer(Args _args)
{
InventSum inventSum;
InventDim inventDim;
#define.ItemId("ESB-009")
;
select inventDim
group by InventLocationId
join sum(AvailPhysical) from inventSum
group by ItemId
where inventSum.ItemId == #ItemId &&
inventDim.inventDimId == inventSum.InventDimId;
print inventSum.AvailPhysical;
print inventDim.InventLocationId;
if (inventSum)
print "InventSum";
if (inventDim)
print "InventDim";
pause;
select sum(AvailPhysical) from inventSum
group by ItemId
where inventSum.ItemId == #ItemId
join inventDim
group by InventLocationId
where inventDim.inventDimId == inventSum.InventDimId;
print inventSum.AvailPhysical;
print inventDim.InventLocationId;
if (inventSum)
print "InventSum";
if (inventDim)
print "InventDim";
pause;
}
Результаты получаются такие:
1) before first pause:
4500
MW
InventDim
2) before second pause:
4500
MW
InventSum
Кто что думает про такое поведение?
В смысле про то, что вторая запись из join является не-проинициализированной с точки зрения АХ?