-- Шаблон создан мастером бланков
-- 23.01.2006 12:12:41
--
БланкСШаблоном [14.12.2005] "Инвентаризационная опись расчетов с покупателями, поставщиками и прочими дебиторами и кредиторами. ф.0504089";

var FlagEdit:L;

Номер:S;
ДК:D;
Учреждение:S;
ОКПО:S;
НомПриказ:S;
ДатаПриказ:D;
МестоИнв1:S;
ДНИнв:D;
ДКИнв:D;
МестоИнв2:S;
НаимВидРасчет:S;
Закл[]:S;
ДолжнЧК[]:S;
ФИОЧК[]:S;

var УпрНастр:L;

var Def_УслСчДЗ:S="*.?.205.??.*|*.?.206.??.*";
var Def_УслСчКЗ:S="*.?.302.??.*";

var Def_УслАнДЗ:S="";
var Def_УслАнКЗ:S="";

var Def_Справ:S="К.*";
var Def_СИД:I=3;

Справ:S=[Def_Справ];
СИД:I=[Def_СИД];

УслСчДЗ:S=[Def_УслСчДЗ];
УслСчКЗ:S=[Def_УслСчКЗ];

УслАнДЗ:S=[Def_УслАнДЗ];
УслАнКЗ:S=[Def_УслАнКЗ];

УслАнДоп:S;

Гр1:I=[1];
var Гр1_:I=1;

УпрДеб:I;
ПризнДеб[]:S;
var ПризнДеб_[]:S=if(Name_A(ПризнДеб[$])=" " or Name_A(ПризнДеб[$])="",ПризнДеб[$],Name_A(ПризнДеб[$]));
НаимДеб[]:S;
НомСчДеб[]:S;
СумВсегоДеб[]:N;
СумПодтвДеб[]:N;
СумНеПодтвДеб[]:N;
СумИстекДеб[]:N;
var ОтклДеб[]:N=СумВсегоДеб[$]-(СумПодтвДеб[$]+СумНеПодтвДеб[$]);
var НаимДеб_[]:S=if(ПризнДеб[$]="",НаимДеб[$],if(Гр1=1:ПризнДеб_[$]|Гр1=2:ПризнДеб_[$]+" ("+ПризнДеб[$]+")"|Гр1=3:ПризнДеб[$]+" ("+ПризнДеб_[$]+")"|True:ПризнДеб[$]));

var ИтогВсегоДеб:N=SumOfArray(СумВсегоДеб,УпрДеб);
var ИтогПодтвДеб:N=SumOfArray(СумПодтвДеб,УпрДеб);
var ИтогНеПодтвДеб:N=SumOfArray(СумНеПодтвДеб,УпрДеб);
var ИтогИстекДеб:N=SumOfArray(СумИстекДеб,УпрДеб);
var ИтогОтклДеб:N=SumOfArray(ОтклДеб,УпрДеб);

УпрКре:I;
ПризнКре[]:S;
var ПризнКре_[]:S=if(Name_A(ПризнКре[$])=" " or Name_A(ПризнКре[$])="",ПризнКре[$],Name_A(ПризнКре[$]));
НаимКре[]:S;
НомСчКре[]:S;
СумВсегоКре[]:N;
СумПодтвКре[]:N;
СумНеПодтвКре[]:N;
СумИстекКре[]:N;
var ОтклКре[]:N=СумВсегоКре[$]-(СумПодтвКре[$]+СумНеПодтвКре[$]);
var НаимКре_[]:S=if(ПризнКре[$]="",НаимКре[$],if(Гр1=1:ПризнКре_[$]|Гр1=2:ПризнКре_[$]+" ("+ПризнКре[$]+")"|Гр1=3:ПризнКре[$]+" ("+ПризнКре_[$]+")"|True:ПризнКре[$]));

var ИтогВсегоКре:N=SumOfArray(СумВсегоКре,УпрКре);
var ИтогПодтвКре:N=SumOfArray(СумПодтвКре,УпрКре);
var ИтогНеПодтвКре:N=SumOfArray(СумНеПодтвКре,УпрКре);
var ИтогИстекКре:N=SumOfArray(СумИстекКре,УпрКре);
var ИтогОтклКре:N=SumOfArray(ОтклКре,УпрКре);

Табл1: Section;
Табл2: Section;

btnРасчет : Object;
btnНастр  : Object;
btnПечать : Object;
btnЗакрыть: Object;

