Показать сообщение отдельно
Старый 25.05.2007, 10:27   #1  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
после ряда экспериментов сработал вот такой вариант:
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;
    }
   }

}