Итак, вопрос обновления спецификации решён. Событие cmUpdateRecord берётся из M_UP::NAKL501.editsopr, всё модифицировалось и обновилось.
Далее, хотелось бы понять, как добавить объект (колонку, кнопку) в "дочерний" интерфейс? На событие cmInit реакции нет. Пытался также связку событий построить по документации, но непонятно, как делать в "дочернем" alter interface, в частности,  как привязать его к объектному интерфейсу.
Может, у кого- нить есть пример по alter interface NAKL501 c добавлением элементов? Сейчас так:
Код: Выделить всё
#Component "M_UP"
#include Galnet.inc
end;
var cSpSoprNrec, cKatSoprNrec     : comp;
    scur_obj, scont_inf, sObjType : string;
    lcur_obj, MyFieldNum          : longint;
objInterface Emb_Events;
  event procedure PosChanged (nrec : comp);
  procedure pPrint;
end;
alter interface IMNFINTRF;
HandleEvent  //События главного окна
cmTableChanged:
{
    var ww_nrec:comp;
    ww_nrec:=GetNotificationInfoPtr
    case ww_nrec of
    999998: {message('Запись в спецификации обновлена!');}
    999999: {message('SELECTNAKL ==> lcur_obj = '+lcur_obj);}
    end;
}
end;
end.
alter interface NAKL501;
function _Zaknar: string; forward;
create view
(ZakNar) as select _Zaknar;
function _Zaknar: string;
{
  _Zaknar:= '_ZakNar';
}
HandleEvent
cmInit:
{
    if inherited::handleEvent(cmInit) != heOk then {abort; exit;}
    if (cfsSetCurrentContainer(cfsGetCurrentContainerSelf) = cfOk)           //cfsGetCurrentContainerSelf
      {
        if cfsGetObjInfo('SELECTNAKL', scur_Obj, lcur_obj, scont_inf, sObjType) = cfOk then
           {
           }
        Notify(cmInit, longint(999999));
        Message('NAKL501: '+cfsGetCurrentContainerSelf+' ==> Ok!');
        cfsCreateObject('Column', 'SELECTNAKL', 'ZakNar', FALSE, MyFieldNum);
        cfsSetProp ( MyFieldNum, cfpVisible,TRUE);
        cfsSetProp ( MyFieldNum, cfpTitle, 'Заказ-наряд');
        cfsSetProp ( MyFieldNum, cfpFieldName,'ZakNarТекст');
        cfsSetProp ( MyFieldNum, cfpMaxLen, 30 );
        cfsSetProp ( MyFieldNum, cfpProtect,true);
      }
 }
end;
TableEvent Table spsopr
cmPositionChanged : {PosChanged (katsopr.nrec);}
end;
window editsopr;
TableEvent Table spsopr
cmUpdateRecord:
{
  if inherited::handleEvent(cmUpdateRecord) != heOk then {abort; exit;}
  if isvalid(#spsopr) then
  {
    cSpSoprNrec:= spsopr.nrec
    Notify(cmTableChanged, longint(999998));
    spsopr.kolopl:= 1111;
    spsopr.kolfact:= 1111;
    if update current spsopr = tsOk rescanpanel(#spsopr);
  }
}
end;
end;
end.