var Buf[]:S;
var BufСч[]:S;
var BufПризн[]:S;
var KeyСвертка[]:S;
var tCache[]:S;

--
--Процедуры и функции ------------- 
Proc Очистить;
 ClearVariable(УпрДеб);
 ClearVariable(НаимДеб);
 ClearVariable(ПризнДеб);
 ClearVariable(НомСчДеб);
 ClearVariable(СумВсегоДеб);
 ClearVariable(СумПодтвДеб);
 ClearVariable(СумНеПодтвДеб);
 ClearVariable(СумИстекДеб);

 ClearVariable(УпрКре);
 ClearVariable(НаимКре);
 ClearVariable(ПризнКре);
 ClearVariable(НомСчКре);
 ClearVariable(СумВсегоКре);
 ClearVariable(СумПодтвКре);
 ClearVariable(СумНеПодтвКре);
 ClearVariable(СумИстекКре);
end;

Proc ЗакрытьНастр;
 УпрНастр=False;
 btnРасчет.Visible=True;
 btnНастр.Visible=True;
 btnПечать.Visible=True;
 btnЗакрыть.Visible=True;
end;

Proc ОткрытьНастр;
 УпрНастр=True;
 Template.Field="СИД";
 Template.Field="УслСчДЗ";
 btnРасчет.Visible=False;
 btnНастр.Visible=False;
 btnПечать.Visible=False;
 btnЗакрыть.Visible=False;
end;

Proc НастрУмолч;
 УслСчДЗ=Def_УслСчДЗ;
 УслСчКЗ=Def_УслСчКЗ;
 УслАнДЗ=Def_УслАнДЗ;
 УслАнКЗ=Def_УслАнКЗ;
 Справ=Def_Справ;
 СИД=Def_СИД;
end;

Proc ЗаполнитьРекв(Rec: Record);
 if Rec=nil: Rec=Раб.Бюджет2005.НашРекв; fi;
 Учреждение=GetCardFieldS('Контрагент',Rec,"ПолнИмя");
 ОКПО=GetCardFieldS('Контрагент',Rec,"ОКПО");
end;

Proc ЧитатьЖурнал(FName:S; nn:i; Msg:S);
var n,s,ss,z:i;
var Сч,Призн:S;
var Key,tВал1,tВал2,tСч,tСчКорр,tКмнт:S;
var tДата:D;
var tСум1,tСум2:N;
 if ExistFile(FName)=False: Exit; fi;
 ClearVariable(KeyСвертка);
 ClearVariable(BufСч);
 ClearVariable(BufПризн);
 ClearVariable(tCache);
 ShowProgress(nn*2,Msg);
 OpenTextJur(FName);
 Try
  While not GetTransFromTextJur(tДата,tСум1,tВал1,tСум2,tВал2,tСч,tСчКорр,Buf,tКмнт) do
   n=n+1;
   ProgressPos(n);
   ss=LengthOfArray(Buf);
   Key=tСч+" "+tСчКорр;
   for s=1..ss do
    Key=Key+" "+Buf[s];
   od;
   if SearchInArray(tCache,Key,True)=-1:
      InsertInArraySort(tCache,Key);
      if tСч="00" or tСч="00Z": Сч=tСчКорр; else Сч=tСч; fi;
      Сч=Раб.Бюджет2005.ВзятьКодСчета(Сч,"","АН",True);
      Призн="";
      for s=1..ss do
       if Match(Buf[s],Справ): Призн=Buf[s]; Break; fi;
      od;
      if not Сч="" and not Призн="":
	 Key=Сч+" "+Призн;
	 z=SearchInArray(KeyСвертка,Key,True);
	 if z=-1:
	    z=InsertInArraySort(KeyСвертка,Key);
	    InsertInArray(BufСч,z,Сч);
	    InsertInArray(BufПризн,z,Призн);
	    fi;
      fi; --if not (Сч="" and Призн=""):
   fi; --if SearchInArray(tCache,Key,True)=-1:
  od; --While not GetTransFromTextJur(tДата,tСум1,tВал1,tСум2,tВал2,tСч,tСчКорр,Buf,tКмнт) do
 Finally
  CloseTextJur;
 end;
 if ExistFile(FName): DeleteFile(FName); fi;
end;

