-- Шаблон создан мастером бланков
-- 10.04.2000 12:35:48
--
БланкСШаблоном "Товарно-транспортная накладная", редактор ТТН;

 банк2:string;
 рс2:string;
 банк1:string;
 рс1:string;
 НаимПлат2	  :S;
 ОКПОот 	  :S=Рекв.ОКПО;
 ОКПОпол	  :S=Получатель.ОКПО;
 ОКПОплат	  :S=Плательщик.ОКПО;
 ИмяБух 	  :S=Рекв.ФИОБух;     --S=Рекв.ИмяБух;
 --Сумма[]	    :N=Позиции[$].Колич*Позиции[$].Цена;
 СуммаВсего	  :N=SumOfArray(Позиции[].сумма);
 СуммаНац	  :N=Позиции[$].сумма%ПрНац;
 Всего		  :N=СуммаНац+ТЗР+СуммаВсего;
 ВсегоМест	  :N=SumOfArray(Позиции[].Мест);

 Нетто		   :N=SumOfArray(Позиции[].Масса);

test11:numeric=Нетто-round(нетто);
s11:string=str(нетто,3);
s21:string=if(substr(s11,length(s11),1)<>"0","ЕДЦ3",if(substr(s11,length(s11)-1,1)<>"0","ЕДЦ2","ЕДЦ1"));
s31:string=if(test11=0,"ДОКН",s21);

test1:numeric=брутто-round(брутто);
s1:string=str(брутто,3);
s2:string=if(substr(s1,length(s1),1)<>"0","ЕДЦ3",if(substr(s1,length(s1)-1,1)<>"0","ЕДЦ2","ЕДЦ1"));
s3:string=if(test1=0,"ДОКН",s2);

 НеттоПропись	   :S=СЛО_(Нетто,S31);
 БруттоПропись	   :S=СЛО_(Брутто,S3);
 ВсегоМестПропись  :S=СЛО_(ВсегоМест,'ДОКН');
 ВсегоПропись	   :S=СЛО_(Всего,'');
 ВсегоНаименований :S=СЛО_(Позиции,'ДОКН');

 Num[] :String=Str($);
-- КоличПроп :String=If(Позиции>0, СЛО_(Позиции,'ДОКН'), "");
-- МестПроп :String=If(Позиции>0, СЛО_(ВсегоМест,'ДОКН'), "");
-- НеттоПроп :String=If(Позиции>0, СЛО_(ВсегоНетто,'ДОКН'), "");
-- БруттоПроп :String=If(Позиции>0 And ВсегоБрутто>=ВсегоНетто, СЛО_(ВсегоБрутто,'ДОКН'), "");
-- ПрилПроп :String="";
-- ВсегоПроп :String=If(Позиции>0, СЛО_(Всего), "");

-- КОММЕНТ :S;

 Брутто1 :N=SumOfArray(Позиции1[].МассаБр);

proc выходкол(f:S;i:i);
var k:integer;
  try
  k=int(КолНаимПропись);
  except
  message('dfdsfasdfasdfasdfasdfasdf');
  exit;
  end;
  КолНаимПропись=СЛО_(int(КолНаимПропись),'ДОКН');
end;


Proc ВыборТМЦ(S:S);
   Var TMPRec:Record;
   Var Iter:Integer;

   TMPRec = ОткрытьКартотеку("ТМЦ","",nil,crdRecordOnly);
   If TMPRec = NIL : 
     Exit;
   | True :
     If Позиции = 0 :
       ВставитьРамку(Позиции,Позиции+1);
     Fi;
     Раб.Документы.TMSelect(TMPRec);
     Iter = AsInteger(Template.Frame);
     Позиции[Iter].Наим = Раб.Документы.НаимТМЦ;
--     КолТреб[Iter].НомN = Раб.Документы.ПризнакТМЦ;
     Позиции[Iter].ЕдИзм= Раб.Документы.ЕдИзмТМЦ;
--     Позиции[Iter].НДС= Раб.Документы.НДСТМЦ;
   Fi;
Corp;

Proc buClFind(S:S);
var rec:record;
Var Iter:Integer;

  rec=Раб.Документы.ВыборСФильтром("ТМЦ","Коммент","");
  If Rec<>Nil:
    If Позиции = 0 :
       ВставитьРамку(Позиции,Позиции+1);
    Fi;
       Раб.Документы.TMSelect(Rec);
       Iter = AsInteger(Template.Frame);
       Позиции[Iter].Наим  = Раб.Документы.НаимТМЦ;
