-- Шаблон создан мастером бланков
-- 28.11.2008 15:44:06
--
БланкСШаблоном "Заявление на получение денежных чековых книжек", РЕДАКТОР РПО_ЗАЯВЛ_ЧЕК;

var НоваяЗапись:L=(CurrentState=crdusInserted);

fУтвДок:L;

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

var Клиент:S=Рекв.ПолнИмя+Рекв.РПО_ПолнИмя2;
var ФинОрган:S=Банк.РПО_ФО_Наим1+Банк.РПО_ФО_Наим2;

--var Пропись:S=Slo_(КолЧекКн, "ДОКШТ");
var Пропись:S=SubStr(Slo_(КолЧекКн, "NAT"),1,Pos(" ед'",Slo_(КолЧекКн, "NAT")));

var ДолжнФИОДов:S=ДолжнДов+" "+ФИОДов;

var SelfCrd:S="РПО_ЗАЯВЛ_ЧЕК";
var SelfCfg:S="ТББ.ДОКУМЕНТЫ.БАНК.ЗАЯВЛ_ЧЕК.000.cfg";
--
--Процедуры и функции -------------
Proc ОбработатьНомер (aНомерДок:S);
var tmp:i;
 tmp=Int(aНомерДок);
 if tmp=0:
    if ДатаДок=1.1.100:
       tmp=РАБ.ОБЛ.СледСУчетомГодаФ(SelfCrd,"Номер","ДатаДок","not UKey="+RecordToString(Current));
      else
       tmp=РАБ.ОБЛ.СледСУчетомДатыФ(SelfCrd,"Номер","ДатаДок",ДатаДок,"not UKey="+RecordToString(Current));
    fi;
 fi;
 if not Номер=tmp:
    Номер=tmp;
    if Раб.Бюджет2005.Сетевая: EditorApply; fi;
 fi;
end;

Proc ОбработатьДату (prevДата:D; newДата:D);
var prevYYYY,newYYYY:I;
 prevYYYY=Year(prevДата);
 newYYYY=Year(newДата);
 if prevYYYY=newYYYY: Exit; fi;
 if not prevYYYY=100:
    if EnqOkCancel("Изменился отчетный год ("+Str(prevYYYY)+") документа, получить номер документа соответствуещего года ("+Str(newYYYY)+") ?",mtWarning)=cmCancel: Exit; fi;
 fi;
 НомерДок=Str(Раб.Обл.СледСУчетомДатыФ(SelfCrd,"Номер","ДатаДок",ДатаДок,"not UKey="+RecordToString(Current)));
 ОбработатьНомер(НомерДок);
 Template.Field="НомерДок";
end;

Proc ЗаполнитьКлиента (vRec: Record);
 if not vRec=nil:
    ДолжнРук=Рекв.ДолжнРук;
    ФИОРук=Рекв.ФИОРук;
    ДолжнБух=Рекв.ДолжнБух;
    ФИОБух=Рекв.ФИОБух;
    Банк=Раб.Бюджет2005.БанкСчет(Рекв,False);
 fi;
end;
--Процедуры и функции -------------                           
--
--
--Обработчики событий полей шаблона-----
Proc НомерДок_OnExit(FieldName: String; Iter: Integer);
 ОбработатьНомер(НомерДок);
end;

func НомерДок_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
 Template.HideEditor(False);
 if ДатаДок=1.1.100:
    НомерДок=Str(РАБ.ОБЛ.СледСУчетомГодаФ(SelfCrd,"Номер","ДатаДок","not UKey="+RecordToString(Current)));
   else
    НомерДок=Str(РАБ.ОБЛ.СледСУчетомДатыФ(SelfCrd,"Номер","ДатаДок",ДатаДок,"not UKey="+RecordToString(Current)));
 fi;
 ОбработатьНомер(НомерДок);
 ^Cur;
end;

Func ДатаДок_OnVerify(FieldName: String; Iter: Integer; Value: Date):Logical;
var prevД:D;
 prevД=ДатаДок;
 ДатаДок=Value;
 ОбработатьДату(prevД,ДатаДок);
 Return True;
end;

