-- Шаблон создан мастером бланков
-- 13.04.2011 11:26:56
--
БланкСШаблоном "Номенклатура  товаров, работ, услуг для нужд заказчиков", Редактор РПО_ПРИЗНАК_ОКДП;

cbРазрешено: Object;

var ОКДП_Гр:S;
var ОКДП:S;

var ОКДП_Гр_:S;
var ОКДП_:S;

var fОКДП:I;

var vr  :I=if(ver=0,601,ver);
var ver_:S="В редакции приказа Минэкономразвития РФ от "+if(ver=273,"7 июня 2011 г. N 273","1 декабря 2010 г. N 601");

var Buf[]:S;

var SelfCrd:S="РПО_ПРИЗНАК_ОКДП";
--
--Процедуры и функции -------------
Func ПризнакИспользуется(Voc:S):S;
var tmp:S;
 Refresh;
 tmp=Раб.Бюджет2005.КартПризнакИспользуется(SelfCrd,"Признак",Current,Voc);
 if not tmp="": ^tmp; fi;
 ^"";
end;
--Процедуры и функции -------------                           
--
--
--Обработчики событий полей шаблона-----
Func ver_OnEnter(FieldName: String; Iter: Integer): logical;
var tmp:S;
var i:i;
 if not CurrentState=CrdusInserted:
    tmp=ПризнакИспользуется("*");
    if not tmp="": Message("Признак '"+tmp+"' используется в проводках."+Chr(13)+"Изменение невозможно",mtError); ^False; fi;
 fi;
 ClearVariable(Buf);
 Buf[1]="Приказ Минэкономразвития РФ от 1 декабря 2010 г. N 601";
 Buf[2]="Приказ Минэкономразвития РФ от 7 июня 2011 г. N 273";
 i=Alternate("Выберите редакцию номеклатуры",Buf,-1,if(ver=273,2,1),12);
 if i=1: ver=0;
   |i=2: ver=273;
   |true: ^False;
 fi;
 Return False;
end;

Func Признак_OnEnter(FieldName: String; Iter: Integer): logical;
var tmp:S;
 if not CurrentState=CrdusInserted and not ОКДП_Гр="" and not ОКДП="":
    tmp=ПризнакИспользуется("*");
    if not tmp="": Message("Признак '"+tmp+"' используется в проводках."+Chr(13)+"Изменение невозможно",mtError); ^False; fi;
 fi;
 Return True;
end;

Func ОКДП_Гр_OnVerify(FieldName: String; Iter: Integer; Value: String): logical;
 Return Раб.Договор.ОКДП_Гр_Verify("Инфо.ОКДП.ОКДП",Value,ver);
end;

Proc ОКДП_Гр_OnExit(FieldName: String; Iter: Integer);
 if Признак_OnEnter(FieldName,Iter):
    Раб.Договор.ОКДП_Гр_Exit("Инфо.ОКДП.ОКДП_Гр");
    if ОКДП_Гр="":
       ОКДП_Гр_="";
      else
       ОКДП_Гр_=Раб.Бюджет.НаимКБК(if(ver=273,"ОКДП_ГР273","ОКДП_ГР"),ОКДП_Гр);
    fi;
   else
    EditorCancel;
 fi;
end;

Func ОКДП_Гр_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
 Template.HideEditor(False);
 Раб.Договор.ОКДП_Гр_Lookup("Инфо.ОКДП.ОКДП_Гр","Инфо.ОКДП.ОКДП",ver);
 Return Cur;
end;

Func ОКДП_OnVerify(FieldName: String; Iter: Integer; Value: String): logical;
 if Раб.Договор.ОКДП_Verify("Инфо.ОКДП.ОКДП_Гр",Value,ver):
    ОКДП_Гр_=Раб.Бюджет.НаимКБК(if(ver=273,"ОКДП_ГР273","ОКДП_ГР"),ОКДП_Гр);
    ^True;
 fi;
 Return False;
end;

Func ОКДП_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
 Template.HideEditor(False);
 Раб.Договор.ОКДП_Lookup("Инфо.ОКДП.ОКДП_Гр","Инфо.ОКДП.ОКДП","Инфо.ОКДП.fОКДП",ver);
 if not ОКДП="":
    ОКДП_=Раб.Договор.ВзятьЗначОКДП(ОКДП,"НАИМ");
 fi;
 Return Cur;
end;

Proc ОКДП_OnExit(FieldName: String; Iter: Integer);
 if Признак_OnEnter(FieldName,Iter):
    if ОКДП="":
       ОКДП_="";
      else
       ОКДП_=Раб.Договор.ВзятьЗначОКДП(ОКДП,"НАИМ");
    fi;
   else
    EditorCancel;
 fi;
end;
--Обработчики событий полей шаблона-----
--
--Обработчики событий объектов шаблона-----
Proc btnOk_OnClick(Sender: String);
 EditorApply;
end;

Proc btnОтмена_OnClick(Sender: String);
 EditorCancel;
end;

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

Proc cbРазрешено_OnChange(Sender: String);
var tmp:S;
 if not CurrentState=CrdusInserted and not ОКДП_Гр="" and not ОКДП="" and not Разрешено:
    tmp=ПризнакИспользуется("*");
    if not tmp="": 
       Message("Признак '"+tmp+"' используется в проводках."+Chr(13)+"Изменение невозможно",mtError); 
       EditorCancel;
       cbРазрешено.State=Разрешено;
       Exit; 
    fi;
 fi;
end;
--Обработчики событий объектов шаблона-----
--
--
--Обработчики событий шаблона -----
Proc OnRead;
 if CurrentState=CrdusInserted:
    ver=273;
    Разрешено=True;
    ClosedModFob=False;
 fi;
 ОКДП_Гр=SubStr(Признак,1,3);
 ОКДП=SubStr(Признак,5,7);
 if ОКДП_Гр="":
    ОКДП_Гр_="";
   else
    ОКДП_Гр_=Раб.Бюджет.НаимКБК(if(ver=273,"ОКДП_ГР273","ОКДП_ГР"),ОКДП_Гр);
 fi;
 if ОКДП="":
    ОКДП_="";
   else
    ОКДП_=Раб.Договор.ВзятьЗначОКДП(ОКДП,"НАИМ");
 fi;
end;

Func OnVerify: Logical;
 if ОКДП_Гр="": Message("Заполните группу",mtError); Template.Field="ОКДП_Гр"; ^False; fi;
 if ОКДП="": Message("Заполните код ОКДП",mtError); Template.Field="ОКДП"; ^False; fi;
 Признак=ОКДП_Гр+"."+ОКДП;
 Признак_Кмнт=ОКДП_;
 Return True;
end;

Proc OnCancel;
 OnRead;
end;
--Обработчики событий шаблона -----
--


Конец