--	 Позиции[Iter].НДС  = Раб.Документы.НДСТМЦ;
       Позиции[Iter].ЕдИзм = Раб.Документы.ЕдИзмТМЦ;
  Fi;
Corp;

Func Выбор(S:S;I:I):L;
Var D1 :Date;

  If S="Дата":
    D1=Calendar;
    If D1>1.1.100: Дата=D1; ^False; Else ^True; Fi;
  | S="ДатаДов":
    D1=Calendar;
    If D1>1.1.100: ДатаДов=D1; ^False; Else ^True; Fi;
  | S="ДатаДоставки":
    D1=Calendar;
    If D1>1.1.100: ДатаДоставки=D1; ^False; Else ^True; Fi;
  Fi;
Cnuf;

Proc Выбор1(S:S);
Var sk:Record;
var r:integer;
var filter:string;
var стр_отпррек,бик,КСЧЕТ,стр_пост:string;
var k,i:integer;


  If s="Button2":

    sk = ОткрытьКартотеку("Контрагент","Наше",nil,crdRecordOnly);
    If sk <> NIL: Рекв = sk;
   filter = "КОНТРАГЕНТ="+ RecordToString(sk);
   стр_пост="";
   стр_отпррек="";
   бик='';
   КСЧЕТ='';
   r=openworkarea("Банк_счета","",filter);
   try
     if records(r) > 0 :
       k=10000;
       for i=1..records(r) do
	 if ВзятьПолеЛ(r,i,"УМОЛЧАНИЕ")=true:k=i;fi;
       od;
       if k=10000:K=1;fi;
       стр_пост = ВзятьПолеС(r,k,"БАНК");
       стр_отпррек=ВзятьПолеС(r,k,"РСЧЕТ");
       бик=ВзятьПолеС(r,k,"БИК");
       КСЧЕТ=ВзятьПолеС(r,k,"КСЧЕТ");
     end;
   finally
   closeworkarea(r);
   end;
      Грузоотправитель="";
      Грузоотправитель=Рекв.ПолнИмя+', '+Рекв.ПОЧТАДРЕС+', '+Рекв.телефон; --+', '+стр_пост+', рас.счет:'+стр_отпррек+
      --', БИК:'+БИК+', Кор.Счет:'+КСЧЕТ;
      Грузоотправитель1=Рекв.КорИмя;
      БанкРеквОтпр=стр_пост+" р.с.:"+стр_отпррек;
      ПунктПогрузки = Рекв.ПОЧТАДРЕС+', '+Рекв.телефон;
   fi;
  | s="Button3":

    sk = ОткрытьКартотеку("Контрагент","",nil,crdRecordOnly);
    If sk <> NIL: Получатель = sk;
   filter = "КОНТРАГЕНТ="+ RecordToString(sk);
   стр_пост="";
   стр_отпррек="";
   бик='';
   КСЧЕТ='';
   r=openworkarea("Банк_счета","",filter);
   try
     if records(r) > 0 :
       k=10000;
       for i=1..records(r) do
	 if ВзятьПолеЛ(r,i,"УМОЛЧАНИЕ")=true:k=i;fi;
       od;
       if k=10000:K=1;fi;
       стр_пост = ВзятьПолеС(r,k,"БАНК");
       стр_отпррек=ВзятьПолеС(r,k,"РСЧЕТ");
       бик=ВзятьПолеС(r,k,"БИК");
       КСЧЕТ=ВзятьПолеС(r,k,"КСЧЕТ");
     end;
   finally
   closeworkarea(r);
   end;
   НаимПолуч="";
   НаимПолуч=Получатель.ПолнИмя+', '+Получатель.почтадрес+', '+Получатель.телефон;  --+', '+стр_пост+', рас.счет:'+стр_отпррек+