Func Дата_OnLookup(Sect:S; Row:I; Col:I; Cur:S) :S;
var tmp,prevД:d;
var Field:S;
 Template.HideEditor(False);
 Field=AsString(Template.Field);
 tmp=Calendar;
 if tmp=1.1.100: ^Cur; fi;
 prevД=GetVariableD(Field);
 PutVariableD(Field,tmp);
 if Field="ДатаДок":
    ОбработатьДату(prevД,tmp);
 fi;
end;

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

Func Банк_OnEnter(FieldName: String; Iter: Integer): logical;
var Rec: Record;
 if Рекв=nil: Message("Выберите клиента",mtError); Template.Field="Клиент"; ^False; fi;
 Rec=OpenCardFile("Банк_Счета","Контрагент="+RecordToString(Рекв),Банк,crdRecordOnly);
 if not Rec=nil:
    Банк=Rec;
 fi;
 Return False;
end;

Func ФИО_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;
end;

Func ДолжнФИОДов_OnEnter(FieldName: String; Iter: Integer): logical;
var ww:i;
 Раб.Вспом.ФизЛицо.Фамилия=ExtractWord(1,ФИОДов," ");
 Раб.Вспом.ФизЛицо.Имя=ExtractWord(2,ФИОДов," ");
 Раб.Вспом.ФизЛицо.Отчество=ExtractWord(3,ФИОДов," ");
 Раб.Вспом.ФизЛицо.Должность=ДолжнДов;
 Раб.Вспом.ФизЛицо.ДокНаим=НаимДокДов;
 if СерияДокДов="":
    ww=WordsCount(НомДокДов," ");
    Раб.Вспом.ФизЛицо.ДокСерия=ExtractWords(1,ww-1,НомДокДов," ");
    Раб.Вспом.ФизЛицо.ДокНом=ExtractWord(ww,НомДокДов," ");
   else
    Раб.Вспом.ФизЛицо.ДокСерия=СерияДокДов;
    Раб.Вспом.ФизЛицо.ДокНом=НомДокДов;
 fi;
 Раб.Вспом.ФизЛицо.ДокКемВыдан=ВыданДокДов;
 Раб.Вспом.ФизЛицо.ДокДат=ДатДокДов;
 Раб.Вспом.ФизЛицо.Вызвать("Доверяем получить работнику","ФИОД","ИСНВД",True,"КОМУ");
 ФИОДов=Trim(Trim(Раб.Вспом.ФизЛицо.Фамилия)+" "+Trim(Раб.Вспом.ФизЛицо.Имя)+" "+Trim(Раб.Вспом.ФизЛицо.Отчество));
 ДолжнДов=Раб.Вспом.ФизЛицо.Должность;
 НаимДокДов=Раб.Вспом.ФизЛицо.ДокНаим;
 СерияДокДов=Раб.Вспом.ФизЛицо.ДокСерия;
 НомДокДов=Раб.Вспом.ФизЛицо.ДокНом;
 ВыданДокДов=Раб.Вспом.ФизЛицо.ДокКемВыдан;
 ДатДокДов=Раб.Вспом.ФизЛицо.ДокДат;
 Return False;
end;
--Обработчики событий полей шаблона-----
--
--Обработчики событий объектов шаблона-----
Proc btnПечать_onClick (Obj:S);
 if КолКопий<=0: КолКопий=1; fi;
 if КолКопий>2:
    if EnqOkCancel("Вы уверены, что хотите распечатать "+Str(КолКопий)+" копий документа ?")=cmCancel:
       Message("Отказ от печати"); 
       Exit;
    fi;
 fi;
 Раб.Настр_Печать.Prn("","",SelfCfg,"",КолКопий);
end;
--Обработчики событий объектов шаблона-----
--
--
--Обработчики событий шаблона -----
Proc OnOpen(Create: Logical);
 Раб.Настр_Печать.Cfg("",SelfCfg);
end;

Proc OnRead;
 if НоваяЗапись:
    if Номер=0:
       ДатаДок=ToDay;
       Рекв=Раб.Бюджет2005.НашРекв;
       ЗаполнитьКлиента(Рекв);
    fi;
    Номер=РАБ.ОБЛ.СледСУчетомДаты(SelfCrd,"Номер","ДатаДок",ДатаДок);
    НомерДок=Str(Номер);
    НомРейс=0;
    ДатаРейс=1.1.100;
 fi;
end;
--Обработчики событий шаблона -----
--

Конец
