БЛАНКСШАБЛОНОМ "Процедуры и функций для актов НФА", РЕДАКТОР РПО_Акты_УНФА;
-- Редакция ЗАО "Агентство 'Русспромоценка'"
2-- Переменные
var NewREC	:L;
var FieldSender  :S;
var Buf[]	 :S;
var БланкИмя	 :S;
var КлассФормыДок:S;
var КодФормыДок  :S;
var NewRECbln	 :S;
2-- События шаблона
Proc Template_OnOpen_(Create:L); -- _При открытии шаблона
Close;
end;
Proc Template_OnOpen(Create:L); -- _При открытии шаблона
var strCFG,ss:S;
 БланкИмя=РАБ.НФА.B01.БланкИмя;
 ss=ВыделитьСлово(КоличествоСлов(БланкИмя,'.'),БланкИмя,'.');
 КлассФормыДок=ВыделитьСлово(1,ss,'_')+'_';
 КодФормыДок  =ВыделитьСлово(2,ss,'_');
 PutVariables(БланкИмя+'.БланкИмя',БланкИмя);
 PutVariables(БланкИмя+'.КлассФормыДок',КлассФормыДок);
 PutVariables(БланкИмя+'.КодФормыДок',КодФормыДок);
 strCFG="RPO_"+КодФормыДок+"_000.cfg";
 if РАБ.НАСТР_ПЕЧАТЬ.ExistCfg(strCFG)=False: РАБ.НАСТР_ПЕЧАТЬ.CreateCfg(PlanVar("НФА")+"\Настройки\", strCFG); fi;
end;
--
Proc Template_onClose(Destroy:L); -- _При закытии бланка
 NewRECbln='';
end;
--
Proc Template_onRead; -- _При считывании шаблона
var tmp, StrBlnNew, StrBlnCur :S;
var n :I;
 ClearVariable(Buf);
 БланкИмя=РАБ.НФА.B01.БланкИмя;
 tmp=ВыделитьСлово(КоличествоСлов(БланкИмя,'.'),БланкИмя,'.');
 КлассФормыДок=ВыделитьСлово(1,tmp,'_')+'_';
 КодФормыДок  =ВыделитьСлово(2,tmp,'_');
 tmp=КлассФормыДок+КодФормыДок;
-- trace(recordtostring(current));
-- if recordtostring(current)='{11}':trace(tmp);fi;

 if not(NewREC) :
   if КодФормы='':КодФормы=tmp;fi;
   if pos(up(tmp),up(КодФормы))<>1 :
--   if tmp<>КодФормы :
     StrBlnNew=ВыделитьСлова(1,КоличествоСлов(БланкИмя,'.')-1,БланкИмя,'.')+'.'+ВыделитьСлова(1,2,КодФормы,"_");
     StrBlnCur=БланкИмя;
     if IsBlankOpen(StrBlnNew): 
     Close(StrBlnNew);
     fi;
     OpenBlank(StrBlnNew, False, Current);
     if IsBlankOpen(StrBlnCur): Close(StrBlnCur);fi;
   else
   fi;
 else
  if NewRECbln='':
    n=ВзятьИменаБланков('НФА.ДОКУМЕНТЫ.АКТЫ.ОКУД_*',Buf,true,true,false);
    n=Alternate("Выберите бланк акта для создания новой записи", Buf, -1);
    if n<>0:
      StrBlnNew=ВыделитьСлово(1,Buf[n],' ');
      КодФормы=ВыделитьСлово(КоличествоСлов(StrBlnNew,'.'),StrBlnNew,'.');
      EditorApply;
      if КодФормы=tmp: Exit; fi;
      if IsBlankOpen(StrBlnNew): Close(StrBlnNew); fi;
      OpenBlank(StrBlnNew, False, Current);
      Close;
     | True: EditorCancel;
    fi;
   | true:
      StrBlnNew=NewRECbln;
      КодФормы=ВыделитьСлово(КоличествоСлов(NewRECbln,'.'),NewRECbln,'.');
      EditorApply;
      if КодФормы=tmp: Exit; fi;
      if IsBlankOpen(StrBlnNew): Close(StrBlnNew); fi;
      OpenBlank(StrBlnNew, False, Current);
      Close;
  fi;
 fi;
 if КодФормыДок="0306033": ВыполнитьПроцедуру("Iter_Validation", 0); else  ВыполнитьПроцедуру('НачальнаяИтерация'); fi;
end;

Func Подпись_OnValidateS(Field:S; Iter:I; Value:S): L;
 ^Раб.ВСПОМ.ПОДПИСИ_СЕГОДНЯ.Подпись_SaveS(Field,Value);
end;

Func Подпись_OnValidateD(Field:S; Iter:I; Value:d): L;
 ^Раб.ВСПОМ.ПОДПИСИ_СЕГОДНЯ.Подпись_SaveD(Field,Value);
end;

Func Подпись_OnValidateI(Field:S; Iter:I; Value:I): L;
 ^Раб.ВСПОМ.ПОДПИСИ_СЕГОДНЯ.Подпись_SaveI(Field,Value);
end;

КОНЕЦ