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

f491:L;
fУтвДок:L;
var f1191:L=not f491;

var Секрет:I;
var УтвДок1:S=if(f491:"Приложение N 2"+Chr(13)+"к Положению о ведении реестра государственных или муниципальных контрактов, в которые включаются сведения, касающиеся размещения заказов и составляющие государственную тайну"
                |True:"Приложение N 2"+Chr(13)+"к Положению о ведении реестра государственных и муниципальных контрактов, а также гражданско-правовых договоров бюджетных учреждений на поставки товаров, выполнение работ, оказание услуг и о требованиях к технологическим,");
var УтвДок2:S=if(f491:""
                |True:"программным, лингвистическим, правовым и организационным средствам обеспечения пользования официальным сайтом в сети Интернет, на котором размещается указанный реестр");
КолКопий:I=[2];
var Загл:S=if(f491,"Сведения об исполнении (о прекращении действия) государственного или муниципального контракта, содержащего сведения, составляющие государственную тайну","Сведения об исполнении (о расторжении) государственного или муниципального контракта либо гражданско-правового договора бюджетного учреждения на поставки товаров, выполнение работ, оказание услуг, заключенного по итогам размещения заказа");
var ДатаСвед:D=[ToDay];
var Заказчик:Record;
var Заказчик_ПолнИмя1:S;
var Заказчик_ПолнИмя2:S;
var Заказчик_ПолнИмя:S=Заказчик_ПолнИмя1+Заказчик_ПолнИмя2;
var Заказчик_КБП:S;
var Заказчик_ИНН:S;
var Заказчик_КПП:S;
var ДатаДок:D;
var НомерДок:S;
var Ном_Реестр_ОФК:S;

var Упр1:I;
var ИсполДата[]:D;
var ИсполКмнт[]:S;
var ИсполФактОпл[]:N;
var ИсполФактКол[]:N;

var ЗаглОпл:S=if(f491,"Фактически оплачено заказчиком (рублей)","Фактически оплачено заказчиком, рублей");
var АннулФактОпл:N;
var АннулДата:D;
var АннулКмнт:S;
var АннулФактКол:N;

var ДолжнРук:S=if(f491:"Руководитель (иное уполномоченное лицо)"|True:"Руководитель или иное уполномоченное лицо");
var ФИОРук:S;
var ДатаРук:D;

ДолжнИсп:S;
ФИОИсп:S;
ДатаИсп:D;

var Buf []:S;

cb491: Object;

sНЗ_491 : Section;
sНЗ_1191: Section;

S1: Section;

var Аннул:L=not АннулФактОпл=0 or not АннулДата=1.1.100 or not АннулКмнт="";

var тчнКол:I=[10];
--
--Процедуры и функции -------------
Proc Очистить;
 ClearVariable(Заказчик);
 ClearVariable(Заказчик_ПолнИмя);
 ClearVariable(Заказчик_КБП);
 ClearVariable(Заказчик_ИНН);
 ClearVariable(Заказчик_КПП);
 ClearVariable(ДатаДок);
 ClearVariable(НомерДок);
 ClearVariable(Ном_Реестр_ОФК);
 ClearVariable(Упр1);
 ClearVariable(ИсполДата);
 ClearVariable(ИсполКмнт);
 ClearVariable(ИсполФактОпл);
 ClearVariable(ИсполФактКол);
 ClearVariable(АннулФактОпл);
 ClearVariable(АннулДата);
 ClearVariable(АннулКмнт);
 ClearVariable(АннулФактКол);
end;

Proc Оформление;
 S1.Cell(4,1,CellFormat,if(Аннул,"0.00","##0.00;; "));
end;

Proc ЗаполнитьНаимЗаказчика(Flag:L);
var Obj: Object;
 if f491: 
    if not FindObject("sНЗ_491",Obj): Exit; fi; 
   else
    if not FindObject("sНЗ_1191",Obj): Exit; fi;
 fi;
 Документы.ДоговорПОСТ.Прил1_Сведения.ЗаполнитьНаимЗаказчика_(Flag,Obj,Заказчик_ПолнИмя1,Заказчик_ПолнИмя2);
end;

