-- Шаблон создан мастером бланков
-- 31.07.2002 10:32:26
--
БланкСШаблоном "Журнал регистрации расходных расписаний";

S1 :Section;
S2 :Section;
S3 :Section;
S4 :Section;
S5 :Section;
S6 :Section;
S7 :Section;
S8 :Section;
S9 :Section;
S10:Section;
S11:Section;
S12:Section;

Секция1:Section;
Секция2:Section;
Секция3:Section;

btnРасчет:Object;

fПечатьПарам:L;

ТипДок:I;
var ТипДок_:S=if(ТипДок=1,"поступивших","исходящих");
var hТипДок:I;

ТипДок2:I;
var ТипДок2_:S=if(ТипДок2=1,"(получатель)","(распорядитель)");
var hТипДок2:I;

--
var Упр:Handle;
var пп[]:I;
var НомРР[]:S;
var ДатаРР[]:D;
var НомРР_[]:S=НомРР[$]+" "+DateToString(ДатаРР[$]);
var ДатаВД[]:D;
var ДатаБанк[]:D;
var НаимПБС[]:S;
var КБК[]:S;
var ЗначПризн1[]:S;
var Ассигн1[]:N;
var Ассигн2[]:N;
var Ассигн3[]:N;
var ЛБО1[]:N;
var ЛБО2[]:N;
var ЛБО3[]:N;
var ИтогАссигн1:N;
var ИтогАссигн2:N;
var ИтогАссигн3:N;
var ИтогЛБО1:N;
var ИтогЛБО2:N;
var ИтогЛБО3:N;
var Ukey[]:Record;
----
ДН_РР:D;
ДК_РР:D;
ДН_ВД:D;
ДК_ВД:D;
ДН_БАНК:D;
ДК_БАНК:D;
НомерРР_Н:S;
НомерРР_К:S;
Получ:S;
Получ_:S;
БК:S;
КОСГУ:S;
Справ1:S;
НаимСправ1:S=if(Name_A(Справ1+".")="" or Name_A(Справ1+".")=" ",Справ1,Name_A(Справ1+"."));
Призн1:S;
Учитывать:I;
var Учитывать_:S=if(Учитывать=0,"Не определено",if(Учитывать=1,"Только учтеные",if(Учитывать=2,"Только не учтеные","?")));
ВБанк:I;
var ВБанк_:S=if(ВБанк=0,"Не определено",if(ВБанк=1,"Только отправленые",if(ВБанк=2,"Только не отправленые","?")));
Проводить:I;
var Проводить_:S=if(Проводить=0,"Не определено",if(Проводить=1,"Только проведенные",if(Проводить=2,"Только не проведенные","?")));
Аннулирован:I;
var Аннулирован_:S=if(Аннулирован=0,"Не определено",if(Аннулирован=1,"Только аннулированные",if(Аннулирован=2,"Только не аннулированные","?")));
Вид:I;
var Вид_:S=if(Вид=1:"Назначение Ассигнований или ЛБО"|Вид=2:"Отзыв Ассигнований или ЛБО"|True:"Не определен");
Секрет:I;
var Секрет_:S=if(Секрет=1:"Не секретно"|Секрет=2:"ДСП"|Секрет=3:"Секретно"|Секрет=4:"Совершенно секретно"|Секрет=5:"Особой важности"|True:"Не определено");

Гр5:I;
var Гр5_:I=5;
var Гр[]:i=if($=7:$+if(БК="" and КОСГУ="",-1,0)|$>7:$+if(Справ1="",-1,0)+if(БК="" and КОСГУ="",-1,0)|true:$);

var Buf[]:S;

