БЛАНКСШАБЛОНОМ "Центр управления 'Налоги'";

btn_Exit     :Object;

Button01:Object; Button06:Object; Button11:Object; Button16:Object;
Button02:Object; Button07:Object; Button12:Object; Button17:Object;
Button03:Object; Button08:Object; Button13:Object; Button18:Object;
Button04:Object; Button09:Object; Button14:Object; Button19:Object;
Button05:Object; Button10:Object; Button15:Object; Button20:Object;

Label_01:Object; Label_06:Object; Label_11:Object; Label_16:Object;
Label_02:Object; Label_07:Object; Label_12:Object; Label_17:Object;
Label_03:Object; Label_08:Object; Label_13:Object; Label_18:Object;
Label_04:Object; Label_09:Object; Label_14:Object; Label_19:Object;
Label_05:Object; Label_10:Object; Label_15:Object; Label_20:Object;

var CrdFlg[] :Logical;
var BlnNam[] :String;
var CapTxt[] :String;
var LblTxt[] :String;

Proc btn_Exit_OnClick(Sender: String);
 Close;
end;

Proc btnOnClick(Sender:String); -- объекты при нажатии
var StopErr :Logical;
var Value   :String;
var Obj     :Object;
var num     :Integer;
 StopErr=False;
 if FindObject(Sender, Obj): 
   Value=asString(Obj.Caption);
   if Value<>"":
     num=SearchInArray(CapTxt, Value, False, 1);
     if num>0:
       if CrdFlg[num]:
         OpenCardFile(BlnNam[num]);
       else
         OpenBlank(BlnNam[num], False);
       fi;
     else
       StopErr=True;
     fi;
   else
     StopErr=True;
   fi;
 else
   StopErr=True;
 fi;
 if StopErr: Message("Бланк не найден!", mtError); fi;
end;

Proc ОчиститьИНИ;
 ClearVariable(CrdFlg);
 ClearVariable(BlnNam);
 ClearVariable(CapTxt);
 ClearVariable(LblTxt);
end;

Proc Инициализация;

 ОчиститьИНИ;

 CrdFlg[01]=False; 
 BlnNam[01]="ОТЧЕТЫ.НАЛОГИ.Н4.ИМУНАЛ_АВАНС";
 CapTxt[01]="Налог на имущество (аванс)";
 LblTxt[01]="Авансовые платежи по налогу на имущество";

 CrdFlg[02]=False;
 BlnNam[02]="ОТЧЕТЫ.НАЛОГИ.Н4.ИМУНАЛ";
 CapTxt[02]="Налог на имущество";
 LblTxt[02]="Декларация по налогу на имущество";

 CrdFlg[03]=False;
 BlnNam[03]="ОТЧЕТЫ.НАЛОГИ.СЕРВИС_НАЛИМУЩ";
 CapTxt[03]="Сервис - налог на имущество";
 LblTxt[03]="Загрузка (выгрузка) списка движимого имущества принятого к учету до 2013 года (помеченных признаком ДИ2013)";

end;

Proc Построение;
var num, ii, kk :Integer;
var Work :Logical;
var Obj :Object;
 kk=0;
 num=LengthOfArray(BlnNam);
 if num>0:
   for ii=1 to num do
     Work=False;
     if CrdFlg[ii]: Work=ExistsCardFile(BlnNam[ii]); else Work=BlankExist(BlnNam[ii]); fi;
     if Work: 
       kk=kk+1;
       if FindObject("Button"+Format("%.2d", kk), Obj): Obj.Visible=True; obj.Caption=CapTxt[ii]; fi;
       if FindObject("Label_"+Format("%.2d", kk), Obj): Obj.Visible=True; obj.Caption=LblTxt[ii]; fi;
     fi;
   od;
 fi;
 kk=kk+1;
 for ii=kk to 20 do
   if FindObject("Button"+Format("%.2d", ii), Obj): Obj.Visible=False; obj.Caption=""; fi;
   if FindObject("Label_"+Format("%.2d", ii), Obj): Obj.Visible=False; obj.Caption=""; fi;
 od;
end;

Proc Template_OnOpen(Create:Logical); -- при открытии шаблона
 ОчиститьИНИ;
 Инициализация;
 Построение;
end;

Proc Template_OnClose(Destroy:Logical); -- при закрытии шаблона
 ОчиститьИНИ;
end;

КОНЕЦ