-- Шаблон создан мастером бланков
-- 20.02.2010 23:07:36
--
БланкСШаблоном "Test";

var Buf[]:S;

Func ЗКР_ОснДок_В_Предм(vПредм:S; Iter:I; isExt:L):S;
var bln:S;
var OWA:I;
var UKey:Record;
 bln="ДОКУМЕНТЫ.БАНК.ЗАЯВКА_КР";
 if not Iter=0: bln=bln+".Осн_Док["+Str(Iter)+"]"; fi;
 UKey=GetVariableR(Bln+".ДО");
 if not UKey=nil:
    OWA=OpenWorkArea("РПО_ДО","","UKey="+RecordToString(UKey));
    Try
     if not Records(OWA)=0:
	vПредм=GetFieldS(OWA,1,"Содерж");
	if not GetFieldL(OWA,1,"УчетБО"):
	   vПредм=Раб.Бюджет2005.Объединить(vПредм,GetFieldS(OWA,1,"Договор.НаимДок.Наим")+" №"+GetFieldS(OWA,1,"Договор.НомерДок")+" от "+DateToString(GetFieldD(OWA,1,"Договор.ДатаДок"))," ");
	fi;
	vПредм=vПредм+"zzzz";
      fi;
    Finally
     CloseWorkArea(OWA);
    end;
 fi;
 ^vПредм;
end;

Func ЗКР_ОснДок_В_НазнПл(vНазнПл:S; isExt:L):S;
var Iter,n,nn,Осн_Док,OWA,z: I;
var sp,tmp,hПредм,Предм,hДок,Док,hДат,Дат,Ном,ЛСчет,bln,FF:S;
var ДО: Record;
 bln="ДОКУМЕНТЫ.БАНК.ЗАЯВКА_КР";
 ЛСчет=GetCardFieldS("БАНК_СЧЕТА",GetVariableR(bln+".Банк"),"РПО_ЛСчет");
 if ЛСчет="": ^vНазнПл; fi;
 Осн_Док=GetVariableI(Bln+".nОсн_Док");
 if Осн_Док=0:
    ДО=GetVariableR(bln+".ДО");
    if ДО=nil: ^vНазнПл; fi;
    FF="UKey="+RecordToString(ДО);
   else
    FF="";
    for Iter=1..Осн_Док do
     ДО=GetVariableR(bln+".Осн_Док["+str(Iter)+"].ДО");
     if not ДО=nil:
	FF=Раб.Бюджет2005.Объединить(FF,"UKey="+RecordToString(ДО)," or ");
     fi;
    od;
    if FF="": ^vНазнПл; fi;
 fi;
 vНазнПл="";
 sp="";
 OWA=OpenWorkArea("РПО_ДО","",FF);
 Try
  if Осн_Док=0:
     z=GetRecordNumber(OWA,ДО);
     tmp="";
     if not GetFieldL(OWA,z,"УчетБО"):
	tmp=GetFieldS(OWA,z,"Договор.НаимДок.НаимК");
	if tmp="": tmp=GetFieldS(OWA,z,"Договор.НаимДок.Наим"); fi;
	tmp=tmp+" "+GetFieldS(OWA,z,"Договор.НомерДок")+" от "+Раб.Формат.ДатаСтр(GetFieldD(OWA,z,"Договор.ДатаДок"),Раб.Формат.dfDDMMYY);
     fi;
     vНазнПл="(л/с "+ЛСчет+") "+tmp+if(tmp="",""," ");
     tmp=GetFieldS(OWA,z,"НаимДок.НаимК");
     if tmp="": tmp=GetFieldS(OWA,z,"НаимДок.Наим"); fi;
     tmp=tmp+" "+GetVariableS(bln+".Осн_ДокНом")+" от "+Раб.Формат.ДатаСтр(GetVariableD(bln+".Осн_ДокДат"),Раб.Формат.dfDDMMYY);
     vНазнПл=vНазнПл+tmp+" ("+GetFieldS(OWA,z,"Содерж")+")";
    else
     ClearVariable(Buf);
     for Iter=1..Осн_Док do
      ДО=GetVariableR(bln+".Осн_Док["+str(Iter)+"].ДО");
      z=GetRecordNumber(OWA,ДО);
      if not ДО=nil:
	 AddInArray(Buf,True,False,Раб.Формат.DateToSQLStr(GetVariableD(bln+".Осн_Док["+str(Iter)+"].Дат"))+"#"+Раб.Формат.ДатаСтр(GetVariableD(bln+".Осн_Док["+str(Iter)+"].Дат"),Раб.Формат.dfDDMMYY)+"#"+if(GetFieldS(OWA,z,"НаимДок.НаимК")="",GetVariableS(bln+".Осн_Док["+str(Iter)+"].Вид"),GetFieldS(OWA,z,"НаимДок.НаимК"))+"#"+GetFieldS(OWA,z,"Содерж")+"#"+GetVariableS(bln+".Осн_Док["+str(Iter)+"].Ном"));
	 if vНазнПл="":
	    tmp=GetFieldS(OWA,z,"НаимДок.НаимК");
	    if tmp="": tmp=GetFieldS(OWA,z,"НаимДок.Наим"); fi;
	    tmp=tmp+" "+GetFieldS(OWA,z,"Договор.НомерДок")+" от "+Раб.Формат.ДатаСтр(GetFieldD(OWA,z,"Договор.ДатаДок"),Раб.Формат.dfDDMMYY);
	    vНазнПл="(л/с "+ЛСчет+") "+tmp+if(tmp="",""," ");
	 fi;
      fi;
     od;
     nn=LengthOfArray(Buf);
     hДат=ExtractWord(2,Buf[1],"#");
     hДок=ExtractWord(3,Buf[1],"#");
     hПредм=ExtractWord(4,Buf[1],"#");
     sp="";
     tmp=hДок;
     for n=1..nn do
      Дат=ExtractWord(2,Buf[n],"#");
      Док=ExtractWord(3,Buf[n],"#");
      Предм=ExtractWord(4,Buf[n],"#");
      Ном=ExtractWord(5,Buf[n],"#");
      if not Док=hДок:
	 tmp=Док;
	 hДок=Док;
      fi;
      tmp=Раб.Бюджет2005.Объединить(tmp,Ном," ");
      if not Дат=hДат:
	 vНазнПл=Раб.Бюджет2005.Объединить(vНазнПл,hДат," от ");
	 hДат=Дат;
      fi;
      if not Предм=hПредм:
	 vНазнПл=Раб.Бюджет2005.Объединить(vНазнПл,hПредм," (")+")";
	 hПредм=Предм;
      fi;
      vНазнПл=Раб.Бюджет2005.Объединить(vНазнПл,tmp,sp);
      if n=nn:
	 vНазнПл=Раб.Бюджет2005.Объединить(vНазнПл,Дат," от ");
	 vНазнПл=Раб.Бюджет2005.Объединить(vНазнПл,Предм," (")+")";
      fi;
      tmp="";
      sp=",";
     od;
  fi;
  vНазнПл=ExecuteFuncS(bln+".НДС_В_НазнПл",vНазнПл,True);
  if not Осн_Док=0:
     vНазнПл=vНазнПл+",("+Lo(GetVariableS(bln+".Осн_ДокВид"))+" №"+GetVariableS(bln+".Осн_ДокНом")+" от "+Раб.Формат.ДатаСтр(GetVariableD(bln+".Осн_ДокДат"),Раб.Формат.dfDDMMYY)+")";
  fi;
 Finally
  CloseWorkArea(OWA);
 end;
 ^vНазнПл;