var SelfCrd:S=if(ТипДок=1,"РПО_РР_ВХ","РПО_РР_ИСХ");
var SelfBln:S=if(ТипДок=1,"ДОКУМЕНТЫ.ЛБО.РР_ВХ","ДОКУМЕНТЫ.ЛБО.РР_ИСХ");
var SelfCfg:S="";
--
--Процедуры и функции -------------
Proc Очистить;
 ClearVariable(Упр);
 ClearVariable(пп);
 ClearVariable(НомРР);
 ClearVariable(ДатаРР);
 ClearVariable(ДатаВД);
 ClearVariable(ДатаБанк);
 ClearVariable(НаимПБС);
 ClearVariable(КБК);
 ClearVariable(ЗначПризн1);
 ClearVariable(Ассигн1);
 ClearVariable(Ассигн2);
 ClearVariable(Ассигн3);
 ClearVariable(ЛБО1);
 ClearVariable(ЛБО2);
 ClearVariable(ЛБО3);
 ClearVariable(Ukey);
 ClearVariable(ИтогАссигн1);
 ClearVariable(ИтогАссигн2);
 ClearVariable(ИтогАссигн3);
 ClearVariable(ИтогЛБО1);
 ClearVariable(ИтогЛБО2);
 ClearVariable(ИтогЛБО3);
 ClearVariable(Ukey);
end;

Proc Оформление;
var i,w5:I;
var Obj: Object;
 S10.Visible=not ТипДок=1;
 S11.Visible=not ТипДок=1;
 S12.Visible=not ТипДок=1;
 for i=3..12 do
  if FindObject("S"+Str(i),Obj):
     Obj.CanPrint=fПечатьПарам;
  fi;
 od;
 Секция1.Column(6,ColVisible,not БК="" or not КОСГУ="");
 Секция2.Column(6,ColVisible,not БК="" or not КОСГУ="");
 Секция3.Column(6,ColVisible,not БК="" or not КОСГУ="");
 Секция1.Column(7,ColVisible,not Справ1="");
 Секция2.Column(7,ColVisible,not Справ1="");
 Секция3.Column(7,ColVisible,not Справ1="");
 w5=470;
 if БК="" and КОСГУ="": w5=w5+380; fi;
 if Справ1="": w5=w5+290; fi;
 Секция1.Column(5,ColWidth,w5);
 Секция2.Column(5,ColWidth,w5);
 Секция3.Column(5,ColWidth,w5);
end;

Func РасчетРаздела(OA:I; aРаздел:S; aUKey:Record; Iter:I):L;
var n,nr,z:I;
var БК_,КОСГУ_,Призн_,МаскаПризн,FS:S;
var Сум1,Сум2,Сум3:N;
 FS=GetFilter(OA);
 if aРаздел="Ассигн": ClearVariable(Buf); fi;
 МаскаПризн="";
 if not Справ1="": МаскаПризн=if(Призн1="",Справ1+".*",Призн1); fi;
 nr=Records(OA);
 for n=1..nr do
  if not FS="":  --для ТипДок=1
     БК_="";
     КОСГУ_="";
     Призн_="";
     if not (БК="" and КОСГУ=""):
	БК_=GetFieldS(OA,n,"БК");
	КОСГУ_=GetFieldS(OA,n,"КОСГУ");
     fi;
     if not Справ1="":
	Призн_=GetFieldS(OA,n,"Призн");
	Призн_=Раб.Бюджет2005.ВзятьСловоИзНабораПоМаске(Призн_," ",МаскаПризн,"");
     fi;
     z=SearchInArray(Buf,БК_+"."+КОСГУ_+"#"+Призн_,True);
     if z=-1:
	z=InsertInArraySort(Buf,БК_+"."+КОСГУ_+"#"+Призн_);
	InsertFrame(Упр,Iter+z);
	КБК[Iter+z]=БК_+"."+КОСГУ_;
	ЗначПризн1[Iter+z]=Призн_;
	UKey[Iter+z]=aUKey;
     fi;
  fi;
  Сум1=GetFieldN(OA,n,"Сум1");
  Сум2=GetFieldN(OA,n,"Сум2");
  Сум3=GetFieldN(OA,n,"Сум3");
  if aРаздел="Ассигн":
     Ассигн1[Iter]=Ассигн1[Iter]+Сум1;
     Ассигн2[Iter]=Ассигн2[Iter]+Сум2;
     Ассигн3[Iter]=Ассигн3[Iter]+Сум3;
     if not FS="":
	Ассигн1[Iter+z]=Ассигн1[Iter+z]+Сум1;
	Ассигн2[Iter+z]=Ассигн2[Iter+z]+Сум2;
	Ассигн3[Iter+z]=Ассигн3[Iter+z]+Сум3;
     fi;
    |aРаздел="ЛБО":
     ЛБО1[Iter]=ЛБО1[Iter]+Сум1;
     ЛБО2[Iter]=ЛБО2[Iter]+Сум2;
     ЛБО3[Iter]=ЛБО3[Iter]+Сум3;
     if not FS="":
	ЛБО1[Iter+z]=ЛБО1[Iter+z]+Сум1;
	ЛБО2[Iter+z]=ЛБО2[Iter+z]+Сум2;
	ЛБО3[Iter+z]=ЛБО3[Iter+z]+Сум3;
     fi;
  fi;
 od;
 ^not nr=0;
