Посмотрите в сторону использования методов
X++:
purchFormLetter.createFromLines(...);
purchFormLetter.parmLineList(...);
Пример в стандарте PurchInvoiceJournalCreate
X++:
protected void postPackingSlip()
{
PurchFormLetter purchFormLetter;
Num internalPackingSlipId;
if (!packingSlipUpdateList.empty())
{
internalPackingSlipId = NumberSeq::newGetNum(PurchParameters::numRefPurchPackingSlipId()).num();
purchFormLetter = PurchFormLetter::construct(DocumentStatus::PackingSlip);
purchFormLetter.createFromLines(true);
purchFormLetter.parmLineList(packingSlipUpdateList.pack());
purchFormLetter.update(purchTable, internalPackingSlipId, purchFormLetter.transDate(), PurchUpdate::ReceiveNow);
}
}
правда он используется только для строк прямых поставок, но ограничений по номеру покупок не увидел сходу, может быть просто по таким покупкам возможна обработка 1 в 1 и пачкой их не обработаешь.