-- Шаблон создан мастером бланков
-- 19.02.2007 10:33:15
--
БланкСШаблоном "Сведения о заключенном контракте (его изменении)";

var f18:L;

fMDuplex:L=False; --нуно переписывать форму т.к. если есть периодические секции невозможно точно вычислить границы листов

var Секрет:I;
var Секрет_:S=Раб.Договор.Секретность(Секрет,False);

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

var ДатаСвед:D=[ToDay];
var Заказчик:Record;
var Заказчик_ПолнИмя1:S;
var Заказчик_ПолнИмя2:S;
var Заказчик_ПолнИмя:S=Заказчик_ПолнИмя1+Заказчик_ПолнИмя2;
var Заказчик_КорИмя:S;
var Заказчик_ИНН:S;
var Заказчик_КПП:S;
var Заказчик_ИКЗ:S;

var ИКЗ:S;
var ТипСвед:S=["Первичные"];
var НППО:S;
var ОКТМО:S;
var НаимБюдж:S;
var КодБюдж:S;
var НаимВнеБюдж:S;
var ВидВнеБюдж:S;
var СпособРазмещЗаказ:S;
var РазмещЗаказ:S;
var ДатаИтог:D;
var УпрРДО:I;
var РеквДокОсн[]:S;
var ДатаДок:D;
var ДатаК:D;
var НомерДок:S;
var Пер:S;
var ОКВ:S;
var НаимОКВ:S;
var НомИзв:S;
var СумДок:N;
var Ном_Реестр_ОФК:S;
var СумОб:N;
var НРЗ_БГ:S;
var НРЗ_Аннул_КТ:S;
var Курс:N;
var НомБО:S;
var СумДокРуб:N=СумДок*Курс;
var ФормулаЦены1:S;
var ФормулаЦены2:S;
var ФормулаЦены3:S;
var ФормулаЦены4:S;

var УпрСРЗ_20010:L=(РазмещЗаказ="20010");
var УпрСРЗ_20020:L=(РазмещЗаказ="20020");
var УпрСРЗ_20040:L=(РазмещЗаказ="20040");
var УпрСРЗ_20050:L=(РазмещЗаказ="20050");
var УпрСРЗ_20060:L=(РазмещЗаказ="20060");
var УпрСРЗ_20070:L=(РазмещЗаказ="20070");
var УпрСРЗ_20080:L=(РазмещЗаказ="20080");
var УпрСРЗ_20100:L=(РазмещЗаказ="20100");
var УпрСРЗ_20110:L=(РазмещЗаказ="20110");
var УпрСРЗ_20120:L=(РазмещЗаказ="20120");
var УпрСРЗ_20150:L=(РазмещЗаказ="20150");
var УпрСРЗ_20170:L=(РазмещЗаказ="20170");
var УпрСРЗ_20180:L=(РазмещЗаказ="20180");
var УпрСРЗ_20190:L=(РазмещЗаказ="20190");
var УпрСРЗ_20200:L=(РазмещЗаказ="20200");
var УпрСРЗ_20210:L=(РазмещЗаказ="20210");
var УпрСРЗ_20220:L=(РазмещЗаказ="20220");
var УпрСРЗ_20300:L=(РазмещЗаказ="20300");
var УпрСРЗ_20310:L=(РазмещЗаказ="20310");
var УпрСРЗ_20330:L=(РазмещЗаказ="20330");
var УпрСРЗ_20340:L=(РазмещЗаказ="20340");
var УпрСРЗ_20350:L=(РазмещЗаказ="20350");
var УпрСРЗ_20370:L=(РазмещЗаказ="20370");
var УпрСРЗ_20380:L=(РазмещЗаказ="20380");
var УпрСРЗ_20410:L=(РазмещЗаказ="20410");
var УпрСРЗ_0:L=(РазмещЗаказ="" or РазмещЗаказ="11042" or РазмещЗаказ="11052" or РазмещЗаказ="11062" or РазмещЗаказ="12022" or РазмещЗаказ="20030" or РазмещЗаказ="20090" or РазмещЗаказ="20130" or РазмещЗаказ="20140" or РазмещЗаказ="20160" or РазмещЗаказ="20320" or РазмещЗаказ="20360" or РазмещЗаказ="20390" or РазмещЗаказ="20400" or РазмещЗаказ="30000" or (not УпрСРЗ_20010 and not УпрСРЗ_20020 and not УпрСРЗ_20040 and not УпрСРЗ_20050 and not УпрСРЗ_20060 and not УпрСРЗ_20070 and not УпрСРЗ_20080 and not УпрСРЗ_20100 and not УпрСРЗ_20110 and not УпрСРЗ_20120 and not УпрСРЗ_20150 and not УпрСРЗ_20170 and not УпрСРЗ_20180 and not УпрСРЗ_20190 and not УпрСРЗ_20200 and not УпрСРЗ_20210 and not УпрСРЗ_20220 and not УпрСРЗ_20300 and not УпрСРЗ_20310 and not УпрСРЗ_20330 and not УпрСРЗ_20340 and not УпрСРЗ_20350 and not УпрСРЗ_20370 and not УпрСРЗ_20380 and not УпрСРЗ_20410));

var AРДО:S="+";
var DРДО:S="-";


var Год1[]:S;
var Год1_[]:S=if(Год1[$]="","на"+Chr(13)+"20___"+Chr(13)+"год","на"+Chr(13)+"20"+Год1[$]+Chr(13)+"год");
var Год2[]:S;
var Год2_[]:S=if(Год2[$]="","на"+Chr(13)+"20___"+Chr(13)+"год","на"+Chr(13)+"20"+Год2[$]+Chr(13)+"год");
var A1:S="+";
var D1:S="-";

var Упр1:I;
var Р1_Key  []:S;
var Р1_КБК  []:S;
var Р1_ФАИП []:S;
var Р1_Сум1 []:N;
var Р1_Сум2 []:N;
var Р1_Сум3 []:N;
var Р1_Сум4 []:N;
var Р1_Сум5 []:N;
var Р1_Сум6 []:N;
var Р1_Сум7 []:N;
var Р1_Сум8 []:N;
var Р1_Сум9 []:N;
var Р1_Сум10[]:N;
var Р1_Прим []:S;

var Итог_Р1_Сум1 :N=SumOfArray(Р1_Сум1 ,Упр1);
var Итог_Р1_Сум2 :N=SumOfArray(Р1_Сум2 ,Упр1);
var Итог_Р1_Сум3 :N=SumOfArray(Р1_Сум3 ,Упр1);
var Итог_Р1_Сум4 :N=SumOfArray(Р1_Сум4 ,Упр1);
var Итог_Р1_Сум5 :N=SumOfArray(Р1_Сум5 ,Упр1);
var Итог_Р1_Сум6 :N=SumOfArray(Р1_Сум6 ,Упр1);
var Итог_Р1_Сум7 :N=SumOfArray(Р1_Сум7 ,Упр1);
var Итог_Р1_Сум8 :N=SumOfArray(Р1_Сум8 ,Упр1);
var Итог_Р1_Сум9 :N=SumOfArray(Р1_Сум9 ,Упр1);
var Итог_Р1_Сум10:N=SumOfArray(Р1_Сум10,Упр1);