end;

Proc Расчет;
var OWA,OA1,OA2,n,nr,Iter,i:I;
var F,F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,PrevКБК,КБК_,PrevПризн1,Призн1_,ПБС_Призн_:S;
var FL,FL0,FL1,FL2,FL3,FL4,FL5,FL6,FL7,FL8,FL9,FL10,FL11,:I;
var FS,FS1,FS2,FS3:S;
var Flag:L;
var UKey_:Record;
 if ДН_РР>ДК_РР and ДК_РР>1.1.100: Message("Конечная дата не может превышать начальную",mtError); Template.Field="ДК_РР"; Exit; fi;
 if ДН_ВД>ДК_ВД and ДК_ВД>1.1.100: Message("Конечная дата не может превышать начальную",mtError); Template.Field="ДК_ВД"; Exit; fi;
 if ДН_Банк>ДК_Банк and ДК_Банк>1.1.100: Message("Конечная дата не может превышать начальную",mtError); Template.Field="ДК_Банк"; Exit; fi;
 Очистить;
 --
  if ТипДок=1:
     F0=if(ТипДок2=1,"not","")+" РБС_ПБС";
    else
     F0=if(ТипДок2=1,"Создан=3","Создан<3");
  fi;
  FL0=Length(F0);
  if ДН_РР= 1.1.100 and ДК_РР= 1.1.100: F1="";
    |ДН_РР<>1.1.100 and ДК_РР= 1.1.100: F1="ДатаДок>="+DateToString(ДН_РР);
    |ДН_РР= 1.1.100 and ДК_РР<>1.1.100: F1="ДатаДок<="+DateToString(ДК_РР);
    |ДН_РР<>1.1.100 and ДК_РР<>1.1.100: F1="ДатаДок>="+DateToString(ДН_РР)+" and ДатаДок<="+DateToString(ДК_РР);
  fi;
  FL1=Length(F1);
  if ДН_Банк= 1.1.100 and ДК_Банк= 1.1.100: F2="";
    |ДН_Банк<>1.1.100 and ДК_Банк= 1.1.100: F2="ДатаОпер>="+DateToString(ДН_Банк);
    |ДН_Банк= 1.1.100 and ДК_Банк<>1.1.100: F2="ДатаОпер>1.1.100 and ДатаОпер<="+DateToString(ДК_Банк);
    |ДН_Банк<>1.1.100 and ДК_Банк<>1.1.100: F2="ДатаОпер>="+DateToString(ДН_Банк)+" and ДатаОпер<="+DateToString(ДК_Банк);
  fi;
  FL2=Length(F2);
  if НомерРР_Н=""  and НомерРР_К="" : F3="";
    |НомерРР_Н<>"" and НомерРР_К="" : F3="НомерДок>='"+НомерРР_Н+"'";
    |НомерРР_Н=""  and НомерРР_К<>"": F3="НомерДок<='"+НомерРР_К+"'";
    |НомерРР_Н<>"" and НомерРР_К<>"": F3="НомерДок>='"+НомерРР_Н+"' and НомерДок<='"+НомерРР_К+"'";
  fi;
  FL3=Length(F3);
  if Получ<>"": F4="ПБС="+Получ;
    |True: F4="";
  fi;
  FL4=Length(F4);
  if not ТипДок=1:
     if Проводить=1: F5="Проводить";
       |Проводить=2: F5="not Проводить";
       |True:	     F5="";
     fi;
     FL5=Length(F5);
     if Аннулирован=1: F6="Аннул";
       |Аннулирован=2: F6="not Аннул";
       |True	     : F6="";
     fi;
     FL6=Length(F6);
     if Проводить=1: F7="ВБанк";
       |Проводить=2: F7="not ВБанк";
       |True:	     F7="";
     fi;
     FL7=Length(F7);
     if Учитывать=1: F8="Учитывать";
       |Учитывать=2: F8="not Учитывать";
       |True:	     F8="";
     fi;
     FL8=Length(F8);
     if Вид=1: F9="not (АССИГН_ИТОГ_СУМ1<0 or АССИГН_ИТОГ_СУМ2<0 or АССИГН_ИТОГ_СУМ1<0 or ЛБО_ИТОГ_СУМ1<0 or ЛБО_ИТОГ_СУМ2<0 or ЛБО_ИТОГ_СУМ1<0)";
       |Вид=2: F9="(АССИГН_ИТОГ_СУМ1<0 or АССИГН_ИТОГ_СУМ2<0 or АССИГН_ИТОГ_СУМ1<0 or ЛБО_ИТОГ_СУМ1<0 or ЛБО_ИТОГ_СУМ2<0 or ЛБО_ИТОГ_СУМ1<0)";
       |True:  F9="";
     fi;
     FL9=Length(F9);
     if Секрет=0: F10=""; else F10="СЕКРЕТ="+Str(Секрет-1); fi;
     FL10=Length(F10);
  fi;
  if ДН_ВД= 1.1.100 and ДК_ВД= 1.1.100: F11="";
    |ДН_ВД<>1.1.100 and ДК_ВД= 1.1.100: F11="ДатаВД>="+DateToString(ДН_ВД);
    |ДН_ВД= 1.1.100 and ДК_ВД<>1.1.100: F11="ДатаВД>1.1.100 and ДатаВД<="+DateToString(ДК_ВД);
    |ДН_ВД<>1.1.100 and ДК_ВД<>1.1.100: F11="ДатаВД>="+DateToString(ДН_ВД)+" and ДатаВД<="+DateToString(ДК_ВД);
  fi;
  FL11=Length(F11);
 --
 F=F0;
 F=Раб.Бюджет2005.Объединить(F,F1," and ");
 F=Раб.Бюджет2005.Объединить(F,F2," and ");
 F=Раб.Бюджет2005.Объединить(F,F3," and ");
 F=Раб.Бюджет2005.Объединить(F,F4," and ");
 if not ТипДок=1:
    F=Раб.Бюджет2005.Объединить(F,F5," and ");
    F=Раб.Бюджет2005.Объединить(F,F6," and ");
    F=Раб.Бюджет2005.Объединить(F,F7," and ");
    F=Раб.Бюджет2005.Объединить(F,F8," and ");
    F=Раб.Бюджет2005.Объединить(F,F9," and ");
    F=Раб.Бюджет2005.Объединить(F,F10," and ");
 fi;
 F=Раб.Бюджет2005.Объединить(F,F11," and ");
 if FL0+FL1+FL+FL3+FL4+FL5+FL6+FL7+FL8+FL9+FL10+FL11>Length(F): Message("Слишком сложное условие отбора",mtError); Exit; fi;
 --
 if БК<>"": FS1="Match(БК,'"+БК+"')";
   |True   : FS1="";
 fi;
 if Справ1<>"" and Призн1= "": FS2="Match(ПРИЗН,'*"+Справ1+".*')";
   |Справ1<>"" and Призн1<>"": FS2="Match(ПРИЗН,'*"+Призн1+"*')";
   |True		     : FS2="";
 fi;
 if КОСГУ<>"": FS3="Match(КОСГУ,'"+КОСГУ+"')";
   |True     : FS3="";
 fi;
 FS=FS1;
 FS=Раб.Бюджет2005.Объединить(FS,FS2," and ");
 FS=Раб.Бюджет2005.Объединить(FS,FS3," and ");
 --
 Flag=True;
 i=0;
 OWA=OpenWorkArea(SelfCrd,"ДАТАДОК;НОМЕРДОК",F);
 Try
  nr=Records(OWA);
  ShowProgress(Nr,"Расчет....");
  for n=1..Nr do
   ProgressPos(n);
   if n=1 and (not FS="" or ТипДок=1):
      OA1=OpenArray(OWA,n,"АССИГН","БК;КОСГУ;ПРИЗН",FS);
      OA2=OpenArray(OWA,n,"ЛБО","БК;КОСГУ;ПРИЗН",FS);
   fi;
   if Flag: InsertFrame(Упр,Упр+1); fi;
   Iter=Упр;
   UKey_=GetRecordKey(OWA,n);
   Flag=False;
   if FS="" and not ТипДок=1:
      Ассигн1[Iter]=GetFieldN(OWA,n,"АССИГН_ИТОГ_СУМ1");
      Ассигн2[Iter]=GetFieldN(OWA,n,"АССИГН_ИТОГ_СУМ2");
      Ассигн3[Iter]=GetFieldN(OWA,n,"АССИГН_ИТОГ_СУМ3");
      ЛБО1[Iter]=GetFieldN(OWA,n,"ЛБО_ИТОГ_СУМ1");
      ЛБО2[Iter]=GetFieldN(OWA,n,"ЛБО_ИТОГ_СУМ2");
      ЛБО3[Iter]=GetFieldN(OWA,n,"ЛБО_ИТОГ_СУМ3");
      Flag=True;
     else
      if РасчетРаздела(OA1,"Ассигн",UKey_,Iter): Flag=True; fi;
      if РасчетРаздела(OA2,"ЛБО",UKey_,Iter): Flag=True; fi;
      if Flag and not FS="":
	 if not Справ1="": ЗначПризн1[Iter]="ИТОГО:";
	   |not БК="" or not КОСГУ="": КБК[Iter]="ИТОГО:";
	 fi;
      fi;
   fi;
   if Flag:
      i=i+1;
      пп[Iter]=i;
      UKey[Iter]=UKey_;
      НомРР[Iter]=GetFieldS(OWA,n,"НОМЕРДОК");
      ДатаРР[Iter]=GetFieldD(OWA,n,"ДАТАДОК");
      ДатаВД[Iter]=GetFieldD(OWA,n,"ДАТАВД");
      if GetFieldL(OWA,n,"ПРОВОДИТЬ"): ДатаБанк[Iter]=GetFieldD(OWA,n,"ДАТАОПЕР"); fi;
      if not GetFieldR(OWA,n,"ПБС")=nil:
	 if ТипДок=1:
	    ПБС_Призн_=CardFileRecSign("Контрагент","Признак","ПБС",GetFieldR(OWA,n,"ПБС"));
	   else
	    ПБС_Призн_=GetFieldS(OWA,n,"ПБС_ПРИЗН");
	 fi;
	 if Гр5=0:   НаимПБС[Iter]=ПБС_Призн_;
	   |Гр5=1:   НаимПБС[Iter]=GetFieldS(OWA,n,"ПБС.КорИмя");
	   |Гр5=2:   НаимПБС[Iter]=GetFieldS(OWA,n,"ПБС.КорИмя")+" ("+ПБС_Призн_+")";
	   |Гр5=3:   НаимПБС[Iter]=ПБС_Призн_+" ("+GetFieldS(OWA,n,"ПБС.КорИмя")+")";
	 fi;
      fi;
      ИтогАссигн1=ИтогАссигн1+Ассигн1[Iter];
      ИтогАссигн2=ИтогАссигн2+Ассигн2[Iter];
      ИтогАссигн3=ИтогАссигн3+Ассигн3[Iter];
      ИтогЛБО1=ИтогЛБО1+ЛБО1[Iter];
      ИтогЛБО2=ИтогЛБО2+ЛБО2[Iter];
      ИтогЛБО3=ИтогЛБО3+ЛБО3[Iter];
   fi;
 od;
 Finally
  CloseWorkArea(OWA);
  CloseProgress;
 end;
 Message("Расчет завершен");