end;

Func ЗКР_КлючДок:L;
var Iter,n,nn,OWA,Упр:I;
var tmp,bln:S;
 bln="ДОКУМЕНТЫ.БАНК.ЗАЯВКА_КР";
 ClearVariable(Buf);
 Упр=GetVariableI(bln+".nРасшифр");
 for Iter=1..Упр do
  tmp=GetVariableS(bln+".Расшифр["+Str(Iter)+"].Призн")+" "+GetVariableS(bln+".Расшифр["+Str(Iter)+"].Призн_ОснДок");
  tmp=Раб.Бюджет2005.ВзятьСловоИзНабораПоМаске(Trim(tmp)," ","П.*","");
  if not tmp="":
     AddInArray(Buf,True,False,tmp);
  fi;
 od;
 nn=LengthOfArray(Buf);
 tmp="";
 for n=1..nn do 
  tmp=tmp+"#"+Buf[n];
 od;
 tmp=SubStr(tmp,2,255);
 Trace("tmp="+tmp);
 PutVariableS(bln+".РПО_Ключ",tmp);
 Trace("РПО_Ключ="+GetVariableS(bln+".РПО_Ключ"));
 Trace("Current="+RecordToString(ExecuteFuncR(bln+".ТекЗапись")));
 if not GetVariableR(bln+".ДокОпер1")=nil:
    OWA=OpenWorkArea("Поруч","","РПО_ЗАЯВКА_КР="+RecordToString(ExecuteFuncR(bln+".ТекЗапись")));
    Try
     if not Records(OWA)=0:
	BeginChanging(OWA);
	Try
	 n=PutFieldS(OWA,1,"РПО_Ключ",tmp);
	 EndChanging(OWA);
	Except
	 CancelChanging(OWA);
	 Raise;
	end;
     fi;
    Finally
     CloseWorkArea(OWA);
    end;
 fi;
 ^True;
end;

Func ЗВЗ_КлючДок:L;
var Iter,n,nn,OWA,Упр:I;
var tmp,bln:S;
 bln="ДОКУМЕНТЫ.БАНК.ЗАЯВКА_ВОЗВРАТ";
 ClearVariable(Buf);
 Упр=GetVariableI(bln+".nПозиции");
 for Iter=1..Упр do
  tmp=GetVariableS(bln+".Позиции["+Str(Iter)+"].Призн");
  tmp=Раб.Бюджет2005.ВзятьСловоИзНабораПоМаске(tmp," ","П.*","");
  if not tmp="":
     AddInArray(Buf,True,False,tmp);
  fi;
 od;
 nn=LengthOfArray(Buf);
 tmp="";
 for n=1..nn do 
  tmp=tmp+"#"+Buf[n];
 od;
 tmp=SubStr(tmp,2,255);
 Trace("tmp="+tmp);
 PutVariableS(bln+".РПО_Ключ",tmp);
 Trace("РПО_Ключ="+GetVariableS(bln+".РПО_Ключ"));
 Trace("Current="+RecordToString(ExecuteFuncR(bln+".ТекЗапись")));
 if not GetVariableR(bln+".ДокОпер1")=nil:
    OWA=OpenWorkArea("Поруч","","РПО_ЗАЯВКА_ВОЗВРАТ="+RecordToString(ExecuteFuncR(bln+".ТекЗапись")));
    Try
     if not Records(OWA)=0:
	BeginChanging(OWA);
	Try
	 n=PutFieldS(OWA,1,"РПО_Ключ",tmp);
	 EndChanging(OWA);
	Except
	 CancelChanging(OWA);
	 Raise;
	end;
     fi;
    Finally
     CloseWorkArea(OWA);
    end;
 fi;
 ^True;
end;


Конец
