-- Шаблон создан мастером бланков
-- 19.02.2007 10:33:15
--
БланкСШаблоном "Информация об исполнении (о расторжении) контракта";

f142:L;
fУтвДок:L;
fЗаказчик_КБП:L;

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

var УтвДок1:S=if(f142:"Приложение № 3"+Chr(13)+"к приказу Министерства финансов Российской Федерации от 30.12.2013 № 142н","");

КолКопий:I=[2];
var Загл:S="Информация об исполнении (о расторжении) контракта";
var ДатаСвед:D=[ToDay];
var Заказчик:Record;
var Заказчик_ПолнИмя1:S;
var Заказчик_ПолнИмя2:S;
var Заказчик_ПолнИмя:S=Заказчик_ПолнИмя1+Заказчик_ПолнИмя2;
var Заказчик_КБП:S;
var Заказчик_КБП_:S=if(fЗаказчик_КБП,Заказчик_КБП,"");
var Заказчик_ИНН:S;
var Заказчик_КПП:S;
var ДатаДок:D;
var НомерДок:S;
var Ном_Реестр_ОФК:S;

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

var АннулФактОпл:N;
var АннулДата:D;
var АннулКмнт:S;

var ФИОРук:S;
var ДатаРук:D;

var Buf []:S;

cb142   : Object;
cbУтвДок: Object;

sУтвДок: Section;
sНЗ    : Section;

S2_2   : Section;

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

Proc Оформление;
 cbУтвДок.Enabled=f142;
 sУтвДок.Visible=fУтвДок and f142;
 S2_2.Cell(4,1,CellFormat,if(Аннул,"0.00","##0.00;; "));
end;

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

Proc Расчет (vДоговор:S);
var OWA,OA,i,ii:I;
 Очистить;
 OWA=OpenWorkArea("РПО_Договор","","UKey="+vДоговор);
 Try
  if Records(OWA)=0: Message("Договор не найден",mtError); Exit; fi;
  OA=OpenArray(OWA,1,"Инфо_ИА","");
  Секрет=GetFieldI(OWA,1,"Секрет");
  f142=Секрет>=1;
  ДатаСвед=GetFieldD(OWA,1,"ДатаСвед2");
  Заказчик=GetFieldR(OWA,1,"Учр");
  Заказчик_ПолнИмя1=GetFieldS(OWA,1,"Учр.ПолнИмя");
  Заказчик_ПолнИмя2=GetFieldS(OWA,1,"Учр.РПО_ПолнИмя2");
  Заказчик_КБП=GetFieldS(OWA,1,"Учр.РПО_КБП");
  Заказчик_ИНН=GetFieldS(OWA,1,"Учр.ИНН");
  Заказчик_КПП=GetFieldS(OWA,1,"Учр.КПП");
  ДатаДок=GetFieldD(OWA,1,"ДатаДок");
  НомерДок=GetFieldS(OWA,1,"НомерДок");
  Ном_Реестр_ОФК=GetFieldS(OWA,1,"Ном_Реестр_ОФК");
  if GetFieldD(OWA,1,"Дата_Реестр_ОФК")>=1.7.2014:
     Ном_Реестр_ОФК=SubStr(Ном_Реестр_ОФК,1,27); --ТФФ v.13
  fi;
  if GetFieldL(OWA,1,"Исполнен"):
     ii=Records(OA);
     if ii=0:
        InsertFrame(Упр1,Упр1+1);
        ИсполДата[Упр1]=GetFieldD(OWA,1,"ИсполДата");
        ИсполКмнт[Упр1]=GetFieldS(OWA,1,"ИсполКмнт");
       else
        for i=1..ii do
         InsertFrame(Упр1,Упр1+1);
         ИсполДата[Упр1]=GetFieldD(OA,i,"ДатДок");
         ИсполКмнт[Упр1]="№ "+GetFieldS(OA,i,"НомДок")+", "+GetFieldS(OA,i,"НаимДок")+", "+Format("%.2N",GetFieldN(OA,i,"СумДок"));
        od;
     fi;
  fi;
  if GetFieldL(OWA,1,"Аннулирован"):
     АннулФактОпл=GetFieldN(OWA,1,"АннулФактОпл");
     АннулДата=GetFieldD(OWA,1,"АннулДата");
     АннулКмнт=GetFieldS(OWA,1,"АннулКмнт");
  fi;
  ДатаРук=GetFieldD(OWA,1,"ДатаРук2");
  ФИОРук=GetFieldS(OWA,1,"ФИОРук2");
 Finally
  CloseWorkArea(OWA);
 end;
 cb142.State=f142;
 Оформление;
 Message("Расчет завершен");
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,"ФИОРук");
 Return False;
end;

Proc Заказчик_OnExit(FieldName: String; Iter: Integer);
 Заказчик=nil;
 Заказчик_ПолнИмя1="";
 Заказчик_ПолнИмя2="";
 Заказчик_КБП="";
 Заказчик_ИНН="";
 Заказчик_КПП="";
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);
 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 Недейств");
 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 cb142_OnChange(Sender: String);
 Оформление;
end;
--Обработчики событий объектов шаблона-----
--
--
--Обработчики событий шаблона -----
Proc OnOpen(Create: Logical);
 Раб.Настр_Печать.Cfg("","РПО.Документы.ДоговорПост.Прил2_Испол.000.cfg");
 if Раб.Обмен.Recipient="ДОКУМЕНТЫ.ДОГОВОРПОСТ.ПРИЛ3_ИСПОЛ":
    Расчет(Раб.Обмен.BufS1[1]);
 fi;
end;
--Обработчики событий шаблона -----
--


Конец