end;
--Процедуры и функции -------------
--
--
--Обработчики событий полей шаблона-----
Func ТипДок_OnEnter(FieldName: String; Iter: Integer): logical;
var n:i;
 ClearVariable(Buf);
 FieldName=SubStr(FieldName,1,Length(FieldName)-1);
 if FieldName="ТипДок":
    Buf[1]="Исходящие расходные расписания";
    Buf[2]="Поступившие расходные расписания";
   else
    Buf[1]="Распорядитель бюджетных средств";
    Buf[2]="Получатель бюджетных средств";
 fi;
 n=Alternate("Выберите тип документа",Buf,-1,GetVariableI(FieldName)+1,12);
 if not n=0:
    PutVariableI(FieldName,n-1);
    Очистить;
    Оформление;
 fi;
 Return False;
end;

Proc Field_onExit (Field:S; Iter:I);
 Очистить;
 Оформление;
end;

Func Д_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var tmp:d;
var FieldSender:S;
 Template.HideEditor(False);
 FieldSender=AsString(Template.Field);
 tmp=Calendar;
 if tmp=1.1.100: ^Cur; fi;
 PutVariableD(FieldSender,tmp);
 Очистить;
 ^Cur;
end;

Func Получ_onEnter (Field:S; Iter:I):L;
var Rec:Record;
 rec=Раб.Документы.ВыборСФильтром("КОНТРАГЕНТ","КорИмя","РПО_ПБС");
 if Rec=nil: ^False; fi;
 Получ=RecordToString(Rec);
 Получ_=GetCardFieldS("КОНТРАГЕНТ",StringToRecord(Получ),"КорИмя");
 Очистить;
 ^False;