var A2:S="+";
var D2:S="-";

var Упр2:I;
var Р2_Key  []:S;
var Р2_КБК  []:S;
var Р2_Сум1 []:N;
var Р2_Сум2 []:N;
var Р2_Сум3 []:N;
var Р2_Сум4 []:N;
var Р2_Сум5 []:N;
var Р2_Сум6 []:N;
var Р2_Сум7 []:N;
var Р2_Сум8 []:N;
var Р2_Сум9 []:N;
var Р2_Сум9 []:N;
var Р2_Сум10[]:N;
var Р2_Прим []:S;

var Итог_Р2_Сум1 :N=SumOfArray(Р2_Сум1 ,Упр2);
var Итог_Р2_Сум2 :N=SumOfArray(Р2_Сум2 ,Упр2);
var Итог_Р2_Сум3 :N=SumOfArray(Р2_Сум3 ,Упр2);
var Итог_Р2_Сум4 :N=SumOfArray(Р2_Сум4 ,Упр2);
var Итог_Р2_Сум5 :N=SumOfArray(Р2_Сум5 ,Упр2);
var Итог_Р2_Сум6 :N=SumOfArray(Р2_Сум6 ,Упр2);
var Итог_Р2_Сум7 :N=SumOfArray(Р2_Сум7 ,Упр2);
var Итог_Р2_Сум8 :N=SumOfArray(Р2_Сум8 ,Упр2);
var Итог_Р2_Сум9 :N=SumOfArray(Р2_Сум9 ,Упр2);
var Итог_Р2_Сум10:N=SumOfArray(Р2_Сум10,Упр2);

var A3:S="+";
var D3:S="-";

var Упр3:I;
var пп     []:i=$;
var КОЗ    []:S;
var КОЗ_   []:S=if(КОЗ[$]="1":"поставка товара"|КОЗ[$]="2":"выполнение работ"|КОЗ[$]="3":"оказание услуг"|КОЗ[$]="4":"приобретение объектов недвижемого имущества"|КОЗ[$]="5":"аренда имущества"|true:"");
var НаимТмц[]:S;
var ОКПД   []:S;
var ЕдИзм  []:S;
var Цена   []:N;
var Кол    []:N;
var СумТМЦ []:N;
var ТМЦ    []:Record;

var ИтогСумТМЦ:N=if(Round(СумТМЦ[MinInArray(СумТМЦ)],2)=0,СумДок,SumOfArray(СумТМЦ,Упр3));

var A4:S="+";
var D4:S="-";

var Упр4:I;
var Контр        []:Record;
var Контр_ПолнИмя[]:S;
var Контр_КорИмя []:S;
var Контр_Страна []:S;
var Контр_ОКСМ   []:S;
var Контр_Адрес  []:S;
var Контр_Адрес2 []:S;
var Контр_ИНН    []:S;
var Контр_КПП    []:S;
var Контр_Статус []:S;
var Контр_ОКОПФ  []:S;
var Контр_ОКПО   []:S;
var Контр_Телефон[]:S;

var ФИОРук:S;
var ДатаРук:D=[ДатаСвед];

var fОКВ :I;
var fОКПД:I;
var fОКЕИ:I;
var fОКСМ:I;

var Buf[]:S;

cb18: Object;

S1_1: Section;
S1_2: Section;
S1_3: Section;
S2_1: Section;
S2_2: Section;
S2_3: Section;
S3_1: Section;
S3_2: Section;
S3_3: Section;
S4_1: Section;
S4_2: Section;

S5_1: Section;
S5_2: Section;

var XS:I=2100; --Размер листа
var YS:I=2970; --Размер листа
--
var тчнКол:i=3;
--
var SelfCfg:S="РПО.Документы.ДоговорПост.Прил1_Сведения.000.cfg";
var SelfBln:S="ДОКУМЕНТЫ.ДОГОВОРПОСТ.ПРИЛ1_СВЕД_18Н";
--Процедуры и функции -------------
Proc Оформление;
 f18=Секрет>0;
 cb18.State=f18;
end;

Proc Очистить;
 ClearVariable(Заказчик);
 ClearVariable(Заказчик_ПолнИмя1);
 ClearVariable(Заказчик_ПолнИмя2);
 ClearVariable(Заказчик_КорИмя);
 ClearVariable(Заказчик_ИНН);
 ClearVariable(Заказчик_КПП);
 ClearVariable(Заказчик_ИКЗ);
 ClearVariable(ИКЗ);
 ClearVariable(ТипСвед);
 ClearVariable(НППО);
 ClearVariable(НаимБюдж);
 ClearVariable(КодБюдж);
 ClearVariable(НаимВнеБюдж);
 ClearVariable(ВидВнеБюдж);
 ClearVariable(СпособРазмещЗаказ);
 ClearVariable(РазмещЗаказ);
 ClearVariable(ДатаИтог);
 ClearVariable(УпрРДО);
 ClearVariable(РеквДокОсн);
 ClearVariable(ДатаДок);
 ClearVariable(ДатаК);
 ClearVariable(НомерДок);
 ClearVariable(Пер);
 ClearVariable(ОКВ);
 ClearVariable(НаимОКВ);
 ClearVariable(НомИзв);
 ClearVariable(СумДок);
 ClearVariable(Ном_Реестр_ОФК);
 ClearVariable(СумОб);
 ClearVariable(НРЗ_БГ);
 ClearVariable(НРЗ_Аннул_КТ);
 ClearVariable(Курс);
 ClearVariable(НомБО);
 ClearVariable(ФормулаЦены1);
 ClearVariable(ФормулаЦены2);
 ClearVariable(ФормулаЦены3);
 ClearVariable(ФормулаЦены4);

 ClearVariable(Год1);
 ClearVariable(Год2);

 ClearVariable(Упр1);
 ClearVariable(Р1_Key);
 ClearVariable(Р1_КБК);
 ClearVariable(Р1_ФАИП);
 ClearVariable(Р1_Сум1);
 ClearVariable(Р1_Сум2);
 ClearVariable(Р1_Сум3);
 ClearVariable(Р1_Сум4);
 ClearVariable(Р1_Сум5);
 ClearVariable(Р1_Сум6);
 ClearVariable(Р1_Сум7);
 ClearVariable(Р1_Сум8);
 ClearVariable(Р1_Сум9);
 ClearVariable(Р1_Сум10);
 ClearVariable(Р1_Прим);

 ClearVariable(Упр2);
 ClearVariable(Р2_Key);
 ClearVariable(Р2_КБК);
 ClearVariable(Р2_Сум1);
 ClearVariable(Р2_Сум2);
 ClearVariable(Р2_Сум3);
 ClearVariable(Р2_Сум4);
 ClearVariable(Р2_Сум5);
 ClearVariable(Р2_Сум6);
 ClearVariable(Р2_Сум7);
 ClearVariable(Р2_Сум8);
 ClearVariable(Р2_Сум9);
 ClearVariable(Р2_Сум10);
 ClearVariable(Р2_Прим);

 ClearVariable(Упр3);
 ClearVariable(КОЗ);
 ClearVariable(НаимТмц);
 ClearVariable(ОКПД);
 ClearVariable(ЕдИзм);
 ClearVariable(Цена);
 ClearVariable(Кол);
 ClearVariable(СумТМЦ);
 ClearVariable(ТМЦ);

 ClearVariable(Упр4);
 ClearVariable(Контр);
 ClearVariable(Контр_ПолнИмя);
 ClearVariable(Контр_КорИмя);
 ClearVariable(Контр_Страна);
 ClearVariable(Контр_ОКСМ);
 ClearVariable(Контр_Адрес);
 ClearVariable(Контр_Адрес2);
 ClearVariable(Контр_ИНН);
 ClearVariable(Контр_КПП);
 ClearVariable(Контр_Статус);
 ClearVariable(Контр_ОКОПФ);
 ClearVariable(Контр_ОКПО);
 ClearVariable(Контр_Телефон);