--   ', БИК:'+БИК+', Кор.Счет:'+КСЧЕТ;
   ПунктРазгрузки=Получатель.почтадрес+', '+Получатель.телефон;
   Fi;
  | s="Button1":

    sk = ОткрытьКартотеку("Контрагент","");
   If sk <> NIL: плательщик = sk;
   filter = "КОНТРАГЕНТ="+ RecordToString(sk);
   стр_пост="";
   стр_отпррек="";
   бик='';
   КСЧЕТ='';
   r=openworkarea("Банк_счета","",filter);
   try
     if records(r) > 0 :
       k=10000;
       for i=1..records(r) do
	 if ВзятьПолеЛ(r,i,"УМОЛЧАНИЕ")=true:k=i;fi;
       od;
       if k=10000:K=1;fi;
       стр_пост = ВзятьПолеС(r,k,"БАНК");
       стр_отпррек=ВзятьПолеС(r,k,"РСЧЕТ");
       бик=ВзятьПолеС(r,k,"БИК");
       КСЧЕТ=ВзятьПолеС(r,1,"КСЧЕТ");
     end;
   finally
   closeworkarea(r);
   end;
      НАИМПЛАТ="";
      НАИМПЛАТ=Плательщик.ПолнИмя+', '+Плательщик.юрадрес+', '+Плательщик.телефон+', '+стр_пост+', рас.счет:'+стр_отпррек+
      ', БИК:'+БИК+', Кор.Счет:'+КСЧЕТ;
      НАИМПЛАТ1=Плательщик.КорИмя;
      БанкРеквПлат=стр_пост+" р.с.:"+стр_отпррек;
   fi;

  | s="Button6":
    buClFind("");
  | s="Button7":
    ВыборТМЦ("");
  Fi;
Corp;


PROC НомерБ(Field:s;Iter:i);
Var WW:Integer;
  WW = ЦЕЛ(НомерБум);
  If WW > 0 And  Номер <> WW :
    Номер=WW;
  Fi;
КОНЕЦ;




Proc Ins(S:S);
  InsertFrame(Позиции, AsInteger(Template.Frame)+1);
Corp;

Proc Del(S:S);
  DeleteFrame(Позиции, AsInteger(Template.Frame));
Corp;

Proc OK(S:S);
  EditorApply;
  Close;
Corp;

Proc Cancel(S:S);
  EditorCancel;
  Close;
Corp;

Proc Help(S:S);
Corp;

Proc NewDoc;
  if Номер=0:if BlankExist("РАБ.ТСС.БИБ.SQL"):Изсистемы=2;fi;fi;
  If Номер = 0:
    Номер=Раб.Обл.СледСУчетомГода("ТТН","Номер","Дата");
    НомерБум=СТР(Номер);
  else
  fi;
   if BlankExist("РАБ.ТСС.БИБ.SQL"):
      if Изсистемы=0:Изсистемы=2;fi;
  fi;
Corp;


proc выход2(f:S;i:i);
if f='грузоотправитель':
   БанкРеквОтпр='';
fi;
if f='НаимПлат':
   БанкРеквПлат='';
fi;


end;



Func ФИО_ПриОбзоре(Сек: Строка; Стр: Целое; Столб: Целое; Тек: Строка): Строка;
var temp: Record;
var m_ФИО,m_Дол: String;
 temp=ОткрытьКартотеку("Сотрудники","",nil,crdRecordOnly);
 if temp<>nil:
   m_ФИО=GetCardFieldS("Сотрудники",temp,"ФИОТ");
  if (Сек = "Сек3" and Столб = 12) or (Сек = "" and (Столб= 4 or Столб=2)) or (Сек = "Сек1" and Столб = 10):
  else
    temp = GetCardFieldr("Сотрудники",temp,"Должность");
     if temp <> nil:
       m_Дол = GetCardFieldS("ДОЛЖНОСТИ",temp,"Долж");
     else
       m_Дол = "";
     end;

      if Сек = "Сек1" and Стр = 1 and Столб = 6:
	Должность1=m_Дол;
      elsif Сек = "Сек2" and Стр = 1:
	ФИО3=ФИО2;
	Должность2=m_Дол;
	Должность3=m_Дол;
      elsif Сек = "Сек3" and Стр = 1 and Столб = 6:
	Должность3=m_Дол;
      elsif Сек = "Сек0" and Столб =13:
	ПринялДол=m_Дол;
      elsif Сек = ""   and Столб =12:
	ДолжПолуч=m_Дол;
      end;

  end;
   return m_ФИО;
 end;	--выбрали сотрудника
return Тек;  -- не выбрали
end;


Proc OnOpen(Create: Logical);
  Раб.Настр_Печать.Cfg("","Накладные.ттн.cfg");
end;


end