end;

Proc Получ_onExit (Field:S; Iter:I);
 Получ="";
 Очистить;
end;

Func БК_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var tmp:s;
 Template.HideEditor(False);
 БК=Раб.КБК.ВыбратьМаскуКБК("ФКР",Раб.Бюджет2005.МаскаСчетаФКР+"&(*.1.501.??."+if(КОСГУ="","*",КОСГУ)+")",БК,False);
 Оформление;
 Очистить;
 ^Cur;
end;

Func КОСГУ_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var tmp:s;
 Template.HideEditor(False);
 КОСГУ=Раб.КБК.Список(if(БК="","*",БК)+".1.501.??.*","ФКР","КОСГУ");
 Оформление;
 Очистить;
 ^Cur;
end;

Func Справ1_OnEnter(FieldName: String; Iter: Integer): logical;
var tmp:S;
 tmp=Раб.Бюджет2005.СписокСправ("*.1.501.??.*",0,"ПБС.*|ЛС.*");
 tmp=AnaElection(tmp,True,False,Справ1);
 if tmp="": ^False; fi;
 Справ1=tmp;
 Оформление;
 Очистить;
 ^False;
end;

Proc Справ1_OnExit(FieldName: String; Iter: Integer);
 Призн1="";
 Оформление;
 Очистить;