end;

Proc Пересчет (FieldName:S; Iter:I);
 if FieldName="Цена" or FieldName="Кол": СумТМЦ[Iter]=Round(Цена[Iter]*Кол[Iter],2);
   |FieldName="СумТМЦ": ОКПД[Iter]=""; ЕдИзм[Iter]=""; Цена[Iter]=0; Кол[Iter]=0;
 fi;
end;

Func ВзятьНРЗ_БГ(Призн_:S):S;
var OWA,nn:I;
var Ret:S;
 Ret="";
 if not Призн_="":
    OWA=OpenWorkArea("РПО_ОБЕСП_ИСПОЛ_ОБЯЗ","НомРЗ","not НомРЗ='' and Вид='БГ' and Обяз_Призн='"+Призн_+"'");
    Try
     nn=Records(OWA);
     if not nn=0:
        Ret=GetFieldS(OWA,nn,"НомРЗ");
     fi;
    Finally
     CloseWorkArea(OWA);
    end;
 fi;
 ^Ret;
end;

Proc Расчет (vДоговор:S);
var OWA1,OWA2,n,nr,z,OA,i,ii:I;
var tmp,Key:S;
 Очистить;
 OWA1=OpenWorkArea("РПО_Договор","","UKey="+vДоговор);
 Try
  if Records(OWA1)=0: Message("Контракт не найден",mtError); Exit; fi;
  Секрет=GetFieldI(OWA1,1,"Секрет");
  ДатаСвед=GetFieldD(OWA1,1,"ДатаСвед");
  Заказчик=GetFieldR(OWA1,1,"Учр");
  Заказчик_ПолнИмя1=GetFieldS(OWA1,1,"Учр.ПолнИмя");
  Заказчик_ПолнИмя2=GetFieldS(OWA1,1,"Учр.РПО_ПолнИмя2");
  Заказчик_КорИмя=GetFieldS(OWA1,1,"Учр.КорИмя");
  Заказчик_ИНН=GetFieldS(OWA1,1,"Учр.ИНН");
  Заказчик_КПП=GetFieldS(OWA1,1,"Учр.КПП");
  Заказчик_ИКЗ=GetFieldS(OWA1,1,"Учр.РПО_ИКЗ");
  ТипСвед=if(GetFieldI(OWA1,1,"ТипСвед")=0,"Первичные","Измененные");
  НППО=GetFieldS(OWA1,1,"ИстФин");
  ОКТМО=GetFieldS(OWA1,1,"ИстФин_ОКТМО");
  НаимБюдж=GetFieldS(OWA1,1,"НаимБюдж");
  КодБюдж=GetFieldS(OWA1,1,"КодБюдж");
  ВидВнеБюдж=GetFieldS(OWA1,1,"ВидВнеБюдж");
  НаимВнеБюдж=Раб.Договор.ВидВнеБюджетныхСредств(ВидВнеБюдж,False,"");
  РазмещЗаказ=GetFieldS(OWA1,1,"РазмещЗаказ");
  СпособРазмещЗаказ=Раб.Договор.СОП(РазмещЗаказ,False,if(Секрет>0,"18Н","136Н"));
  ДатаИтог=GetFieldD(OWA1,1,"ДатаИтог");
  InsertFrame(УпрРДО,УпрРДО+1);
  РеквДокОсн[УпрРДО]=DateToString(GetFieldD(OWA1,1,"ДатаДокОсн"));
  РеквДокОсн[УпрРДО]=Раб.Бюджет2005.Объединить(РеквДокОсн[УпрРДО],GetFieldS(OWA1,1,"НомДокОсн"),", ");
  РеквДокОсн[УпрРДО]=Раб.Бюджет2005.Объединить(РеквДокОсн[УпрРДО],GetFieldS(OWA1,1,"ВидДокОсн"),", ");
  OA=OpenArray(OWA1,1,"ДокОсн","");
  ii=Records(OA);
  for i=1..ii do
   InsertFrame(УпрРДО,УпрРДО+1);
   РеквДокОсн[УпрРДО]=DateToString(GetFieldD(OA,i,"Дат"));
   РеквДокОсн[УпрРДО]=Раб.Бюджет2005.Объединить(РеквДокОсн[УпрРДО],GetFieldS(OA,i,"Ном"),", ");
   РеквДокОсн[УпрРДО]=Раб.Бюджет2005.Объединить(РеквДокОсн[УпрРДО],GetFieldS(OA,i,"Наим"),", ");
  od;
  ДатаДок=GetFieldD(OWA1,1,"ДатаДок");
  ДатаК=GetFieldD(OWA1,1,"ДатаК");
  НомерДок=GetFieldS(OWA1,1,"НомерДок");
  Пер=GetFieldS(OWA1,1,"Пер");
  ОКВ=GetFieldS(OWA1,1,"ОКВ");
  НаимОКВ=Раб.Договор.ВзятьЗначОКВ(GetFieldS(OWA1,1,"ОКВ"),"Код","Наименование");
  НомИзв=GetFieldS(OWA1,1,"НомИзв");
  СумДок=GetFieldN(OWA1,1,"СумДок");
  Ном_Реестр_ОФК=if(ТипСвед="Первичные","",GetFieldS(OWA1,1,"Ном_Реестр_ОФК"));
  if GetFieldD(OWA1,1,"Дата_Реестр_ОФК")>=1.7.2014:
     Ном_Реестр_ОФК=SubStr(Ном_Реестр_ОФК,1,27); --ТФФ v.13
  fi;
  СумОб=GetFieldN(OWA1,1,"СумОб");
  НРЗ_БГ=ВзятьНРЗ_БГ("ДОГОВОР."+GetFieldS(OWA1,1,"Признак"));
  НРЗ_Аннул_КТ=GetFieldS(OWA1,1,"НРЗ_Аннул_КТ");
  Курс=if(ОКВ="643",0,GetFieldN(OWA1,1,"Курс")); --Уже не просит
