после ряда экспериментов сработал вот такой вариант:
X++:
void clrRS(InventTransId _InventTransId){
InventMovement inventMovement;
InventUpd_Reservation inventUpdReservation;
InventTrans tIT;
InventOnHand inventOnHand;
InventUpd_Picked inventUpd_Picked;
InventDimParm inventDimParm;
InventDim InventDim;
SalesLine salesLine;
Common bf;
;
while select tIT where tIT.InventTransId==_InventTransId {
inventMovement = InventMovement::construct (tIT);
switch (tIT.StatusIssue){
case StatusIssue::ReservOrdered:
case StatusIssue::ReservPhysical:
InventDim=tIT.inventDim();
inventDimParm.initFromInventDim(InventDim);
if(inventMovement.childBuffer().RecId) bf=InventMovement.childBuffer(); else bf=inventMovement.buffer();
InventUpd_Reservation::updateReserveFromForm(bf, InventDim, inventDimParm, tIT.Qty);
break;
case StatusIssue::Picked:
inventOnHand = inventOnHand::newItemDim(tIT.ItemId,tIT.inventDim(),inventDimParm,false);
inventDimParm.initPhysicalUpdate(inventMovement.dimGroupId());
inventUpd_Picked = InventUpd_Picked::newParameters(inventMovement,tIT.inventDim(),inventDimParm,tIT.inventDim(),inventDimParm,
- tIT.Qty);
inventUpd_Picked.updateNow();
break;
}
}
}