-- Шаблон создан мастером бланков
-- 04.04.2012 11:15:48
--
БланкСШаблоном "Отчет о принятых бюджетных обязательствах";
Var ГодОтч       :i;
var ДатаНа       :d=[today];
--var ДатаПрописью :d;
var ДатаОтч      :d=[today];
var ИНН             :s;
var КПП             :s;
var НаимУчреж       :s;
var Рекв            :record;
var ПодведРаспорБО1 :s;
var ПодведРаспорБО2 :s;
var РаспорБО        :s;
var ГлавнРаспор     :s;
var ВидРеестра      :s;
var ГлаваБК         :s;
var ВР              :s;
var ОКЕИ            :i=[383];
var НомСчета[]      :s;
var КодРазд[]       :s;
var КодПодРазд[]    :s;
var КодСт[]         :s;
var КодВР[]         :s;
var БюджАссВсего[]  :n;
var БюджАссГосзак[] :n;
var БюджАссВсегоИ   :n=sumOfArray(БюджАссВсего);
var БюджАссГосзакИ  :n=sumOfArray(БюджАссГосзак);
var РукДолжность    :s;
var РукФИО          :s;
var ИспФИО          :s;
var ИспДолжность    :s;
var Тел             :s;
var УпрС            :i;
scСекция:object;

2Proc ОчиститьОтчет;
ClearVariable(НомСчета);
ClearVariable(КодРазд);
ClearVariable(КодПодРазд);
ClearVariable(КодСт);
ClearVariable(КодВР);
ClearVariable(БюджАссВсего);
ClearVariable(БюджАссГосзак);
ClearVariable(УпрС);
2end;

2Func УсловиеЕсть:Logical;
If ГодОтч=0:
   Message('Укажите год, за который нужно отобразить сведения',mtError );
   Template.Field="ГодОтч";
   ^false;
fi;
^true;
2end;

2Proc НайтиПроводки;
var R : Record;
var t, I, IposM, Ipos : integer;
var OWA : integer;
var F : string;
var ДатаС : date;
var Счет : string;
var УслПроводки : string;
Ipos=0;
IposM=0;
ДатаС=Dat(01,01,ГодОтч);
OWA=OpenWorkArea("РПО_СВЕД_БО","","1=0");
try
  УслПроводки="*.?.501.13.???/*.?.502.11.???";
  For transaction t = УслПроводки, ДатаС, ДатаНа do
    IposM=IposM+1;
  od;
  showProgress(IposM,"");
  For transaction t = УслПроводки, ДатаС, ДатаНа do
    Ipos=Ipos+1;
    ProgressPos(Ipos);
    Счет=TransDeb(t);
    I=SearchInArray(НомСчета,Счет);
    If I=-1:
       I=InsertFrame(УпрС,УпрС+1);
       I=УпрС;
       НомСчета[I]=Счет;
    fi;
    КодРазд[I]=substr(Раб.Бюджет2005.ВзятьКодСчета(Счет,'ВКР','РП',false),1,2);
    КодПодРазд[I]=substr(Раб.Бюджет2005.ВзятьКодСчета(Счет,'ВКР','РП',false),3,2);
    КодСт[I]=Раб.Бюджет2005.ВзятьКодСчета(Счет,'ВКР','ЦС',false);
    КодВР[I]=Раб.Бюджет2005.ВзятьКодСчета(Счет,'ВКР','ВР',false);
    БюджАссВсего[I]=БюджАссВсего[I]+TransSum(t);
    If TransCardFile(t)="РПО_СВЕД_БО":
       F="Ukey="+RecordToString(TransRecord(t));
       SetFilter(OWA,F);
       If GetFieldS(OWA,1,'Доп_Ном_Реестр')<>'':
          БюджАссГосзак[I]=БюджАссГосзак[I]+TransSum(t);
       fi;
    fi;
  od;
  CloseProgress;
Finally
  closeWorkArea(OWA);
end;
2end;

2Proc ЗаполнитьКлиента(Rec:record);
 НаимУчреж=GetCardFieldS("Контрагент",Rec,"КорИмя");
 ИНН=GetCardFieldS("Контрагент",Rec,"ИНН");
 КПП=GetCardFieldS("Контрагент",Rec,"КПП");
2end;


2Proc btnЗаполнить_OnClick(Sender: String);
ОчиститьОтчет;
If УсловиеЕсть: НайтиПроводки;  fi;
2end;


2Proc btnЗакрыть_OnClick(Sender: String);
  Close;
2end;


2Func ФИО_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Field:S;
var Rec:Record;
var v1,v2:S;
 Template.HideEditor(False);
 Field=AsString(Template.Field);
 Template.HideEditor(False);
 Rec=OpenCardFile("Сотрудники");
 if not Rec=nil:
    v1=GetCardFieldS("Сотрудники",rec,"ДОЛЖНОСТЬ.Долж");
    v2=GetCardFieldS("Сотрудники",rec,"ФАМИЛИЯ")+" "+GetCardFieldS("Сотрудники",rec,"ИНИЦИАЛЫ");
    if Field="РукДолжность" or Field="РукФИО": РукДолжность=v1; РукФИО=v2;
      |Field="ИспДолжность" or Field="ИспФИО": ИспДолжность=v1; ИспФИО=v2;
    fi;
 fi;
 Return Cur;
2end;

2Func Клиент_OnEnter(FieldName: String; Iter: Integer): logical;
var Rec:Record;
 Rec=OpenCardFile("Контрагент","Наше",nil,crdRecordOnly);
 if not Rec=nil:
    Рекв=Rec;
    ЗаполнитьКлиента(Rec);
 fi;
 Return False;
2end;


2Func РаспорБО_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Rec:Record;
 Rec=OpenCardFile("РПО_БЮДЖ_КЛАСС_000","NAME_VOC='ППП2006'",nil,crdRecordOnly);
    if not Rec=nil:
       ГлаваБК=GetCardFieldS("РПО_БЮДЖ_КЛАСС",Rec,"CODE");
       ГлавнРаспор=GetCardFieldS("РПО_БЮДЖ_КЛАСС",Rec,"TXT");
       РаспорБО=ГлавнРаспор;
    fi;
  Return РаспорБО;
2end;

Proc OnOpen(Create: Logical);
 Раб.Настр_Печать.Cfg("","ТББ.ДОКУМЕНТЫ.ЛБО.СВЕД_БО_ОТЧЕТ.000.cfg");
end;


Конец