--  Курс=if(ОКВ="643",1,GetFieldN(OWA1,1,"Курс")); --Казначейство попросило!!!!
  НомБО=if(ТипСвед="Первичные","",GetFieldS(OWA1,1,"БО.РегНомер"));
  --
  OWA2=OpenWorkArea("РПО_ДОГОВОР_ПОЗИЦИИ",if(Секрет>=1,"КБК0","КБК"),"ДОГОВОР="+vДоговор);
  Try
   nr=Records(OWA2);
   for n=1..nr do
    Год1 [1]=SubStr(GetFieldS(OWA2,n,"Год1") ,3,2);
    Год1 [2]=SubStr(GetFieldS(OWA2,n,"Год2") ,3,2);
    Год1 [3]=SubStr(GetFieldS(OWA2,n,"Год3") ,3,2);
    Год1 [4]=SubStr(GetFieldS(OWA2,n,"Год4") ,3,2);
    Год1 [5]=SubStr(GetFieldS(OWA2,n,"Год5") ,3,2);
    Год1 [6]=SubStr(GetFieldS(OWA2,n,"Год6") ,3,2);
    Год1 [7]=SubStr(GetFieldS(OWA2,n,"Год7") ,3,2);
    Год1 [8]=SubStr(GetFieldS(OWA2,n,"Год8") ,3,2);
    Год1 [9]=SubStr(GetFieldS(OWA2,n,"Год9") ,3,2);
    Год1[10]=SubStr(GetFieldS(OWA2,n,"Год10"),3,2);
    if Секрет>=1:
       tmp=GetFieldS(OWA2,n,"КБК0");
       if tmp="": Message("В карточке контракта должен быть заполнен КБК действующий на момент заключения (изменения)",mtError);  Exit; fi;
      else
       tmp=GetFieldS(OWA2,n,"КБК");
    fi;
    if GetFieldS(OWA2,n,"ВД")="1":
       tmp=Раб.Формат.ReplaceSubstr(tmp,".","");
       Key=tmp+"#"+RecordToString(GetFieldR(OWA2,n,"ФАИП"))+"#"+GetFieldS(OWA2,n,"Примеч");
       z=SearchInArray(Р1_Key,Key,true);
       if z=-1:
          z=InsertInArraySort(Р1_Key,Key);
          InsertFrame(Упр1,z);
          Р1_КБК  [z]=tmp;
          if GetFieldR(OWA2,n,"ФАИП")=nil:
             Р1_ФАИП [z]="";
            else
             Р1_ФАИП [z]=GetFieldS(OWA2,n,"ФАИП.Код");
          fi;
          Р1_Сум1 [z]=0;
          Р1_Сум2 [z]=0;
          Р1_Сум3 [z]=0;
          Р1_Сум4 [z]=0;
          Р1_Сум5 [z]=0;
          Р1_Сум6 [z]=0;
          Р1_Сум7 [z]=0;
          Р1_Сум8 [z]=0;
          Р1_Сум9 [z]=0;
          Р1_Сум10[z]=0;
          Р1_Прим [z]=GetFieldS(OWA2,n,"Примеч");
       fi;
       Р1_Сум1 [z]=Р1_Сум1 [z]+GetFieldN(OWA2,n,"СумГод1");
       Р1_Сум2 [z]=Р1_Сум2 [z]+GetFieldN(OWA2,n,"СумГод2");
       Р1_Сум3 [z]=Р1_Сум3 [z]+GetFieldN(OWA2,n,"СумГод3");
       Р1_Сум4 [z]=Р1_Сум4 [z]+GetFieldN(OWA2,n,"СумГод4");
       Р1_Сум5 [z]=Р1_Сум5 [z]+GetFieldN(OWA2,n,"СумГод5");
       Р1_Сум6 [z]=Р1_Сум6 [z]+GetFieldN(OWA2,n,"СумГод6");
       Р1_Сум7 [z]=Р1_Сум7 [z]+GetFieldN(OWA2,n,"СумГод7");
       Р1_Сум8 [z]=Р1_Сум8 [z]+GetFieldN(OWA2,n,"СумГод8");
       Р1_Сум9 [z]=Р1_Сум9 [z]+GetFieldN(OWA2,n,"СумГод9");
       Р1_Сум10[z]=Р1_Сум10[z]+GetFieldN(OWA2,n,"СумГод10");
      else
       tmp=Раб.Бюджет2005.ВзятьКодКБК(tmp,"ФКР","КОСГУ",False);
       Key=tmp+"#"+GetFieldS(OWA2,n,"Примеч");
       z=SearchInArray(Р2_КБК,tmp,True);
       if z=-1:
          z=InsertInArraySort(Р1_Key,Key);
          InsertFrame(Упр2,z);
          Р2_КБК  [z]=tmp;
          Р2_Сум1 [z]=0;
          Р2_Сум2 [z]=0;
          Р2_Сум3 [z]=0;
          Р2_Сум4 [z]=0;
          Р2_Сум5 [z]=0;
          Р2_Сум6 [z]=0;
          Р2_Сум7 [z]=0;
          Р2_Сум8 [z]=0;
          Р2_Сум9 [z]=0;
          Р2_Сум10[z]=0;
          Р2_Прим [z]=GetFieldS(OWA2,n,"Примеч");
       fi;
       Р2_Сум1[z]=Р2_Сум1[z]+GetFieldN(OWA2,n,"СумГод1");
       Р2_Сум2[z]=Р2_Сум2[z]+GetFieldN(OWA2,n,"СумГод2");
       Р2_Сум3[z]=Р2_Сум3[z]+GetFieldN(OWA2,n,"СумГод3");
       Р2_Сум4[z]=Р2_Сум4[z]+GetFieldN(OWA2,n,"СумГод4");
       Р2_Сум5[z]=Р2_Сум5[z]+GetFieldN(OWA2,n,"СумГод5");
       Р2_Сум6[z]=Р2_Сум6[z]+GetFieldN(OWA2,n,"СумГод6");
       Р2_Сум7[z]=Р2_Сум7[z]+GetFieldN(OWA2,n,"СумГод7");
       Р2_Сум8[z]=Р2_Сум8[z]+GetFieldN(OWA2,n,"СумГод8");
       Р2_Сум9[z]=Р2_Сум9[z]+GetFieldN(OWA2,n,"СумГод9");
       Р2_Сум10[z]=Р2_Сум10[z]+GetFieldN(OWA2,n,"СумГод10");
    fi;
   od;
   CopyArray(Год1,Год2);
  Finally
   CloseWorkArea(OWA2);
  end;
  SortSection(Упр1,1);
  SortSection(Упр2,1);
  if Round(Итог_Р1_Сум1+Итог_Р1_Сум2+Итог_Р1_Сум3+Итог_Р1_Сум4+Итог_Р1_Сум5+Итог_Р1_Сум6+Итог_Р1_Сум7+Итог_Р1_Сум8+Итог_Р1_Сум9+Итог_Р1_Сум10,2)=0: ClearVariable(Год1); fi;
  if Round(Итог_Р2_Сум1+Итог_Р2_Сум2+Итог_Р2_Сум3+Итог_Р2_Сум4+Итог_Р2_Сум5+Итог_Р2_Сум6+Итог_Р2_Сум7+Итог_Р2_Сум8+Итог_Р2_Сум9+Итог_Р2_Сум10,2)=0: ClearVariable(Год2); fi;
  --
  OWA2=OpenWorkArea("РПО_ДОГОВОР_ПОЗИЦИИ_ТМЦ","НП","ДОГОВОР="+vДоговор);
  Try
   nr=Records(OWA2);
   for n=1..nr do
    InsertFrame(Упр3,n);
    КОЗ    [n]=GetFieldS(OWA2,n,"КВОЗ");
    НаимТМЦ[n]=GetFieldS(OWA2,n,"НаимТМЦ");
    ОКПД   [n]=GetFieldS(OWA2,n,"ОКП");
    ЕдИзм  [n]=GetFieldS(OWA2,n,"ЕдИзм");
    Цена   [n]=GetFieldN(OWA2,n,"Цена");
    Кол    [n]=Round(GetFieldN(OWA2,n,"Кол"),тчнКол);
    СумТМЦ [n]=GetFieldN(OWA2,n,"Сум");
    ТМЦ    [n]=GetFieldR(OWA2,n,"ТМЦ");
   od;
  Finally
   CloseWorkArea(OWA2);
  end;
  --
  InsertFrame(Упр4,1);
  Контр[Упр4]=GetFieldR(OWA1,1,"Контр");
  Контр_ПолнИмя[Упр4]=GetFieldS(OWA1,1,"Контр.ПолнИмя")+GetFieldS(OWA1,1,"Контр.РПО_ПолнИмя2");
  if not Контр_ПолнИмя[Упр4]=GetFieldS(OWA1,1,"Контр.КорИмя") and not GetFieldI(OWA1,1,"Контр.Тип")=1:
     Контр_ПолнИмя[Упр4]=Контр_ПолнИмя[Упр4]+",";
     Контр_КорИмя[Упр4]=GetFieldS(OWA1,1,"Контр.КорИмя");
  fi;
  Контр_Страна[Упр4]=GetFieldS(OWA1,1,"Контр.РПО_Страна");
  Контр_ОКСМ[Упр4]=GetFieldS(OWA1,1,"Контр.РПО_ОКСМ");
  if Контр_ОКСМ[Упр4]="643": --Закомментировано по просьбе казначейства 17.02, раскоментировано по просьбе казначейства 26.02
     Контр_Страна[Упр4]="";
     Контр_ОКСМ[Упр4]="";
  fi;
  Контр_Адрес[Упр4]=if(Контр_ОКСМ[Упр4]="643" or Контр_ОКСМ[Упр4]="",GetFieldS(OWA1,1,"Контр.РПО_МН_Индекс")+","+if(GetFieldR(OWA1,1,"Контр.РПО_МН_Субъект")=nil,"",GetFieldS(OWA1,1,"Контр.РПО_МН_Субъект.Регион")+" "+GetFieldS(OWA1,1,"Контр.РПО_МН_Субъект.Код"))+","+GetFieldS(OWA1,1,"Контр.РПО_МН_НасПункт")+","+GetFieldS(OWA1,1,"Контр.РПО_МН_ОКТМО"),GetFieldS(OWA1,1,"Контр.РПО_МН_НасПункт"))+","+GetFieldS(OWA1,1,"Контр.РПО_МН_Улица")+","+GetFieldS(OWA1,1,"Контр.РПО_МН_Дом")+if(GetFieldS(OWA1,1,"Контр.РПО_МН_Офис")="","",","+GetFieldS(OWA1,1,"Контр.РПО_МН_Офис"));
  Контр_ИНН[Упр4]=GetFieldS(OWA1,1,"Контр.ИНН");
  Контр_КПП[Упр4]=GetFieldS(OWA1,1,"Контр.КПП");
  Контр_Статус[Упр4]=GetFieldS(OWA1,1,"Контр_Статус");
  Контр_ОКОПФ[Упр4]=Раб.Бюджет2005.Объединить(GetFieldS(OWA1,1,"Контр.КОПФ"),GetFieldS(OWA1,1,"Контр.ОПФ")," ");
  Контр_ОКПО[Упр4]=GetFieldS(OWA1,1,"Контр.ОКПО");
  Контр_Телефон[Упр4]=GetFieldS(OWA1,1,"Контр.Телефон");
  if Контр_Телефон[Упр4]="": Контр_Телефон[Упр4]=GetFieldS(OWA1,1,"Контр.Факс"); fi;
  Контр_Телефон[Упр4]=раб.Бюджет2005.Объединить(Контр_Телефон[Упр4],GetFieldS(OWA1,1,"Контр.EMail"),", ");
  --
  OA=OpenArray(OWA1,1,"Контр2","");
  ii=Records(OA);
  for i=1..ii do
   InsertFrame(Упр4,Упр4+1);
   Контр[Упр4]=GetFieldR(OA,i,"Контр");
   Контр_ПолнИмя[Упр4]=GetFieldS(OA,i,"Контр.ПолнИмя")+GetFieldS(OA,i,"Контр.РПО_ПолнИмя2");
   if not Контр_ПолнИмя[Упр4]=GetFieldS(OA,i,"Контр.КорИмя") and not GetFieldI(OA,i,"Контр.Тип")=1:
      Контр_ПолнИмя[Упр4]=Контр_ПолнИмя[Упр4]+",";
      Контр_КорИмя[Упр4]=GetFieldS(OA,i,"Контр.КорИмя");
   fi;
   Контр_Страна[Упр4]=GetFieldS(OA,i,"Контр.РПО_Страна");
   Контр_ОКСМ[Упр4]=GetFieldS(OA,i,"Контр.РПО_ОКСМ");
   if Контр_ОКСМ[Упр4]="643": --Закомментировано по просьбе казначейства 17.02, раскоментировано по просьбе казначейства 26.02
      Контр_Страна[Упр4]="";
      Контр_ОКСМ[Упр4]="";
   fi;
   Контр_Адрес[Упр4]=if(Контр_ОКСМ[Упр4]="643" or Контр_ОКСМ[Упр4]="",GetFieldS(OA,i,"Контр.РПО_МН_Индекс")+","+if(GetFieldR(OA,i,"Контр.РПО_МН_Субъект")=nil,"",GetFieldS(OA,i,"Контр.РПО_МН_Субъект.Регион")+" "+GetFieldS(OA,i,"Контр.РПО_МН_Субъект.Код"))+","+GetFieldS(OA,i,"Контр.РПО_МН_НасПункт")+","+GetFieldS(OA,i,"Контр.РПО_МН_ОКТМО"),GetFieldS(OA,i,"Контр.РПО_МН_НасПункт"))+","+GetFieldS(OA,i,"Контр.РПО_МН_Улица")+","+GetFieldS(OA,i,"Контр.РПО_МН_Дом")+if(GetFieldS(OA,i,"Контр.РПО_МН_Офис")="","",","+GetFieldS(OA,i,"Контр.РПО_МН_Офис"));
   Контр_ИНН[Упр4]=GetFieldS(OA,i,"Контр.ИНН");
   Контр_КПП[Упр4]=GetFieldS(OA,i,"Контр.КПП");
   Контр_Статус[Упр4]=GetFieldS(OA,i,"Контр_Статус");
   Контр_ОКОПФ[Упр4]=Раб.Бюджет2005.Объединить(GetFieldS(OA,i,"Контр.КОПФ"),GetFieldS(OA,i,"Контр.ОПФ")," ");
   Контр_ОКПО[Упр4]=GetFieldS(OA,i,"Контр.ОКПО");
   Контр_Телефон[Упр4]=GetFieldS(OA,i,"Контр.Телефон");
   if Контр_Телефон[Упр4]="": Контр_Телефон[Упр4]=GetFieldS(OA,i,"Контр.Факс"); fi;
   Контр_Телефон[Упр4]=раб.Бюджет2005.Объединить(Контр_Телефон[Упр4],GetFieldS(OA,i,"Контр.EMail"),", ");
  od;
  CloseWorkArea(OA);
  --
  ФИОРук=GetFieldS(OWA1,1,"ФИОРук");
  ДатаРук=GetFieldD(OWA1,1,"ДатаРук");
 Finally
  CloseWorkArea(OWA1);
 end;
 Оформление;
 Message("Расчет завершен");