Proc Расчет (vДоговор:S);
var OWA,OWA2,n2,nr2:I;
 Очистить;
 OWA=OpenWorkArea("РПО_Договор","","UKey="+vДоговор);
 Try
  if Records(OWA)=0: Message("Договор не найден",mtError); Exit; fi;
  OWA2=OpenWorkArea("РПО_ДОГОВОР_ПОЗИЦИИ_ТМЦ","ЕДИЗМ","Договор="+vДоговор);
  Try
   nr2=Records(OWA2);
   Секрет=GetFieldI(OWA,1,"Секрет");
   f491=Секрет>=2;
   if f491:
      тчнКол=3;
     else
      тчнКол=10;
      if Раб.Настр.Начать("ИНФО.ДОГОВОР",0,0,"",GetGUID):
         тчнКол=Int(Раб.Настр.ВзятьЗначение("тчнКол_"));
      fi;
   fi;
   ДатаСвед=GetFieldD(OWA,1,"ДатаСвед2");
   Заказчик=GetFieldR(OWA,1,"Учр");
   Заказчик_ПолнИмя1=GetFieldS(OWA,1,"Учр.ПолнИмя");
   Заказчик_ПолнИмя2=GetFieldS(OWA,1,"Учр.РПО_ПолнИмя2");
   Заказчик_КБП=if(f491,GetFieldS(OWA,1,"Учр.РПО_КБП"),"");
   Заказчик_ИНН=GetFieldS(OWA,1,"Учр.ИНН");
   Заказчик_КПП=GetFieldS(OWA,1,"Учр.КПП");
   ДатаДок=GetFieldD(OWA,1,"ДатаДок");
   НомерДок=GetFieldS(OWA,1,"НомерДок");
   Ном_Реестр_ОФК=GetFieldS(OWA,1,"Ном_Реестр_ОФК");
   if GetFieldL(OWA,1,"Исполнен"):
      InsertFrame(Упр1,Упр1+1);
      ИсполДата[Упр1]=GetFieldD(OWA,1,"ИсполДата");
      ИсполКмнт[Упр1]=GetFieldS(OWA,1,"ИсполКмнт");
      ИсполФактОпл[Упр1]=GetFieldN(OWA,1,"ИсполФактОпл");
      if not nr2=0:
         if GetFieldS(OWA2,1,"ЕдИзм")=GetFieldS(OWA2,nr2,"ЕдИзм"):
            for n2=1..nr2 do
             ИсполФактКол[Упр1]=ИсполФактКол[Упр1]+Round(GetFieldN(OWA2,n2,"ФактКол"),тчнКол);
            od;
         fi;
      fi;
      ИсполФактКол[Упр1]=Round(ИсполФактКол[Упр1],тчнКол);
   fi;
   if GetFieldL(OWA,1,"Аннулирован"):
      АннулФактОпл=GetFieldN(OWA,1,"АннулФактОпл");
      АннулДата=GetFieldD(OWA,1,"АннулДата");
      АннулКмнт=GetFieldS(OWA,1,"АннулКмнт");
      if not nr2=0:
         if GetFieldS(OWA2,1,"ЕдИзм")=GetFieldS(OWA2,nr2,"ЕдИзм"):
            for n2=1..nr2 do
             АннулФактКол=АннулФактКол+Round(GetFieldN(OWA2,n2,"ФактКол"),тчнКол);
            od;
         fi;
      fi;
      АннулФактКол=Round(АннулФактКол,тчнКол);
   fi;
   ДатаРук=GetFieldD(OWA,1,"ДатаРук2");
   ФИОРук=GetFieldS(OWA,1,"ФИОРук2");
  Finally
   CloseWorkArea(OWA2);
  end;
 Finally
  CloseWorkArea(OWA);
 end;
 cb491.State=f491;
 Оформление;
 Message("Расчет завершен");
end;
--Процедуры и функции -------------                           
--
--
--Обработчики событий полей шаблона-----
Func Секрет_OnEnter(FieldName: String; Iter: Integer): logical;
var n:i;
 ClearVariable(Buf);
 Buf[1]="0 -- Не секретно";
 Buf[2]="1 -- ДСП";
 Buf[3]="2 -- Секретно";
 Buf[4]="3 -- Совершенно секретно";
 n=Alternate("Гриф секретности",Buf,-1,Секрет+1,12);
 if not n=0:
    Секрет=n-1;
 fi;
 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,"ФИОРук");
 Return False;
end;

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

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

Proc Аннул_onExit(FieldName: String; Iter: Integer);
 Сум_OnExit(FieldName,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 (ИСПОЛНЕН or АННУЛИРОВАН) and not Недейств and ФЗ=0");
 if Rec=nil: Exit; fi;
 Расчет(RecordToString(Rec));
end;

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

Proc btnПечать_OnClick(Sender: String);
 ЗаполнитьНаимЗаказчика(True);
 Try
  Раб.Настр_Печать.Prn("","","РПО.Документы.ДоговорПост.Прил2_Испол.000.cfg","",КолКопий);
 Finally
  ЗаполнитьНаимЗаказчика(False);
 end;
end;

Proc cb491_OnChange(Sender: String);
 if f491:
    тчнКол=3;
   else
    тчнКол=10;
    if Раб.Настр.Начать("ИНФО.ДОГОВОР",0,0,"",GetGUID):
       тчнКол=Int(Раб.Настр.ВзятьЗначение("тчнКол_"));
    fi;
 fi;
 Оформление;
end;
--Обработчики событий объектов шаблона-----
--
--
--Обработчики событий шаблона -----
Proc OnOpen(Create: Logical);
 Раб.Настр_Печать.Cfg("","РПО.Документы.ДоговорПост.Прил2_Испол.000.cfg");
 if Раб.Обмен.Recipient="ДОКУМЕНТЫ.ДОГОВОРПОСТ.ПРИЛ2_ИСПОЛ_Вариант":
    Расчет(Раб.Обмен.BufS1[1]);
 fi;
end;
--Обработчики событий шаблона -----
--


Конец
