--#УСЛДОППРИЗН
--#ПОЛЯИЗДОППРИЗН



-- Шаблон создан мастером бланков
-- 08.07.2004 18:40:54
--
БланкСШаблоном "Регистрация документов", Редактор РПО_ДОК;
ИМЯКРТ:s='РПО_ДОК';
поддок_:s=поддок.документ;
КОДСПР_:s=Name_A(КОДСПР+'.');
ДОППРИЗН_:s=Name_A(ДОППРИЗН);
st[]:s;
var кн:s='';
2-- _Обработчики шаблона
2-- _Обработчики событий полей, объектов и шаблона

2-- _Обработчики полей
func ПриВходе(s:s;i:i):l;
var ss:s;
var ii:i;
var rr:record;
 if s='поддок_':rr=OpenCardFile(ИМЯКРТ,'поддок='+RecordToString(поддок));
  | true:^true;
 fi;
^false;
end;
2-- _Обработчики объектов
proc ПриНажатии(s:s);
var ii:i;
var ss:s;
 if s='КнСоздатьИмя'	:ДОКУМЕНТ=виддок.документ+' №'+НОМЕР+' от '+ДатуВстроку(ДАТАРЕГ);
  | s='КнСоздатьПризнак':
    if КОДСПР='':
      ii=КоличествоСлов(виддок.признак,'.');
      ss=ВыделитьСлово(ii,виддок.признак,'.')+'.';
     | true:ss='';
    fi;
    if ДОППРИЗН_<>' ':--обработка доп поля по признаку
       if ПОЛЕДОППРИЗН<>'':
	  ss=РАБ.НФА.B01.ab(ss,'.',ПОЛЕДОППРИЗН)+'.';
       fi;
    fi;
    ss=Str(год)+'.'+ss+НОМЕР+'_от_'+SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2);
    if Name_A(КОДСПР+'.'+ss)=' ':
       ПРИЗНАК=ss;
    fi;

--    ss=Str(год)+'.'+ss+НОМЕР+'_от_'+SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2);
--    if Name_A(Str(год)+'.'+ss+НОМЕР+'_от_'+SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2))=' ':
--	      ПРИЗНАК =Str(год)+'.'+ss+'.'+НОМЕР+'_от_' 	   +SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2);
--     | true:ПРИЗНАК =Str(год)+'.'+виддок.признак+'.'+НОМЕР+'_от_'+SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2);
--    fi;

  | s='КнСоздатьНомер':
    if виддок.УчетГода:ss='ДАТАРЕГ'; else ss='';fi;
    НОМЕР=РАБ.НФА.B01.NextStrY(ИМЯКРТ,'ВидДОК='+RecordToString(ВидДОК),ss,'НОМЕР','0',5,Год);
  | s='КнВыборДатыРег':ДАТАРЕГ=Календарь(ДАТАРЕГ);год=year(ДАТАРЕГ);
  | s='КнПодДок':поддок=OpenCardFile(ИМЯКРТ);
  | true:exit;
 fi;
end;

func ПриПроверкеД(s:s;i:i;v:d):l;
 if s='ДАТАРЕГ':if год<>Year(v):год=Year(v);fi;
  | true:^false;
 fi;
 ^true;
end;
func ПриПроверкеЧ(s:s;i:i;v:n):l;
 ^true;
end;
func ПриПроверкеС(s:s;i:i;v:s):l;
 var ss:s;
 var p:i;
 ^true;
end;
proc виддокпризнак_ПриВыходе(Поле: Строка; Итер: Целое);
     if КОДСПР<>виддок.КОДСПР:КОДСПР=виддок.КОДСПР;fi;
end;

proc ШаблонПриСчитывании;
var s :STRING;
var i :i;
if КОДСПР<>виддок.КОДСПР:КОДСПР=виддок.КОДСПР;fi;

--ClsArray;
--  if Номер=0:
--   НомерБум=РАБ.НФА.B01.NextStr(ИМЯКРТ,'','ДАТОПЕР','НомерБум','0',5);
--   Номер=int(НомерБум);
--   ClearVariable(Позиции);
--   while позиции<>20 do
--    InsertFrame(Позиции,Позиции+1);
--   end;
--  fi;
end;