end;

Func ПроверитьКлассификатор (vCrd:S; vField:S; Val:S):L;
var OWA:I;
 OWA=OpenWorkArea(vCrd,"",vField+"='"+Val+"'");
 Try
  if Records(OWA)=0: ^False; fi;
 Finally
  CloseWorkArea(OWA);
 end;
 ^True;
end;
--Процедуры и функции -------------                           
--
--
--Обработчики событий полей шаблона-----
Func Секрет_OnEnter(FieldName: String; Iter: Integer): logical;
 Секрет=Int(Раб.Договор.Секретность(Секрет,True));
 Return False;
end;

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

Func Заказчик_OnEnter(FieldName: String; Iter: Integer): logical;
var Rec: Record;
 Rec=OpenCardFile("Контрагент","--Наше",Заказчик,crdRecordOnly);
 if Rec=nil: ^False; fi;
 Заказчик=Rec;
 Заказчик_ПолнИмя1=GetCardFieldS("Контрагент",Rec,"ПолнИмя");
 Заказчик_ПолнИмя2=GetCardFieldS("Контрагент",Rec,"РПО_ПолнИмя2");
 Заказчик_КорИмя=GetCardFieldS("Контрагент",Rec,"КорИмя");
 Заказчик_ИНН=GetCardFieldS("Контрагент",Rec,"ИНН");
 Заказчик_КПП=GetCardFieldS("Контрагент",Rec,"КПП");
 Заказчик_ИКЗ=GetCardFieldS("Контрагент",Rec,"РПО_ИКЗ");
 ФИОРук=GetCardFieldS("Контрагент",Rec,"ФИОРук");
 Return False;
