-- Шаблон создан мастером бланков
-- 28.11.2008 15:39:22
--
БланкСШаблоном "Заявка на кассовый расход сокращенная (форма для печати)", Редактор РПО_ЗАЯВКА_КР;

var f13н:L=(ДатаДок>=1.1.2011);

var FlagInit:L;

var fСкрытьРаздел:L=[True];
var fУтвДок:L;
var fДобГородВБанк:L=[True];
var ДесятРазд:S=["."];
var fКлиентКорИмя:L;

var КолКопий:I=[2];

var Клиент:S=if(fКлиентКорИмя,Рекв.КорИмя,Рекв.ПолнИмя+Рекв.РПО_ПолнИмя2);
var КБП:S=if(Банк.РПО_КодБюдж="1",Рекв.РПО_КБП,"");
var НаимБюдж:S=if(Банк.РПО_КодБюдж="6" and ver>=7,"",Банк.РПО_НаимБюдж+Банк.РПО_НаимБюдж2);

var Осн_ДокВид_:S=if(Осн_ДокСкрывать,"",Осн_ДокВид);
var Осн_ДокНом_:S=if(Осн_ДокСкрывать,"",Осн_ДокНом);
var Осн_ДокДат_:D=if(Осн_ДокСкрывать,1.1.100,Осн_ДокДат);

var Осн_ДокВид2_:S=if(Осн_Док[1].Скрывать,"",Осн_Док[1].Вид);
var Осн_ДокНом2_:S=if(Осн_Док[1].Скрывать,"",Осн_Док[1].Ном);
var Осн_ДокДат2_:D=if(Осн_Док[1].Скрывать,1.1.100,Осн_Док[1].Дат);

var Гр1_3:I=3+if(ver<12,-1,0);
var Гр1_4:I=4+if(ver<12,-1,0);
var Гр1_5:I=5+if(ver<12,-1,0);
var Гр1_6:I=6+if(ver<12,-1,0);
var Гр1_7:I=7+if(ver<12,-1,0);

var Док_ВидПл_:S=if(Док_ВидПл="0":""|Док_ВидПл="1":"почтой"|Док_ВидПл="2":"телеграфом"|Док_ВидПл="3":"электронно"|Док_ВидПл="4":"срочно"|true:"???");

var РеквП_:S=if(БанкП=nil,РеквП.КорИмя,БанкП.БанкИмя);
var БанкП_:S=БанкП.Банк+if(fДобГородВБанк," "+БанкП.Город,"");

var Р3:L=not (Нал_Статус="" and Нал_КБК="" and Нал_ОКАТО="" and Нал_ОснПл="" and Нал_Пер="" and Нал_НомДок="" and Нал_ДатДок=1.1.100 and Нал_ТипПл="");

var Загл4_3:s=if(ver>=12,"Код по ОКТМО","Код ОКАТО");

var Нал_ДатДок_:S=if(not Нал_Статус="" and Нал_ДатДок=1.1.100,"0",DateToString(Нал_ДатДок));

var Key[]:S;

var SelfCfg:S="ТББ.ДОКУМЕНТЫ.БАНК.ЗАЯВКА_КР0531851.000.cfg";

btnПечать  : Object;
edКолКопий : Object;
btnЗакрыть : Object;

sУтвДок:Section;

s1 :Section;
s2 :Section;
s3 :Section;
s4 :Section;
s5 :Section;
s6 :Section;
s7 :Section;
s8 :Section;
s9 :Section;
s10:Section;
s11:Section;
s12:Section;
s13:Section;
s14:Section;

var Key[]:S;
var BufИст[]:S;
var BufКБК[]:S;
var BufДопКл[]:S;
var BufСум[]:N;

var Ист_:S=if(BufИст[1]="1":"средства бюджета"
             |BufИст[1]="2":"средства от приносящей доход деятельности"
             |BufИст[1]="3":"средства дополнительного бюджетного финансирования"
             |BufИст[1]="4":"средства для финансирования мероприятий по оперативно-розыскной деятельности"
             |BufИст[1]="5":"средства, поступающие во временное распоряжение "+if(f13н,"казенных учреждений","бюджетных учреждений")
             |BufИст[1]="6":"средства юридических лиц"
             |True:"");

var Buf []:S;
var Buf2[]:S;
--
--Процедуры и функции -------------
Proc Настр;
var tmp:S;
 if Раб.Настр.Начать("ДОКУМЕНТЫ.БАНК.ЗАЯВКА_КР",0,0,"",""):
    tmp=Раб.Настр.ВзятьЗначение("fСкрытьРаздел");  fСкрытьРаздел=(tmp="" or tmp="true");
    tmp=Раб.Настр.ВзятьЗначение("fУтвДок");        fУтвДок=tmp="true";
    tmp=Раб.Настр.ВзятьЗначение("fДобГородВБанк"); fДобГородВБанк=(tmp="" or tmp="true");
    tmp=Раб.Настр.ВзятьЗначение("ДесятРазд");      ДесятРазд=if(tmp="",".",tmp);
    tmp=Раб.Настр.ВзятьЗначение("fКлиентКорИмя");  fКлиентКорИмя=tmp="true";
 fi;
end;

Proc ЗадатьДесятичныйРазделитель;
var cf1:S;
 cf1="0.00;;0";
 if not ДесятРазд=".": cf1=cf1+"[D"+ДесятРазд+"]"; fi;
 S7.Cell(4,2,CellFormat,cf1);
