В общем написал я вот такой скрипт
Код: Выделить всё
#param /linc:d:\viperprojekt\autoexec.vpp
#setcurenv "galnet" from 'c:\GAL810\exe\';
#define ComponentVersion
#include GALNET.CCM
#Component "L_SOPRDOC"
alter interface AKTREC;
tableEvent table SPSOPR
cmPick:
{
 var cmc:comp
 case curfield of
  #NAMEMCUSL:
  {
   if runinterface (L_MCU::GETMC,cmc) = cmdefault and cmc != 0
   {
   if spsopr.cmcusl = 0
   {
   spsopr.cmcusl:=cmc;
   insert current spsopr;
   }
    else
  {
    spsopr.cmcusl:=cmc;
    update current spsopr;
  }
   rereadrecord(#spsopr);
   stop;
   }
  } else if(inherited::HandleEvent(cmPick) = heOk)   {}
 end;
}
end;
end.  Попробовал с оператором RecordExists
Код: Выделить всё
#param /linc:d:\viperprojekt\autoexec.vpp
#setcurenv "galnet" from 'c:\GAL810\exe\';
#define ComponentVersion
#include GALNET.CCM
#Component "L_SOPRDOC"
alter interface AKTREC;
tableEvent table SPSOPR
cmPick:
{
 var cmc:comp
 case curfield of
  #NAMEMCUSL:
  {
   if runinterface (L_MCU::GETMC,cmc) = cmdefault and cmc != 0
if spsopr.cmcusl = 0
    {
   spsopr.cmcusl:=cmc;
  if RecordExists spsopr !=tsOK
    then insert current spsopr;
   else
   update current spsopr;
   rereadrecord(#spsopr);
   stop;
   }
  else if(inherited::HandleEvent(cmPick) = heOk)   {}
  }
 end;
}
end;
end.   Подскажите как можно доработать чтобы все было ок