end;

Proc Заказчик_OnExit(FieldName: String; Iter: Integer);
 Заказчик=nil;
 Заказчик_ПолнИмя1="";
 Заказчик_ПолнИмя2="";
 Заказчик_КорИмя="";
 Заказчик_ИНН="";
 Заказчик_КПП="";
 Заказчик_ИКЗ="";
end;

Func ТипСвед_OnEnter(FieldName: String; Iter: Integer): logical;
var n:i;
 ClearVariable(Buf);
 Buf[1]="Первичные";
 Buf[2]="Измененные";
 n=Alternate("Тип сведений",Buf,-1,SearchInArray(Buf,ТипСвед),12);
 if n=0: ^False; fi;
 ТипСвед=Buf[n];
 Return False;
end;

Func КодБюдж_OnEnter(FieldName: String; Iter: Integer): logical;
 КодБюдж=Раб.Договор.НаименованиеБюджета(КодБюдж,True,"18Н");
 НаимБюдж=Раб.Договор.НаименованиеБюджета(КодБюдж,False,"18Н");
 Return False;
end;

Proc КодБюдж_OnExit(FieldName: String; Iter: Integer);
 НаимБюдж="";
end;

Func ВидВнеБюдж_OnEnter(FieldName: String; Iter: Integer): logical;
 ВидВнеБюдж=Раб.Договор.ВидВнеБюджетныхСредств(ВидВнеБюдж,True,"18Н");
 НаимВнеБюдж=Раб.Договор.ВидВнеБюджетныхСредств(ВидВнеБюдж,False,"18Н");
 Return False;
end;

Proc ВидВнеБюдж_OnExit(FieldName: String; Iter: Integer);
 НаимВнеБюдж="";
end;

Func РазмещЗаказ_OnEnter(FieldName: String; Iter: Integer): logical;
 РазмещЗаказ=Раб.Договор.СОП(РазмещЗаказ,True,if(Секрет>0,"18Н","136Н"));
 СпособРазмещЗаказ=Раб.Договор.СОП(РазмещЗаказ,False,"18Н");
 Template.Field="РазмещЗаказ";
 Return False;
end;

Proc РазмещЗаказ_OnExit(FieldName: String; Iter: Integer);
 СпособРазмещЗаказ="";
end;

Func ОКВ_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Rec: Record;
 Template.HideEditor(False);
 if fОКВ=0: fОКВ=Раб.Договор.ЗагрузСправ("РПО_ОКВ",PlanVar("Std_Rpo")+"\DBF\РПО_ОКВ",ieCRD,"Загрузить справочник видов валют ОКВ ?"); fi;
 if fОКВ=1:
    Rec=Раб.Документы.ВыборСФильтром("РПО_ОКВ","НАИМЕНОВАНИЕ","");
    if Rec=nil: ^Cur; fi;
    ОКВ=GetCardFieldS("РПО_ОКВ",Rec,"КОД");
    НаимОКВ=GetCardFieldS("РПО_ОКВ",Rec,"НАИМЕНОВАНИЕ");
 fi;
 Return Cur;
end;

Func A_onEnter(FieldName: String; Iter: Integer): logical;
 if FieldName="AРДО": InsertFrame(УпрРДО,Iter+1);
   |FieldName="A1"  : InsertFrame(Упр1  ,Iter+1);
   |FieldName="A2"  : InsertFrame(Упр2  ,Iter+1);
   |FieldName="A3"  : InsertFrame(Упр3  ,Iter+1);
   |FieldName="A4"  : InsertFrame(Упр4  ,Iter+1);
 fi;
 Return False;
