БЛАНКСШАБЛОНОМ "ТРЕБОВАНИЕ-НАКЛАДНАЯ. Типовая межотраслевая форма № М-11";

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

НомерДок:S;
Учр:S;
ОКПО:S;
var ДатаДок:D;
var КодОпер:S;
var ПодрОтпр:S;
var ПодрОтпр_:S=if(Name_A(ПодрОтпр)=" " or Name_A(ПодрОтпр)="",ПодрОтпр,Name_A(ПодрОтпр));
var ВД_Отпр:S;
var ПодрПолуч:S;
var ПодрПолуч_:S=if(Name_A(ПодрПолуч)=" " or Name_A(ПодрПолуч)="",ПодрПолуч,Name_A(ПодрПолуч));
var ВД_Получ:S;
var КодСч:S;
var КодАн:S;
var УчЕд:S;
var ФИО_ЧерезКого:S;
var ФИО_Затребовал:S;
var ФИО_Разрешил:S;

var A:S="+";
var D:S="-";

var Упр:i;
var Сч[]:S;
var Ан[]:S;
var Наим[]:S;
var Номенкл[]:S;
var ЕдИзмКод[]:S;
var ЕдИзмНаим[]:S;
var Кол_З[]:N;
var Кол_О[]:N;
var Цена[]:N;
var Сумма[]:N;
var СкладНом[]:S;

Должн_Отпуск:S;
ФИО_Отпуск:S;
var Должн_Получ:S;
var ФИО_Получ:S;

var SelfCfg:S="ТББ.ДОКУМЕНТЫ.ДЕНДОК.ОКУД_0315006.000.cfg";
--
--Процедуры и функции -------------
Proc Очистить;
 ClearVariable(КодОпер);
 ClearVariable(ПодрОтпр);
 ClearVariable(ВД_Отпр);
 ClearVariable(ПодрПолуч);
 ClearVariable(ВД_Получ);
 ClearVariable(КодСч);
 ClearVariable(КодАн);
 ClearVariable(УчЕд);
 ClearVariable(Упр);
 ClearVariable(Сч);
 ClearVariable(Ан);
 ClearVariable(Наим);
 ClearVariable(Номенкл);
 ClearVariable(ЕдИзмКод);
 ClearVariable(ЕдИзмНаим);
 ClearVariable(Кол_З);
 ClearVariable(Кол_О);
 ClearVariable(Цена);
 ClearVariable(Сумма);
 ClearVariable(СкладНом);
end;
--Процедуры и функции -------------                           
--
--
--Обработчики событий полей шаблона-----
Func НомерДок_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var I:i;
 Template.HideEditor(False);
 НомерДок=Str(Int(НомерДок)+1);
 Return Cur;
end;

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

Func ДатаДок_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var tmp:D;
 Template.HideEditor(False);
 tmp=Calendar;
 if not tmp=1.1.100:
    PutVariableD(AsString(Template.Field),tmp);
 fi;
 Return Cur;
end;

Func Подр_OnEnter(FieldName: String; Iter: Integer): logical;
var tmp:S;
 FieldName=SubStr(FieldName,1,Length(FieldName)-1);
 tmp=GetVariableS(FieldName);
 tmp=AnaElection("П.*",False,False,tmp);
 if not tmp="":
    PutVariableS(FieldName,tmp);
 fi;
 Return False;
end;

Func Сч_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var tmp,Field:S;
var Iter:I;
 Template.HideEditor(False);
 Iter=AsInteger(Template.Frame);
 Field=AsString(Template.Field)+"["+Str(Iter)+"]";
 tmp=AccountElection("*",False,GetVariableS(Field));
 if not tmp="":
    PutVariableS(Field,tmp);
 fi;
 Return Cur;
end;

Func Ан_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var tmp,Field:S;
var Iter:I;
 Template.HideEditor(False);
 Iter=AsInteger(Template.Frame);
 Field=AsString(Template.Field)+"["+Str(Iter)+"]";
 if Match(Field,"КодАн*"): tmp=КодСч;
   |True: tmp=Сч[Iter];
 fi;
 tmp=Раб.Бюджет2005.СписокСправ(tmp,0,"");
 tmp=AnaElection(tmp,False,False,GetVariableS(Field));
 if not tmp="":
    if Match(Field,"Ан*"):
       Наим[Iter]=Name_A(tmp);
       if Наим[Iter]="" or Наим[Iter]=" ": Наим[Iter]=tmp; fi;
    fi;
    PutVariableS(Field,SubStr(tmp,Pos(".",tmp)+1,255));
 fi;
 Return Cur;
end;

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

Proc Сум_onExit(FieldName: String; Iter: Integer);
 if FieldName="Кол_О":
    if not Цена[Iter]=0:  Сумма[Iter]=Кол_О[Iter]*Цена[Iter];
      |not Сумма[Iter]=0: Цена[Iter]=Сумма[Iter]/Кол_О[Iter];
    fi;
   |FieldName="Цена":
    if not Кол_О[Iter]=0: Сумма[Iter]=Кол_О[Iter]*Цена[Iter];
      |not Сумма[Iter]=0: Кол_О[Iter]=Сумма[Iter]/Цена[Iter];
    fi;
   |FieldName="Сумма":
    if not Цена[Iter]=0:  Кол_О[Iter]=Сумма[Iter]/Цена[Iter];
      |not Кол_О[Iter]=0: Цена[Iter]=Сумма[Iter]/Кол_О[Iter];
    fi;
 fi;
end;

Func A_OnEnter(FieldName: String; Iter: Integer): logical;
 InsertFrame(Упр,Iter+1);
 Return False;
end;

Func D_OnEnter(FieldName: String; Iter: Integer): logical;
 DeleteFrame(Упр,Iter);
 Return False;
end;
--Обработчики событий полей шаблона-----
--
--Обработчики событий объектов шаблона-----
Proc btnПечать_onClick (Sender:S);
var Iter:I;
 if КолКопий<=0: КолКопий=1; fi;
 if КолКопий>2:
    if EnqOkCancel("Вы уверены, что хотите распечатать "+Str(КолКопий)+" копий документа ?")=cmCancel:
       Message("Отказ от печати");
       Exit;
    fi;
 fi;
 Раб.Настр_Печать.Prn("","",SelfCfg,"",КолКопий);
end;

Proc btnОчистить_OnClick(Sender: String);
 if EnqOkCancel("Вы уверены, что хотите очистить форму ?",mtWarning)=cmOk:
    Очистить;
 fi;
end;

Proc btnЗакрыть_OnClick(Sender: String);
 Close;
end;
--Обработчики событий объектов шаблона-----
--
--
--Обработчики событий шаблона -----
Proc OnOpen(Create: Logical);
 Раб.Настр_Печать.Cfg("",SelfCfg);
end;
--Обработчики событий шаблона -----
--


КОНЕЦ