Proc Расчет;
var УслАн,УслСжатияАн,FName:S;
var ОстДК:N;
var n,nn,z:I;
var ДК_:D;
 Очистить;
 ЗакрытьНастр;
 Refresh(False);
 ДК_=Dat(Day(ДК),Mon(ДК),Year(ДК)-СИД);
 --Расчет дебиторов
 if not УслСчДЗ="":
    if not УслАнДЗ="": УслАн="("+УслАнДЗ+")"; else УслАн=""; fi;
    УслАн=Раб.Бюджет2005.Объединить(УслАн,if(УслАнДоп="","","("+УслАнДоп+")"),"&");
    УслАн=Раб.Бюджет2005.Объединить(УслАн,Справ,"&");
    УслСжатияАн=Раб.Бюджет2005.СписокСправ(УслСчДЗ,0,"");
    УслСжатияАн=Раб.Бюджет2005.УдалитьСловоИзНабораПоМаске(УслСжатияАн,"|",Справ,"&");
    FName=PlanVar("CACHE")+"\"+GetGUID;
    nn=TujReport(FName,1.1.100,ДК,УслСчДЗ,УслАн,УслСжатияАн,"","",TujRepTurnDebCre+TujRepNoNullBal+TujRepZabalance+TujRepCombinedAna,False);
    Try
     if not УслАн="": УслАн=УслАн+"&"; fi;
     ЧитатьЖурнал(FName,nn,"Расчет дебиторской задолженности...");
     nn=LengthOfArray(KeyСвертка);
     ClearVariable(Buf);
     ShowProgress(nn*2,"Расчет дебиторской задолженности...");
     for n=1..nn do
      ProgressPos(nn+n);
      ОстДК=Saldo(BufСч[n]+".*{"+УслАн+BufПризн[n]+"}",ДК);
      if not Round(ОстДК,2)=0:
	 z=InsertInArraySort(Buf,BufПризн[n]+"#"+BufСч[n]);
	 InsertFrame(УпрДеб,z);
	 ПризнДеб[z]=BufПризн[n];
	 НомСчДеб[z]=BufСч[n]+".000";
	 СумВсегоДеб[z]=ОстДК;
--	   ОстДК=Saldo(BufСч[n]+".*{"+УслАн+BufПризн[n]+"}",ДК_);
--	   if not Round(ОстДК,2)=0:
--	      СумИстекДеб[z]=ОстДК;
--	   fi;
      fi; --if ОстДК<>0:
     od;
    Finally
     CloseProgress;
    end;
 fi; --if not УслСчДЗ="":
 --Расчет кредиторов
 if not УслСчКЗ="":
    if not УслАнКЗ="": УслАн="("+УслАнКЗ+")"; else УслАн=""; fi;
    УслАн=Раб.Бюджет2005.Объединить(УслАн,if(УслАнДоп="","","("+УслАнДоп+")"),"&");
    УслАн=Раб.Бюджет2005.Объединить(УслАн,Справ,"&");
    УслСжатияАн=Раб.Бюджет2005.СписокСправ(УслСчКЗ,0,"");
    УслСжатияАн=Раб.Бюджет2005.УдалитьСловоИзНабораПоМаске(УслСжатияАн,"|",Справ,"&");
    FName=PlanVar("CACHE")+"\"+GetGUID;
    nn=TujReport(FName,1.1.100,ДК,УслСчКЗ,УслАн,УслСжатияАн,"","",TujRepTurnDebCre+TujRepNoNullBal+TujRepZabalance+TujRepCombinedAna,False);
    Try
     if not УслАн="": УслАн=УслАн+"&"; fi;
     ЧитатьЖурнал(FName,nn,"Расчет кредиторской задолженности...");
     nn=LengthOfArray(KeyСвертка);
     ClearVariable(Buf);
     ShowProgress(nn*2,"Расчет кредиторской задолженности...");
     for n=1..nn do
      ProgressPos(nn+n);
      ОстДК=-Saldo(BufСч[n]+".*{"+УслАн+BufПризн[n]+"}",ДК);
      if not Round(ОстДК,2)=0:
	 z=InsertInArraySort(Buf,BufПризн[n]+"#"+BufСч[n]);
	 InsertFrame(УпрКре,z);
	 ПризнКре[z]=BufПризн[n];
	 НомСчКре[z]=BufСч[n]+".000";
	 СумВсегоКре[z]=ОстДК;
	 ОстДК=-Saldo(BufСч[n]+".*{"+УслАн+BufПризн[n]+"}",ДК_);
--	   if not Round(ОстДК,2)=0:
--	      СумИстекКре[z]=ОстДК;
--	   fi;
      fi; --if ОстДК<>0:
     od;
    Finally
     CloseProgress;
    end;
 fi; --if not УслСчКЗ="":
 Message("Расчет завершен");