end;


Func D_onEnter(FieldName: String; Iter: Integer): logical;
 if FieldName="DРДО": DeleteFrame(УпрРДО,Iter);
   |FieldName="D1"  : DeleteFrame(Упр1  ,Iter);
   |FieldName="D2"  : DeleteFrame(Упр2  ,Iter);
   |FieldName="D3"  : DeleteFrame(Упр3  ,Iter);
   |FieldName="D4"  : DeleteFrame(Упр4  ,Iter);
 fi;
 Return False;
end;

Func Год_OnEnter(FieldName: String; Iter: Integer): logical;
var i:i;
 ClearVariable(Buf);
 for i=1..12 do Buf[i]=Str(Year(ToDay)+i-3); od;
 i=Alternate("Выбор года",Buf,30,3,12);
 if i=0: ^False; fi;
 FieldName=Раб.Формат.ReplaceSubstr(FieldName,"_","");
 PutVariableS(FieldName,SubStr(Buf[i],3,2));
 Return False;
end;

Proc Год_onExit(FieldName: String; Iter: Integer);
 FieldName=Раб.Формат.ReplaceSubstr(FieldName,"_","");
 PutVariableS(FieldName,"");
end;

Func КОЗ_OnEnter(FieldName: String; Iter: Integer): logical;
var n,i1,i2:i;
 ClearVariable(Buf);
 Buf[1]="1 поставка товара";
 Buf[2]="2 выполнение работ";
 Buf[3]="3 оказание услуг";
 Buf[4]="4 приобретение объектов недвижемого имущества";
 Buf[5]="5 аренда имущества";
 n=Alternate("Код вида объекта закупки",Buf,-1,Int(КОЗ[Iter]),12);
 if not n=0:
    if FieldName="ЗаполКОЗ":
       i1=1;
       i2=Упр3;
      else
       i1=Iter;
       i2=Iter;
    fi;
    for Iter=i1..i2 do
     КОЗ[Iter]=Str(n);
    od;
 fi;
 Return False;
end;

Proc КОЗ_OnExit(FieldName: String; Iter: Integer);
 КОЗ[Iter]="";
end;

Proc НаимТМЦ_OnExit(FieldName: String; Iter: Integer);
 ТМЦ[Iter]=nil;
end;

Func НаимТМЦ_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Rec: Record;
var Iter: I;
 Template.HideEditor(False);
 Iter=AsInteger(Template.Frame);
 if not ТМЦ[Iter]=nil:
    rec=OpenCardFile("ТМЦ","",ТМЦ[Iter],crdRecordOnly);
   else
    rec=Раб.Документы.ВыборСФильтром("ТМЦ","КОММЕНТ","");
 fi;
 if Rec=nil: ^Cur; fi;
 ТМЦ[Iter]=Rec;
 НаимТМЦ[Iter]=GetCardFieldS("ТМЦ",Rec,"КОММЕНТ");
 ОКПД[Iter]=GetCardFieldS("ТМЦ",Rec,"ОКДП");
 ЕдИзм[Iter]=GetCardFieldS("ТМЦ",Rec,"ОКЕИ");
 if ЕдИзм[Iter]="": ЕдИзм[Iter]=GetCardFieldS("ТМЦ",Rec,"ЕдИзм"); fi;
 Return Cur;
end;

Func ОКПД_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Iter:I;
var Rec: Record;
 Template.HideEditor(False);
 Iter=AsInteger(Template.Frame);
 rec=Раб.Договор.ОКПД_Lookup(selfbln+".ОКПД["+Str(Iter)+"]",selfbln+".fОКПД","Length(Код)=12");
 if not rec=nil:
    ОКПД[Iter]=GetCardFieldS("РПО_ОКПД",Rec,"Код");
 fi;
 Return Cur;
end;

Func ЕдИзм_OnVerify(FieldName: String; Iter: Integer; Value: String): Logical;
 if not ПроверитьКлассификатор("РПО_ОКЕИ","НКБО",Value):
    if EnqOkCancel("Единица измерения "+Value+" не найдена в классификаторе ОКЕИ^MИгнорировать предупреждение ?",mtWarning)=cmCancel:
       Template.Field="ЕдИзм";
       Template.Frame=Iter;
    fi;
 fi;
 Return True;
end;

Func ЕдИзм_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Rec: Record;
var Iter:I;
 Template.HideEditor(False);
 if fОКЕИ=0: fОКЕИ=Раб.Договор.ЗагрузСправ("РПО_ОКЕИ",PlanVar("Std_Rpo")+"\DBF\РПО_ОКЕИ",ieCRD,"Загрузить справочник единиц измерений ОКЕИ ?"); fi;
 if fОКЕИ=1:
    Iter=AsInteger(Template.Frame);
    Rec=Раб.Документы.ВыборСФильтром("РПО_ОКЕИ","НАИМЕНОВАНИЕ","");
    if Rec=nil: ^Cur; fi;
    ЕдИзм[Iter]=GetCardFieldS("РПО_ОКЕИ",Rec,"НКБО");
 fi;
 Return Cur;
end;

Proc Сум_OnExit(FieldName: String; Iter: Integer);
var a:i;
 a=if(FieldName="Кол",тчнКол,2);
 PutVariableN(FieldName,Round(GetVariableN(FieldName),a));
 Пересчет(FieldName,Iter);
end;

