X++:
str findSerialNumbersFromWMS(SnQueryTableTmp _SnQ)
{
WMSRoute WMSRoute;
SalesLine SalesLine;
InventSerialNumbers InventSerialNumbers;
ItemFreeTxt txt = "";
;
while select InventSerialNumbers
exists join WMSRoute
where (WMSRoute.WMSShippingId like InventSerialNumbers.DocId)
&& (WMSRoute.LineNum == InventSerialNumbers.DocLineNum)
&& (WMSRoute.ItemId == InventSerialNumbers.ItemId)
exists join SalesLine
where (SalesLine.RecId == WMSRoute.SalesLineRecId)
&& (SalesLine.ItemId == _SnQ.Itemid)
&& (SalesLine.SalesId == _SnQ.SalesId)
{
txt += ","+InventSerialNumbers.SerialId ;//+ " -> " + num2str(InventSerialNumbers.Qty,1,0,1,0) + "шт. ";
}
return txt;
}
Вот метод, который ищет серийники. С выводом их проблем нет. Все таки, я грешу на то, что не хватает длины строки. Тем более, что в отгрузку может попасть партия из 300 единиц одной номенклатуры и 500, что подразумевает более объемного формата строки.