end;
--Процедуры и функции -------------			      
--
--
--Обработчики событий полей шаблона-----
Func Дата_onLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var tmp:D;
var Field:S;
 Template.HideEditor(False);
 Field=AsString(Template.Field);
 tmp=Calendar;
 if tmp=1.1.100: ^Cur; fi;
 PutVariableD(Field,tmp);
 if Field="ДК": Очистить; fi;
 Return Cur;
end;

Func Учреждение_OnEnter(FieldName: String; Iter: Integer): logical;
var Rec: Record;
 Rec=OpenCardFile("Контрагент","НАШЕ",nil,crdRecordOnly);
 if Rec=nil: ^False; fi;
 Учреждение=GetCardFieldS("Контрагент",Rec,"КорИмя");
 ОКПО=GetCardFieldS("Контрагент",Rec,"ОКПО");
 Return False;
end;

Func Комиссия_onLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Rec: Record;
var v1,v2,Field:S;
var p,Iter:I;
 Template.HideEditor(False);
 Rec=OpenCardFile("Сотрудники");
 Field=AsString(Template.Field);
 if Rec=nil: ^Cur; fi;
 v1=GetCardFieldS("Сотрудники",rec,"ДОЛЖНОСТЬ.Долж");
 v2=GetCardFieldS("Сотрудники",rec,"ФАМИЛИЯ")+" "+GetCardFieldS("Сотрудники",rec,"ИНИЦИАЛЫ");
 p=Pos("[",Field);
 PutVariableS("ДолжнЧК"+SubStr(Field,p,255),v1);
 PutVariableS("ФИОЧК"+SubStr(Field,p,255),v2);
 Return Cur;
end;

Func Наим_OnEnter(FieldName: String; Iter: Integer): logical;
 FlagEdit=True;
 Return True;
end;

Func Наим_OnVerify(FieldName: String; Iter: Integer; Value: String): Logical;
var tmp:S;
 FieldName=SubStr(FieldName,5,3)+"["+Str(Iter)+"]";
 PutVariableS("Призн"+FieldName,"");
 PutVariableS("Наим"+FieldName,Value);
 Return True;
end;

Proc Наим_OnExit(FieldName: String; Iter: Integer);
 if FlagEdit:
    FlagEdit=False;
   else
    FieldName=SubStr(FieldName,5,3)+"["+Str(Iter)+"]";
    PutVariableS("Призн"+FieldName,"");
    PutVariableS("Наим"+FieldName,"");
 fi;
end;

Proc ВосстанНастр_OnClick(Row: Integer; Col: Integer; Double: Logical);
 if EnqOkCancel("Восстановить значения по умолчанию?")=cmCancel: Exit; fi;
 НастрУмолч;
 Message("Значение по умолчанию восстановлены");
end;

Proc ЗакрытьНастр_OnClick(Row: Integer; Col: Integer; Double: Logical);
 ЗакрытьНастр;
 УслАнДоп="";
end;

Func УслСч_OnVerify(FieldName: String; Iter: Integer; Value: String): Logical;
var z:N;
 Try
  z=Saldo(Value,1.1.100);
 Except
  Raise;
  ^False;
 end;
 Return True;
end;

Proc УслСч_OnExit(FieldName: String; Iter: Integer);
var tmp:S;
 tmp=GetVariableS(FieldName);
 tmp=Раб.Бюджет2005.СписокСправ(tmp,0,"");
 FieldName="УслАн"+SubStr(FieldName,6,2);
 tmp=Раб.Бюджет2005.ПривестиВСоотвНаборСлов(GetVariableS(FieldName)," ",tmp,"|");
 PutVariableS(FieldName,tmp);
end;

Func УслСч_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var FieldName,tmp:s;
 Template.HideEditor(False);
 FieldName=AsString(Template.Field);
 Cur=Раб.КБК.Список("","","СЧ9 ВД+? ИГ");
 if Match(Cur,"?."): Cur="*."+Cur+"???.??.???";
   |Match(Cur,"?.???."): Cur="*."+Cur+"??.???";
   |Match(Cur,"?.???.??."): Cur="*."+Cur+"???";
   |True: ^Cur;
 fi;
 Cur=Раб.Бюджет2005.Объединить_Диалог(GetVariableS(FieldName),Cur,"|=ИЛИ;&~=И ИСКЛЮЧИТЬ;_=ЗАМЕНИТЬ","_");
 if Раб.Бюджет2005.HideEditor: 
    Template.HideEditor(False);
    PutVariableS(FieldName,Cur);
    УслСч_OnExit(FieldName,1);
 fi;
 Return  Cur;