proc ШаблонПриОткрытии(l:l);
end;
func ШаблонПриПроверке:l;
if год<>Year(датарег):год=Year(датарег);fi;
if КОДСПР<>виддок.КОДСПР:КОДСПР=виддок.КОДСПР;fi;

^true;
end;
proc ШаблонПриОтмене;
end;
proc ШаблонПриЗакрытии(l:l);
if КОДСПР<>виддок.КОДСПР:КОДСПР=виддок.КОДСПР;fi;

end;

Функ кн_ПриВходе(Поле: Строка; Итер: Целое): Логич;
var ii,j:i;
var ss,s,s1:s;
 шаблон.столбец=AsInteger(шаблон.столбец)+1;
 s=AsString(шаблон.поле);
 if s='ДОКУМЕНТ'    :ДОКУМЕНТ=виддок.документ+' №'+НОМЕРДОК+' от '+ДатуВстроку(ДАТАРЕГ)+if(ДОППРИЗН_<>' ','('+ДОППРИЗН_+')','') ;
  | s='ПРИЗНАК':
    if КОДСПР='':
      ii=КоличествоСлов(виддок.признак,'.');
      ss=ВыделитьСлово(ii,виддок.признак,'.')+'.';
     | true:ss='';
    fi;
    if ДОППРИЗН_<>' ':--обработка доп поля по признаку
       if ПОЛЕДОППРИЗН<>'':
	  ss=РАБ.НФА.B01.ab(ss,'.',ПОЛЕДОППРИЗН)+'.';
       fi;
    fi;
    ss=Str(год)+'.'+ss+НОМЕР+'_от_'+SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2);
    if Name_A(ss)=' ':
       ПРИЗНАК=ss;
    fi;

--    ss=Str(год)+'.'+ss+НОМЕР+'_от_'+SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2);
--    if Name_A(Str(год)+'.'+ss+НОМЕР+'_от_'+SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2))=' ':
--	      ПРИЗНАК =Str(год)+'.'+ss+'.'+НОМЕР+'_от_' 	   +SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2);
--     | true:ПРИЗНАК =Str(год)+'.'+виддок.признак+'.'+НОМЕР+'_от_'+SubStr(ДатуВстроку(ДАТАРЕГ),1,2)+'_'+SubStr(ДатуВстроку(ДАТАРЕГ),4,2);
--    fi;

  | s='НОМЕР':
    if виддок.УчетГода:ss='ДАТАРЕГ'; else ss='';fi;
    НОМЕР=РАБ.НФА.B01.NextStrY(ИМЯКРТ,'ВидДОК='+RecordToString(ВидДОК),ss,'НОМЕР','0',5,Год);
  | s='ДАТАРЕГ':ДАТАРЕГ=Календарь(ДАТАРЕГ);год=year(ДАТАРЕГ);
  | s='поддок_':поддок=OpenCardFile(ИМЯКРТ);
  | s='виддок.признак':виддок=OpenCardFile('РПО_ВИДДОК','pos("ДОКУМЕНТЫ.",ПРИЗНАК)=1');
    if КОДСПР<>виддок.КОДСПР:КОДСПР=виддок.КОДСПР;fi;

  | s='ДОППРИЗН':ДОППРИЗН=ВыборПризнака(ВидДОК.УСЛДОППРИЗН);
  | s='ПОЛЕДОППРИЗН':--ПОЛЕДОППРИЗН=ВидДОК.ПОЛЯИЗДОППРИЗН;
    s=ВыделитьСлово(2,ВидДОК.ПОЛЯИЗДОППРИЗН,'@');
    ii=количествослов(s,'|');
    ss='';
    for j=1..ii do
      ss=trim(ВыделитьСлово(j,s,'|'));
      s1=раб.нфа.B01.2ПолеПоПризнакуС0(ДОППРИЗН,ss);
--	if s1<>'':ss=ss+'_'+s1;break;
      if s1<>'':ss=s1;break;
       | true:ss='';
      fi;
    od;
    if ss<>'ПОЛЕДОППРИЗН':ПОЛЕДОППРИЗН=ss;fi;
 fi;

  ^false  ;
end;


Конец