end;

Func Призн1_OnEnter(FieldName: String; Iter: Integer): logical;
var tmp,Mask:s;
 if Справ1="": Mask=Раб.Бюджет2005.СписокСправ("*.1.501.??.*",0,"ПБС.*|ЛС.*"); else Mask=Справ1+".*"; fi;
 tmp=AnaElection(Mask);
 if tmp="": ^False; fi;
 Призн1=tmp;
 Справ1=SubStr(Призн1,1,Pos(".",Призн1)-1);
 Оформление;
 Очистить;
 ^False;
end;

Func Учитывать_onEnter (Field:S; Iter:I):L;
var n:i;
 ClearVariable(Buf);
 Buf[1]="Все расходные расписания";
 Buf[2]="Только учтеные";
 Buf[3]="Только не учтеные";
 n=Alternate("Режим показа",Buf,-1,Учитывать+1,12);
 if n=0: ^False; fi;
 Учитывать=n-1;
 Очистить;
 ^False;
end;

Func ВБанк_onEnter (Field:S; Iter:I):L;
var n:i;
 ClearVariable(Buf);
 Buf[1]="Все расходные расписания";
 Buf[2]="Только отправленые";
 Buf[3]="Только не отправленые";
 n=Alternate("Режим показа",Buf,-1,ВБанк+1,12);
 if n=0: ^False; fi;
 ВБанк=n-1;
 Очистить;
 ^False;