end;

Func УслАн_OnVerify(FieldName: String; Iter: Integer; Value: String): Logical;
var z:N;
 Try
  z=Saldo("{"+Value+"}",1.1.100);
 Except
  Raise;
  ^False;
 end;
 Return True;
end;

Func УслАн_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var tmp,FieldName:s;
 FieldName=AsString(Template.Field);
 if FieldName="УслАнДоп":
    tmp=Раб.Бюджет2005.Объединить(if(УслСчДЗ="","","("+УслСчДЗ+")"),if(УслСчКЗ="","","("+УслСчКЗ+")"),"|");
   else
    tmp=GetVariableS("УслСч"+SubStr(FieldName,6,2));
 fi;
 tmp=Раб.Бюджет2005.СписокСправ(tmp,0,"");
 tmp=Раб.Бюджет2005.Объединить(tmp,"(*&~*.*)","|");
 Cur=AnaElection(tmp);
 if Cur="": Template.HideEditor(False); ^Cur; fi;
 Cur=Раб.Бюджет2005.Объединить_Диалог(GetVariableS(FieldName),Cur,"&=И;|=ИЛИ;&~=И ИСКЛЮЧИТЬ;_=ЗАМЕНИТЬ","_");
 if Раб.Бюджет2005.HideEditor: 
    Template.HideEditor(False);
    PutVariableS(FieldName,Cur);
 fi;
 Return  Cur;
end;

Func Справ_OnEnter(FieldName: String; Iter: Integer): logical;
var УслСчДЗ_,УслСчКЗ_:S;
var n:I;
 if УслСчДЗ="" and УслСчКЗ="": Message("Укажите условия отбора задолженности",mtError); Template.Field="УслСчДЗ"; ^False; fi;
 if not УслСчДЗ="": УслСчДЗ_="("+УслСчДЗ+")"; else УслСчДЗ_=""; fi;
 if not УслСчКЗ="": УслСчКЗ_="("+УслСчКЗ+")"; else УслСчКЗ_=""; fi;
 Раб.Бюджет2005.СписокСправ(Раб.Бюджет2005.Объединить(УслСчДЗ_,УслСчКЗ_,"|"),0,"");
 CopyArray(Раб.Бюджет2005.BufСправ,Buf);
 n=Alternate("Аналитические справочники",Buf,-1,1,12);
 if n=0: ^False; fi;
 Справ=SubStr(Buf[n],1,Pos(" --",Buf[n])-1);
 Return False;
end;

Func СИД_OnVerify(FieldName: String; Iter: Integer; Value: Integer): Logical;
 if Value<1: Message("Значение должно быть больше нуля",mtWarning); ^False; fi;
 Return True;
end;

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

Proc OnClick(Row:Integer; Col:Integer; DblClick:Logical);
var Name:string;
var Знак:string;
var Obj:Object;
 Name=AsString(Template.Name);
 if not FindObject(Name,Obj): Exit; fi;
 Знак=AsString(Obj.Cell(Row,Col,CellText,''));
 if Name="Табл1" and Знак="+": InsertFrame(УпрДеб,Row+1);
   |Name="Табл1" and Знак="-": DeleteFrame(УпрДеб,Row);
   |Name="Табл2" and Знак="+": InsertFrame(УпрКре,Row+1);
   |Name="Табл2" and Знак="-": DeleteFrame(УпрКре,Row);
 fi;
end;