Func Контр_onEnter(FieldName: String; Iter: Integer): logical;
var rec:record;
 if not Контр[Iter]=nil:
    rec=OpenCardFile("Контрагент","",Контр[Iter],crdRecordOnly);
   else
    rec=Раб.Документы.ВыборСФильтром("Контрагент","ПолнИмя","");
 fi;
 if Rec=nil: ^False; fi;
 Контр[Iter]=Rec;
 Контр_ПолнИмя[Iter]=GetCardFieldS("Контрагент",Rec,"ПолнИмя")+GetCardFieldS("Контрагент",Rec,"РПО_ПолнИмя2");
 if not Контр_ПолнИмя[Iter]=GetCardFieldS("Контрагент",Rec,"КорИмя") and not GetCardFieldI("Контрагент",Rec,"Тип")=1:
    Контр_ПолнИмя[Iter]=Контр_ПолнИмя[Iter]+",";
    Контр_КорИмя[Iter]=GetCardFieldS("Контрагент",Rec,"КорИмя");
 fi;
 Контр_Страна[Iter]=GetCardFieldS("Контрагент",Rec,"РПО_Страна");
 Контр_ОКСМ[Iter]=GetCardFieldS("Контрагент",Rec,"РПО_ОКСМ");
 if Контр_Страна[Iter]="643":
    Контр_Страна[Iter]="";
    Контр_ОКСМ[Iter]="";
 fi;
 Контр_Адрес[Iter]=if(Контр_ОКСМ[Iter]="643" or Контр_ОКСМ[Iter]="",GetCardFieldS("Контрагент",Rec,"РПО_МН_Индекс")+","+if(GetCardFieldR("Контрагент",Rec,"РПО_МН_Субъект")=nil,"",GetCardFieldS("Контрагент",Rec,"РПО_МН_Субъект.Регион")+" "+GetCardFieldS("Контрагент",Rec,"РПО_МН_Субъект.Код"))+","+GetCardFieldS("Контрагент",Rec,"РПО_МН_НасПункт")+","+GetCardFieldS("Контрагент",Rec,"РПО_МН_ОКТМО"),GetCardFieldS("Контрагент",Rec,"РПО_МН_НасПункт"))+","+GetCardFieldS("Контрагент",Rec,"РПО_МН_Улица")+","+GetCardFieldS("Контрагент",Rec,"РПО_МН_Дом")+if(GetCardFieldS("Контрагент",Rec,"РПО_МН_Офис")="","",","+GetCardFieldS("Контрагент",Rec,"РПО_МН_Офис"));
 Контр_ИНН[Iter]=GetCardFieldS("Контрагент",Rec,"ИНН");
 Контр_КПП[Iter]=GetCardFieldS("Контрагент",Rec,"КПП");
 Контр_Статус[Iter]="";
 Контр_ОКОПФ[Iter]=GetCardFieldS("Контрагент",Rec,"КОПФ");
 Контр_ОКПО[Iter]=GetCardFieldS("Контрагент",Rec,"ОКПО");
 Контр_Телефон[Iter]=GetCardFieldS("Контрагент",Rec,"Телефон");
 if Контр_Телефон[Iter]="": Контр_Телефон[Iter]=GetCardFieldS("Контрагент",Rec,"Факс"); fi;
 Контр_Телефон[Iter]=раб.Бюджет2005.Объединить(Контр_Телефон[Упр4],GetCardFieldS("Контрагент",Rec,"EMail"),", ");
 Return False;
end;

Func Контр_Статус_OnEnter(FieldName: String; Iter: Integer): logical;
 Контр_Статус[Iter]=Раб.Договор.СтатусКонтрагента(Контр_Статус[Iter],True,"18Н");
 Return False;
end;


Proc Контр_Статус_OnExit(FieldName: String; Iter: Integer);
 Контр_Статус[Iter]="";
end;

Func ОКСМ_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Rec: Record;
var Iter:I;
 Template.HideEditor(False);
 Iter=AsInteger(Template.Frame);
 if fОКСМ=0: fОКСМ=Раб.Договор.ЗагрузСправ("РПО_ОКСМ",PlanVar("Std_Rpo")+"\DBF\РПО_ОКСМ",ieCRD,"Загрузить общероссийский классификатор стран мира ОКСМ ?"); fi;
 if fОКСМ=1:
    Rec=Раб.Документы.ВыборСФильтром("РПО_ОКСМ","ПОЛНИМЯ","");
    if Rec=nil: ^Cur; fi;
    Контр_Страна[Iter]=GetCardFieldS("РПО_ОКСМ",Rec,"ПОЛНИМЯ");
    Контр_ОКСМ[Iter]=GetCardFieldS("РПО_ОКСМ",Rec,"КОД");
 fi;
 Return Cur;
end;

Func Контр_Статус_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var n,Iter:i;
 Template.HideEditor(False);
 Iter=AsInteger(Template.Frame);
 ClearVariable(Buf);
 Buf[1]="Субъект малого предпринимательства";
 Buf[2]="Учреждение уголовно исправительной системы";
 Buf[3]="Общероссийские общественные организации инвалидов";
 n=Alternate("Статус поставщика",Buf,-1,Int(Контр_Статус[Iter]),12);
 if n=0: ^Cur; fi;
 Контр_Статус[Iter]=Str(n);
 Return Cur;
end;

Proc Контр_onExit(FieldName: String; Iter: Integer);
 Контр[Iter]=nil;
 Контр_ПолнИмя[Iter]="";
 Контр_Страна[Iter]="";
 Контр_ОКСМ[Iter]="";
 Контр_Адрес[Iter]="";
 Контр_ИНН[Iter]="";
 Контр_КПП[Iter]="";
 Контр_Статус[Iter]="";
 Контр_Телефон[Iter]="";
end;

Func ФИОРук_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Rec: Record;
 Template.HideEditor(False);
 Rec=OpenCardFile("Сотрудники");
 if Rec=nil: ^Cur; fi;
 ФИОРук=GetCardFieldS("Сотрудники",rec,"ФИОТ");
 Return Cur;
end;
--Обработчики событий полей шаблона-----
--
--Обработчики событий объектов шаблона-----
Proc btnРасчет_OnClick(Sender: String);
var Rec: Record;
 Rec=Раб.Документы.ВыборСФильтром("РПО_Договор","НомерДок","Рег and Учет_Реестр_ОФК and not ФЗ=0"+if(f18," and Секрет="+Str(Секрет),""));
 if not Rec=nil:
    Расчет(RecordToString(Rec));
 fi;
end;

Proc btnОчистить_OnClick(Sender: String);
 if EnqOkCancel("Форма будет очищена, продолжить",mtWarning)=cmCancel: Exit; fi;
 Очистить;
-- РазбитьНаЛисты(False);
end;

--Proc btnПечать_OnClick(Sender: String);
--var k,p,pp,z:i;
-- ЗаполнитьНаимЗаказчика(True);
-- pp=РазбитьНаЛисты(True);
-- Try
--  if fMDuplex and pp>1:
--     Раб.Настр_Печать.Cfg("",SelfCfg);
--     z=0;
--     for p=1..pp do
--      z=z+1;
--      if z=2:
--         Message("Переверните лист и вставте его в принтер. Для продолжения печати нажмите Ok");
--         z=0;
--      fi;
--      for k=1..КолКопий do
--       Print("",SelfCfg,"",True,p,p);
--      od;
--     od;
--    else
--     Раб.Настр_Печать.Prn("","",SelfCfg,"",КолКопий);
--  fi;
-- Finally
--  РазбитьНаЛисты(False);
--  ЗаполнитьНаимЗаказчика(False);
-- end;
--end;

Proc btnПечать_OnClick(Sender: String);
 Раб.Настр_Печать.Prn("","",SelfCfg,"",КолКопий);
end;

Proc btnЗакрыть_OnClick(Sender: String);
 Close;
end;

Proc cbУтвДок_OnChange(Sender: String);
 Оформление;
end;
--Обработчики событий объектов шаблона-----
--
--
--Обработчики событий шаблона -----
Proc AfterOpen(Destroy: Logical);
 Оформление;
end;

Proc OnOpen(Create: Logical);
 Раб.Настр_Печать.Cfg("",SelfCfg);
 fОКВ=0;
 fОКЕИ=0;
 fОКСМ=0;
 if Раб.Обмен.Recipient=SelfBln:
    Расчет(Раб.Обмен.BufS1[1]);
 fi;
end;
--Обработчики событий шаблона -----
--


Конец