end;

Func Проводить_onEnter (Field:S; Iter:I):L;
var n:i;
 ClearVariable(Buf);
 Buf[1]="Все расходные расписания";
 Buf[2]="Только проведенные";
 Buf[3]="Только не проведенные";
 n=Alternate("Режим показа",Buf,-1,Проводить+1,12);
 if n=0: ^False; fi;
 Проводить=n-1;
 Очистить;
 ^False;
end;

Func Аннулирован_OnEnter(FieldName: String; Iter: Integer): logical;
var n:i;
 ClearVariable(Buf);
 Buf[1]="Все расходные расписания";
 Buf[2]="Только аннулированные";
 Buf[3]="Только не аннулированные";
 n=Alternate("Режим показа",Buf,-1,Аннулирован+1,12);
 if n=0: ^False; fi;
 Аннулирован=n-1;
 Очистить;
 ^False;
end;

Func Вид_onEnter(FieldName: String; Iter: Integer): logical;
var n:i;
 ClearVariable(Buf);
 Buf[1]="Все расходные расписания";
 Buf[2]="Только назначение Ассигнований или ЛБО";
 Buf[3]="Только отзыв Ассигнований или ЛБО";
 n=Alternate("Режим показа",Buf,-1,Вид+1,12);
 if n=0: ^False; fi;
 Вид=n-1;
 Очистить;
 Return False;
end;

Func Секрет_onEnter(FieldName: String; Iter: Integer): logical;
var n:i;
 ClearVariable(Buf);
 Buf[1]="Не определено";
 Buf[2]="Не секретно";
 Buf[3]="ДСП";
 Buf[4]="Секретно";
 Buf[5]="Совершенно секретно";
 Buf[6]="Особой важности";
 n=Alternate("Режим показа",Buf,-1,Секрет+1,12);
 if n=0: ^False; fi;
 n=n-1;
 Секрет=n;
 Очистить;
 Return False;
end;

Func Гр5_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Гр5_,n:I;
 Template.HideEditor(False);
 ClearVariable(Buf);
 Гр5_=Гр5;
 Buf[1]="Аналитический признак";
 Buf[2]="Наименование";
 Buf[3]="Наименование (Аналитический признак)";
 Buf[4]="Аналитический признак (Наименование)";
 n=Alternate("Режим показа элемента колонки",Buf,-1,Гр5+1,12);
 if n=0: ^Cur; fi;
 Гр5=n-1;
 if not Гр5_=Гр5: If EnqOkCancel("Для вступления изменений в силу необходимо выполнить расчет")=cmOk: Расчет; fi; fi;
 Return Cur;
end;

Func ВызовРР (Field:S; Iter:I):l;
 OpenBlank(SelfBln,True,UKey[Iter]);
 ^False;
end;
--Обработчики событий полей шаблона-----
--
--Обработчики событий объектов шаблона-----
Proc btnРасчет_onClick(Obj:S);
 Расчет;
end;

Proc btnПечать_OnClick(Sender: String);
 Раб.Настр_Печать.Prn("","","RPO_Журнал_Рег_РР_000.cfg","",1);
end;

Proc cbПечатьПарам_OnChange(Sender: String);
 Оформление;
end;
--Обработчики событий объектов шаблона-----
--
--
--Обработчики событий шаблона -----
Proc AfterOpen(Destroy: Logical);
 if not hТипДок=ТипДок or not hТипДок2=ТипДок2:
    Очистить;
 fi;
 Оформление;
end;

Proc Template_OnOpen(Create: Logical);
 Раб.Настр_Печать.Cfg("","RPO_Журнал_Рег_РР_000.cfg");
end;

Proc OnClose(Destroy: Logical);
 hТипДок=ТипДок;
 hТипДок2=ТипДок2;
end;
--Обработчики событий шаблона -----
--




Конец