end;

Proc Оформление;
var h0,h,ww,w,s:i;
var tmp:S;
var Obj: Object;
 sУтвДок.Visible=fУтвДок;
 ЗадатьДесятичныйРазделитель;
 S10.Visible=not fСкрытьРаздел or (fСкрытьРаздел and Р3);
 S11.Visible=not fСкрытьРаздел or (fСкрытьРаздел and Р3);
 if FindObject("S3",Obj):
    Obj.Cell(1,2,CellContents,"",True);
    Obj.CellLinks(2,1,5,1); --по Сводному реестру
    Obj.CellLinks(2,2,5,2); --
    Obj.CellLinks(2,3,5,3); --Глава по БК
    Obj.Row(2,RowVisible,False);
    h0=AsInteger(Obj.Row(1,RowHeight,""));
    if fКлиентКорИмя or Length(Рекв.ПолнИмя)+Length(Рекв.РПО_ПолнИмя2)<=255:
       Obj.Cell(1,2,CellContents,Клиент);
       Obj.CellLinks(2,1,5,1);
       h=AsInteger(Obj.Row(1,RowHeight,""));
       if h-47>h0:
          Obj.Row(1,RowHeight,h-47);
       fi;
       Obj.CellLinks(2,1,5,3);
      else
       Раб.Бюджет2005.BufS[1]=Рекв.ПолнИмя;
       Раб.Бюджет2005.BufS[2]=Рекв.РПО_ПолнИмя2;
       ww=Раб.Бюджет2005.Str2Word(2," ");
       ww=Раб.Бюджет2005.Word2SingleStr(1,2,Obj,ww," ");
       s=0;
       ClearVariable(Buf);
       tmp=Раб.Бюджет2005.BufS[1];
       for w=2..ww do
        if Length(tmp)+1+Length(Раб.Бюджет2005.BufS[w])>255 or s=1:  --s=2 является компенсатором
           s=s+1;
           Buf[s]=tmp;
           tmp=Раб.Бюджет2005.BufS[w];
          else
           tmp=tmp+" "+Раб.Бюджет2005.BufS[w];
        fi;
       od;
       s=s+1;
       Buf[s]=tmp;
       if Length(Buf[2])+Length(Buf[3])<255: Buf[3]=Buf[2]+" "+Buf[3]; Buf[2]=""; fi; --проверяем нужен ли компенсатор
       Obj.Cell(1,2,CellContents,Buf[1],True);
       Obj.CellLinks(2,1,5,1);
       Obj.Cell(2,2,CellContents,Buf[2],True);
       Obj.CellLinks(2,2,5,2);
       Obj.Row(2,RowVisible,not Buf[2]="");
       Obj.Cell(3,2,CellContents,Buf[3],True);
       Obj.CellLinks(2,3,5,3);
    fi;
    Obj.Row(9,RowVisible,ver>=12); --Код объекта по ФАИП
 fi;
 if FindObject("S7",Obj):
    Obj.Column(2,ColVisible,ver>=12); --Код цели (аналитический код)
    Obj.Column(4,ColWidth,300+if(ver>=12,0,350)); --Учетный номер бюджетного обязательства
 fi;
end;

Func СортРасшифр:I;
var Iter,z:I;
var Key_:S;
 ClearVariable(Key);
 ClearVariable(BufИст);
 ClearVariable(BufКБК);
 ClearVariable(BufДопКл);
 ClearVariable(BufСум);
 for Iter=1..Расшифр do
  Key_=Расшифр[Iter].КБК+"#"+Расшифр[Iter].ДопКл;
  z=SearchInArray(Key,Key_,True);
  if z=-1:
     z=InsertInArraySort(Key,Key_);
     InsertInArray(BufИст,z,Расшифр[Iter].Ист);
     InsertInArray(BufКБК,z,Расшифр[Iter].КБК);
     InsertInArray(BufДопКл,z,Расшифр[Iter].ДопКл);
     InsertInArray(BufСум,z,Расшифр[Iter].Сум);
  fi;
 od;
 ^LengthOfArray(Key);
end;
--Процедуры и функции -------------                           
--
--
--Обработчики событий полей шаблона-----
--Обработчики событий полей шаблона-----
--
--Обработчики событий объектов шаблона-----
Proc btnПечать_onClick (Obj:S);
 if КолКопий<=0: КолКопий=1; fi;
 if КолКопий>2:
    if EnqOkCancel("Вы уверены, что хотите распечатать "+Str(КолКопий)+" копий документа ?")=cmCancel:
       Message("Отказ от печати"); 
       Exit;
    fi;
 fi;
 Раб.Настр_Печать.Prn("","",SelfCfg,"",КолКопий);
end;

Proc btnЗакрыть_OnClick(Sender: String);
 Close;
end;
--Обработчики событий объектов шаблона-----
--
--
--Обработчики событий шаблона -----
Proc OnOpen(Create: Logical);
 if not ф0531851:
    OpenBlank("ДОКУМЕНТЫ.БАНК.ЗАЯВКА_КР_ПЕЧАТЬ");
    Close;
 fi;
 FlagInit=True;
 Раб.Настр_Печать.Cfg("",SelfCfg);
end;

Proc AfterOpen(Destroy: Logical);
 Оформление;
 FlagInit=False;
end;

Proc OnRead;
 Настр;
 СортРасшифр;
 if not FlagInit: 
    Оформление; 
 fi;
end;
--Обработчики событий шаблона -----
--


Конец