Func Расшифр_onLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Field,УслСч,УслАн:S;
var Iter:I;
var ДН_,ДК_:D;
 Template.HideEditor(False);
 Field=AsString(Template.Field);
 Iter=AsInteger(Template.Frame);
 if Match(Field,"*Деб"): 
    if ПризнДеб[Iter]="": Message("Нет данных для расшифровки",mtError); ^Cur; fi;
    УслСч=НомСчДеб[Iter]; 
    if not УслАнДЗ="": УслАн="("+УслАнДЗ+")"; else УслАн=""; fi; 
    УслАн=Раб.Бюджет2005.Объединить(УслАн,ПризнДеб[Iter],"&");
   |Match(Field,"*Кре"): 
    if ПризнКре[Iter]="": Message("Нет данных для расшифровки",mtError); ^Cur; fi;
    УслСч=НомСчКре[Iter]; 
    if not УслАнКЗ="": УслАн="("+УслАнКЗ+")"; else УслАн=""; fi; 
    УслАн=Раб.Бюджет2005.Объединить(УслАн,ПризнКре[Iter],"&");
   |True: ^Cur;
 fi;
 УслАн=Раб.Бюджет2005.Объединить(УслАн,if(УслАнДоп="","","("+УслАнДоп+")"),"&");
 УслСч=Раб.Бюджет2005.ВзятьКодСчета(УслСч,"","АН",True)+".???";
 if Match(Field,"*Истек*"):
    ДН_=1.1.100;
    ДК_=Dat(Day(ДК),Mon(ДК),Year(ДК)-СИД);
   else
    ДН_=Dat(Day(ДК),Mon(ДК),Year(ДК)-СИД);
    ДК_=ДК;
 fi;
 Report('"'+PlanVar("Std_Rpo")+'\Общие\Отчеты\Служебные отчеты.lst"."009"',ДН_,ДК_,УслСч,УслАн);
 Return Cur;
end;

Func Сум_OnVerify(FieldName: String; Iter: Integer; Value: Numeric): Logical;
 if Match(FieldName,"*Деб"):
    if Round(Value,2)>Round(СумВсегоДеб[Iter],2): Message("Сумма, в том числе, не может превышать сумму всего "+Format("%.2N",СумВсегоДеб[Iter]),mtError); ^False; fi;
   |Match(FieldName,"*Кре"):
    if Round(Value,2)>Round(СумВсегоКре[Iter],2): Message("Сумма, в том числе, не может превышать сумму всего "+Format("%.2N",СумВсегоКре[Iter]),mtError); ^False; fi;
 fi;
 Return True;
end;

Func Сум_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Field:S;
var Iter:I;
 Template.HideEditor(False);
 Field=AsString(Template.Field);
 Iter=AsInteger(Template.Frame);
 if Match(Field,"*Деб"):
    if СумВсегоДеб[Iter]=0: Message("Заполните сумму задолженности",mtError); Template.Field="СумВсегоДеб"; Template.Frame=Iter; ^Cur; fi;
    if Match(Field,"СумПодтв*"):
       СумПодтвДеб[Iter]=СумВсегоДеб[Iter]-СумНеПодтвДеб[Iter];
      else
       СумНеПодтвДеб[Iter]=СумВсегоДеб[Iter]-СумПодтвДеб[Iter];
    fi;
   |Match(Field,"*Кре"): 
    if СумВсегоКре[Iter]=0: Message("Заполните сумму задолженности",mtError); Template.Field="СумВсегоКре"; Template.Frame=Iter; ^Cur; fi;
    if Match(Field,"СумПодтв*"):
       СумПодтвКре[Iter]=СумВсегоКре[Iter]-СумНеПодтвКре[Iter];
      else
       СумНеПодтвКре[Iter]=СумВсегоКре[Iter]-СумПодтвКре[Iter];
    fi;
 fi;
 Return Cur;
end;
--Обработчики событий полей шаблона-----
--
--
--Обработчики событий объектов шаблона-----
Proc btnРасчет_OnClick(Sender: String);
 if ДК=1.1.100: Message("Введите дату",mtError); Template.Field="ДК"; Exit; fi;
 if УслСчДЗ="" and УслСчКЗ="": Message("Укажите условия отбора задолженности",mtError); ОткрытьНастр; Template.Field="УслСчДЗ"; Exit; fi;
 if Справ="": Message("Аналитический справочник контрагента",mtError); ОткрытьНастр; Template.Field="Справ"; Exit; fi;
 if СИД<1: Message("Срок исковой давность должен быть больше года",mtError); ОткрытьНастр; Template.Field="Справ"; Exit; fi;
 Расчет;
end;

Proc btnНастр_OnClick(Sender: String);
 ОткрытьНастр;
end;

Proc btnПечать_OnClick(Sender: String);
 Раб.Настр_Печать.Prn('','','RPO_0504089_000.cfg','',1);
end;

Proc btnЗакрыть_OnClick(Sender: String);
 Close;
end;
--Обработчики событий объектов шаблона-----
--
--
--Обработчики событий шаблона -----
Proc OnOpen(Create: Logical);
 if Учреждение="": ЗаполнитьРекв(nil); fi;
 Раб.Настр_Печать.Cfg("","RPO_0504089_000.cfg");
 ЗакрытьНастр;
end;
--Обработчики событий шаблона -----
--


Конец
