


--Идея и реализация:
--Казунин Ю.Я. 2008г.
--РАБ.НФА.INI_SETUP.user
БланкСШаблоном "Настройки НФА";
var БылиИзменения:l;
var OnEnter:l;
var current_ini:l;
var CurrentField:s;
--перед открытием данного бланка или обращении к его функциям или данным требуется его инициализация  (проверка по current_ini)
--var crd_ini:s='DBT';-- имя картотеки с настройками
--var db_crd_ini:s;
--var user	:s;
--var scheme	:s;
var vervar:i=РАБ.НФА.INI_SETUP.vervar;
--var verbln:i=0;
var NN[]:i=$;
var forselect[]:s;
--НФА_Справочники[]:s;-- список справочников работающих в подсистеме УНФА
--НФА_ГРНФА[]:s;-- список разрешенных групп нфа
--var НФА_ГРНФА_ini:l;-- статус инициализации массива НФА_ГРНФА

УпрГруппыНФА:l;
УпрОстаткиНФА:l;
УпрАмортизация:l;
--НФА_ГРНФА_ВСЕ_ПОЗИЦИИ



var НФА_ГРНФА_ВСЕ[]:s;
var НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[]:s;
var НФА_ГРНФА_ВСЕ_ПОЗИЦИИ:i=if(УпрГруппыНФА,lengthofarray(НФА_ГРНФА_ВСЕ),0);
var НФА_ГРНФА_РАЗРЕШЕНА []:l=SearchInArray(РАБ.НФА.INI_SETUP.НФА_ГРНФА,НФА_ГРНФА_ВСЕ[$],true)>0;
var НФА_ГРНФА_НЕ_ОБНОВЛЕНИЕ[]:l=SearchInArray(РАБ.НФА.INI_SETUP.НФА_ГРНФА_НЕ_ОБНОВЛЕНИЕ,НФА_ГРНФА_ВСЕ[$],true)<1;

var Усл1:l=РАБ.НФА.INI_SETUP.Усл1;
var Усл2:l=РАБ.НФА.INI_SETUP.Усл2;
var Усл3:l=РАБ.НФА.INI_SETUP.Усл3;

var УслСПР_0	 :s=РАБ.НФА.INI_SETUP.УслСПР_0	   ;
var УслПД_106_0  :s=РАБ.НФА.INI_SETUP.УслПД_106_0  ;
var УслНетАморт_0:s=РАБ.НФА.INI_SETUP.УслНетАморт_0;
var МетодАморт_0 :i=РАБ.НФА.INI_SETUP.МетодАморт_0 ;
var ТолькоНормаИзКарточкиНФА_101_08:L	       =РАБ.НФА.INI_SETUP.ТолькоНормаИзКарточкиНФА_101_08;
var линейно_при_дэкспл_до2007:l=РАБ.НФА.INI_SETUP.линейно_при_дэкспл_до2007;

func ВыборУровняНастроек:i;
 var t:i;
 ClearVariable(forselect);
 if РАБ.НФА.INI_SETUP.user='':-- локальная версия
     t=t+1;forselect[t]='Настройка общая для всех пользователей и схем доступа';
  | true:
     t=t+1;forselect[t]='Настройка восстановленная по умолчанию';
     t=t+1;forselect[t]='Настройка только для текущей схемы доступа и пользователя';
     t=t+1;forselect[t]='Настройка общая для всех пользователей с текущей схемой доступа';
     t=t+1;forselect[t]='Настройка общая для всех пользователей и схем доступа';
 fi;
 if LengthOfArray(forselect)=1:t=3;
  | true:t=Alternate('',forselect)-1;
 fi;
 ^t;
end;
func ВыборВид_Настроек_По_Умолчанию:i;
 var t:i;
 ClearVariable(forselect);


--  Вид_По_Умолчанию=0 101+105				-- ОС+Материалы
--  Вид_По_Умолчанию=1 101+102+105			-- ОС+НМА+Материалы
--  Вид_По_Умолчанию=2 106.01+106.04			-- ОС+Материалы не принятые к учету (в т.ч. базы снабжения)
--  Вид_По_Умолчанию=3 106.01+106.02+106.04		-- ОС+НМА+Материалы не принятые к учету (в т.ч. базы снабжения)
--  Вид_По_Умолчанию=4 101+105+106.01+106.04		-- ОС+Материалы как принятые к учету так и не принятые к учету(в т.ч. базы снабжения)
--  Вид_По_Умолчанию=5 101+102+105+106.01+106.02+106.04 -- ОС+НМА+Материалы как принятые к учету так и не принятые к учету(в т.ч. базы снабжения)
--  Вид_По_Умолчанию=6 все				-- Любые НФА как принятые к учету, так и не принятые к учету

     t=t+1;forselect[t]=trim('101+105			       -- ОС+Материалы										');
     t=t+1;forselect[t]=trim('101+102+105		       -- ОС+НМА+Материалы									');
     t=t+1;forselect[t]=trim('106.01+106.04		       -- ОС+Материалы не принятые к учету (в т.ч. базы снабжения)				');
     t=t+1;forselect[t]=trim('106.01+106.02+106.04	       -- ОС+НМА+Материалы не принятые к учету (в т.ч. базы снабжения)				');
     t=t+1;forselect[t]=trim('101+105+106.01+106.04	       -- ОС+Материалы как принятые к учету так и не принятые к учету(в т.ч. базы снабжения)	');
     t=t+1;forselect[t]=trim('101+102+105+106.01+106.02+106.04 -- ОС+НМА+Материалы как принятые к учету так и не принятые к учету(в т.ч. базы снабжения)');
     t=t+1;forselect[t]=trim('все			       -- Любые НФА как принятые к учету, так и не принятые к учету				');
     t=AlternateTree('',forselect,-1,0,0,'z','Виды НФА','Описание');
--     t=AlternateTree('',forselect,-1,0,0,'z','Виды НФА','Описание',-1,);
 ^t;
end;

proc НФА_ГРНФА_ВСЕ_ini;
var t:i;
  ClearVariable(НФА_ГРНФА_ВСЕ);
  ClearVariable(НФА_ГРНФА_ВСЕ_ОПИСАНИЕ);
  t=t+1;НФА_ГРНФА_ВСЕ[t]='101.01';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Жилые помещения			       ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='101.02';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Нежилые помещения			       ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='101.03';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Сооружения 			       ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='101.04';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Машины и оборудование		       ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='101.05';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Транспортные средства		       ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='101.06';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Производственный и хозяйственный инвентарь';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='101.07';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Библиотечный фонд			       ';
--  t=t+1;НФА_ГРНФА_ВСЕ[t]='101.08';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Драгоценности и ювелирные изделия	 ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='101.08';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Прочие основные средства		       ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='102.00';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Нематериальные активы		       ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='103.01';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Земля			  ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='103.02';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Ресурсы недр		  ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='103.03';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Прочие непроизведенные активы';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='105.01';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Медикаменты и перевязочные средства';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='105.02';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Продукты питания			';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='105.03';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Горюче-смазочные материалы 	';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='105.04';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Строительные материалы		';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='105.05';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Мягкий инвентарь			';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='105.06';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Прочие материальные запасы 	';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='105.07';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Готовая продукция			';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='106.01';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Капитальные вложения в основные средства		      ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='106.02';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Капитальные вложения в нематериальные активы	      ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='106.03';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Капитальные вложения в непроизведенные  активы	      ';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='106.04';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Изготовление материалов, готовой продукции (работ, услуг)';
  t=t+1;НФА_ГРНФА_ВСЕ[t]='108.06';НФА_ГРНФА_ВСЕ_ОПИСАНИЕ[t]='Материальные запасы составляющие имущество казны';
  ClearVariable(НФА_ГРНФА_РАЗРЕШЕНА);
  ClearVariable(НФА_ГРНФА_НЕ_ОБНОВЛЕНИЕ);
end;

func НФА_ГРНФА_РАЗРЕШЕНА_ПриВходе(f:s;i:i):l;
 var t:i;
 t=SearchInArray(РАБ.НФА.INI_SETUP.НФА_ГРНФА,НФА_ГРНФА_ВСЕ[i],true);
 if t>0:DeleteFromArray(РАБ.НФА.INI_SETUP.НФА_ГРНФА,t);
  | true:AddInArray(РАБ.НФА.INI_SETUP.НФА_ГРНФА,true,false,НФА_ГРНФА_ВСЕ[i]);
 fi;
 ClearVariable(НФА_ГРНФА_РАЗРЕШЕНА);
 БылиИзменения=true;
  ^false;
end;

func НФА_ГРНФА_НЕ_ОБНОВЛЕНИЕ_ПриВходе(f:s;i:i):l;
 var t:i;
 t=SearchInArray(РАБ.НФА.INI_SETUP.НФА_ГРНФА_НЕ_ОБНОВЛЕНИЕ,НФА_ГРНФА_ВСЕ[i],true);
 if t>0:DeleteFromArray(РАБ.НФА.INI_SETUP.НФА_ГРНФА_НЕ_ОБНОВЛЕНИЕ,t);
  | true:AddInArray(РАБ.НФА.INI_SETUP.НФА_ГРНФА_НЕ_ОБНОВЛЕНИЕ,true,false,НФА_ГРНФА_ВСЕ[i]);
 fi;
 ClearVariable(НФА_ГРНФА_НЕ_ОБНОВЛЕНИЕ);
 БылиИзменения=true;
  ^false;
end;

Proc ПриОткрытии(Создать: Логич);
--  set_current_ini;
end;
Proc ПослеОткрытия(Уничтожить: Логич);
  РАБ.НФА.INI_SETUP.current_ini=false;-- принудительное обновление из картотеки DBT
  РАБ.НФА.INI_SETUP.set_current_ini;
  НФА_ГРНФА_ВСЕ_ini;
  БылиИзменения=false;
  if CurrentField<>'':Шаблон.Field=CurrentField;fi;
end;


Proc кнЗакрыть_ПриНажатии(Стр: Целое; Кол: Целое; Двойной: Логич);
  Close;
end;


Proc кнСохранить_ПриНажатии(Стр: Целое; Кол: Целое; Двойной: Логич);
  var user1,scheme1:s;
  var t:i;
  t=ВыборУровняНастроек;
  if t<0:exit;fi;
  if  t=3:user1='';scheme1=''; -- общая для всех пользователей и схем доступа
   |  t=2:user1='';scheme1=РАБ.НФА.INI_SETUP.scheme;-- общая для всех пользователей с текущей схемой доступа
   |  t=1:user1=РАБ.НФА.INI_SETUP.user;scheme1=РАБ.НФА.INI_SETUP.scheme;-- только для текущей схемы доступа и пользователя
   |  t=0:user1='';scheme1='';--РАБ.НФА.INI_SETUP.ВосстановитьНастройкиПоУмолчанию;
  fi;
  РАБ.НФА.INI_SETUP.vervar=t;
--  if РАБ.НФА.INI_SETUP.vervar=3 and t=3:user1='';scheme1='';
--   | РАБ.НФА.INI_SETUP.vervar=2 and t=2:user1='';scheme1=РАБ.НФА.INI_SETUP.scheme;
--   | РАБ.НФА.INI_SETUP.vervar=1 and t=1:user1=РАБ.НФА.INI_SETUP.user;scheme1=РАБ.НФА.INI_SETUP.scheme;
--   | РАБ.НФА.INI_SETUP.vervar=0 and (t=3 or t=0):РАБ.НФА.INI_SETUP.vervar=3;user1='';scheme1='';--РАБ.НФА.INI_SETUP.ВосстановитьНастройкиПоУмолчанию;
--   | true:РАБ.НФА.INI_SETUP.vervar=t;
--  fi;
  WriteVarToCardFile(РАБ.НФА.INI_SETUP.crd_ini,true,'РАБ.НФА.INI_SETUP','РАБ.НФА.INI_SETUP',1.1.100,1.1.100,РАБ.НФА.INI_SETUP.verbln,РАБ.НФА.INI_SETUP.vervar,user1,scheme1);
  РАБ.НФА.INI_SETUP.set_current_ini;
  НФА_ГРНФА_ВСЕ_ini;
  Message('Настройки сохранены успешно!'); БылиИзменения=false;
end;


Proc кнПоУмолчанию_ПриНажатии(Стр: Целое; Кол: Целое; Двойной: Логич);
  var Вид_По_Умолчанию:i;
  if not ВопрДаОтказ('Текущие настройки будут потеряны!^MВы уверены?')=кмдВерно:exit;fi;
  Вид_По_Умолчанию=ВыборВид_Настроек_По_Умолчанию-1;
  if Вид_По_Умолчанию<0:exit;fi;
  РАБ.НФА.INI_SETUP.ВосстановитьНастройкиПоУмолчанию(Вид_По_Умолчанию);
  НФА_ГРНФА_ВСЕ_ini;
  БылиИзменения=true;
end;


Func Усл_OnEnter(FieldName: String; Iter: Integer): logical;
  if FieldName='Усл1':РАБ.НФА.INI_SETUP.Усл1=not РАБ.НФА.INI_SETUP.Усл1;ClearVariable(Усл1);БылиИзменения=true;
   | FieldName='Усл2':РАБ.НФА.INI_SETUP.Усл2=not РАБ.НФА.INI_SETUP.Усл2;ClearVariable(Усл2);БылиИзменения=true;
   | FieldName='Усл3':РАБ.НФА.INI_SETUP.Усл3=not РАБ.НФА.INI_SETUP.Усл3;ClearVariable(Усл3);БылиИзменения=true;
  fi;
  ^false;
end;


Proc ВосстановитьнастройкипоумолчаниюОстаткиНФА_OnClick(Row: Integer; Col: Integer; Double: Logical);
 if not ВопрДаОтказ('Текущие настройки будут потеряны!^MВы уверены?')=кмдВерно:exit;fi;
 РАБ.НФА.INI_SETUP.Усл_set_ini;ClearVariable(Усл1);ClearVariable(Усл2);ClearVariable(Усл3);БылиИзменения=true;
end;


Proc OnClose(Destroy: Logical);
  if БылиИзменения:
    if ВопрДаОтказ('Были внесены изменения в настройки!^MСохранить измененные настройки?')=кмдВерно:кнСохранить_ПриНажатии(0,0,false);fi;

  fi;
  CurrentField='';
end;


Func Аморт_OnEnter(FieldName: String; Iter: Integer): logical;
 var t:i;
 OnEnter=true;
 if FieldName='МЕТОДАМОРТ_0':
    ClearVariable(forselect);
    forselect[1]='Отмена';
    forselect[2]='Восстановить значение по умолчанию(линейно не меняя нормы)';
    forselect[3]='Начислять линейно не меняя нормы';
    forselect[4]='Начислять под срок эксплуатации(автокоррекция нормы)';
    t =alternate('',forselect);
    if t<2:^false;fi;
    if t=2:РАБ.НФА.INI_SETUP.ВосстановитьНастройкиПоУмолчанию_ВедомостьАмортизации('МЕТОДАМОРТ_0');ClearVariable(МЕТОДАМОРТ_0);БылиИзменения=true;
     | t=3:РАБ.НФА.INI_SETUP.МЕТОДАМОРТ_0=0;ClearVariable(МЕТОДАМОРТ_0);БылиИзменения=true;
     | t=4:РАБ.НФА.INI_SETUP.МЕТОДАМОРТ_0=1;ClearVariable(МЕТОДАМОРТ_0);БылиИзменения=true;
    fi;
    ^false;
  | FieldName='ТолькоНормаИзКарточкиНФА_101_08' or FieldName='линейно_при_дэкспл_до2007':
    ClearVariable(forselect);
    forselect[1]='Отмена';
    forselect[2]='Восстановить значение по умолчанию(да)';
    forselect[3]='да';
    forselect[4]='нет';
    t =alternate('',forselect);
    if t<2:^false;fi;
    if t=2:РАБ.НФА.INI_SETUP.ВосстановитьНастройкиПоУмолчанию_ВедомостьАмортизации(FieldName);ClearVariable(ТолькоНормаИзКарточкиНФА_101_08);ClearVariable(линейно_при_дэкспл_до2007);БылиИзменения=true;
     | t=3:
       if FieldName='ТолькоНормаИзКарточкиНФА_101_08':РАБ.НФА.INI_SETUP.ТолькоНормаИзКарточкиНФА_101_08=true;ClearVariable(ТолькоНормаИзКарточкиНФА_101_08);БылиИзменения=true;
	| true:РАБ.НФА.INI_SETUP.линейно_при_дэкспл_до2007=true;ClearVariable(линейно_при_дэкспл_до2007);БылиИзменения=true;
       fi;
     | t=4:
       if FieldName='ТолькоНормаИзКарточкиНФА_101_08':РАБ.НФА.INI_SETUP.ТолькоНормаИзКарточкиНФА_101_08=false;ClearVariable(ТолькоНормаИзКарточкиНФА_101_08);БылиИзменения=true;
	| true:РАБ.НФА.INI_SETUP.линейно_при_дэкспл_до2007=false;ClearVariable(линейно_при_дэкспл_до2007);БылиИзменения=true;
       fi;
    fi;
    ^false;


 fi;
  ^true  ;
end;


Func УслСПР_0_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
  var tmp:s;
  var t:i;
  Шаблон.hideeditor(false);
  ClearVariable(forselect);
  forselect[1]='Отмена';
  forselect[2]='Добавить справочник';
  forselect[3]='Восстановить значение по умолчанию';
  t =alternate('',forselect);
  if t<2:^Cur;fi;
  if t=2:tmp=ВыборПризнака('*.*',true);
     if tmp<>'':РАБ.НФА.INI_SETUP.УслСПР_0=РАБ.НФА.B01.ab(УслСПР_0,"|",tmp)		    ;ClearVariable(УслСПР_0);БылиИзменения=true;fi;
   | t=3:РАБ.НФА.INI_SETUP.ВосстановитьНастройкиПоУмолчанию_ВедомостьАмортизации('УслСПР_0');ClearVariable(УслСПР_0);БылиИзменения=true;
  fi;
  ^Cur	;

end;


Func УслПД_106_0_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
  var tmp:s;
  var t:i;
  Шаблон.hideeditor(false);
  ClearVariable(forselect);
  forselect[1]='Отмена';
  forselect[2]='Добавить признак';
  forselect[3]='Восстановить значение по умолчанию';
  forselect[4]='Восстановить значение (всегда на 106)';
  t =alternate('',forselect);
  if t<2:^Cur;fi;
  if t=2:tmp=ВыборПризнака(УслСПР_0,false,true);
     if tmp<>'':РАБ.НФА.INI_SETUP.УслПД_106_0=РАБ.НФА.B01.ab(УслПД_106_0,"|",tmp+'*');ClearVariable(УслПД_106_0  );БылиИзменения=true;fi;
   | t=3:РАБ.НФА.INI_SETUP.ВосстановитьНастройкиПоУмолчанию_ВедомостьАмортизации('УслПД_106_0');ClearVariable(УслПД_106_0  );БылиИзменения=true;
   | t=4:РАБ.НФА.INI_SETUP.УслПД_106_0='ВСЕГДА_2.106.04.340';ClearVariable(УслПД_106_0	);БылиИзменения=true;
  fi;
  ^Cur	;
end;


Func УслНетАморт_0_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
  var tmp:s;
  var t:i;
  Шаблон.hideeditor(false);
  ClearVariable(forselect);
  forselect[1]='Отмена';
  forselect[2]='Добавить признак';
  forselect[3]='Восстановить значение по умолчанию';
  t =alternate('',forselect);
  if t<2:^Cur;fi;
  if t=2:tmp=ВыборПризнака(УслСПР_0,false,true);
     if tmp<>'':РАБ.НФА.INI_SETUP.УслНетАморт_0=РАБ.НФА.B01.ab(УслНетАморт_0,"|",tmp+'*')	 ;ClearVariable(УслНетАморт_0);БылиИзменения=true;fi;
   | t=3:РАБ.НФА.INI_SETUP.ВосстановитьНастройкиПоУмолчанию_ВедомостьАмортизации('УслНетАморт_0');ClearVariable(УслНетАморт_0);БылиИзменения=true;
  fi;
  ^Cur	;
end;



Proc Амортизация_изDBT_OnClick(Row: Integer; Col: Integer; Double: Logical);
 var УслПД_106,УслСПР,УслНетАморт:s;
 var t:i;
 УслПД_106  =trim(ВыполнитьФункциюС('НФА.ДОКУМЕНТЫ.ВЕДОМОСТИ.АМОРТИЗАЦИЯ.СчитатьНастройкиСправочников','УслПД_106'));
 if УслПД_106='':УслПД_106=ВзятьПеременнуюС('НФА.ДОКУМЕНТЫ.ВЕДОМОСТИ.АМОРТИЗАЦИЯ.УслПД_106');fi;
 УслСПР     =trim(ВыполнитьФункциюС('НФА.ДОКУМЕНТЫ.ВЕДОМОСТИ.АМОРТИЗАЦИЯ.СчитатьНастройкиСправочников','УслСПР'));
 if УслСПР='':УслСПР=ВзятьПеременнуюС('НФА.ДОКУМЕНТЫ.ВЕДОМОСТИ.АМОРТИЗАЦИЯ.УслСПР');fi;
 УслНетАморт=ВзятьПеременнуюС ('НФА.ДОКУМЕНТЫ.ВЕДОМОСТИ.АМОРТИЗАЦИЯ.УслНетАморт');
 ClearVariable(forselect);
 forselect[1]='Отмена';
 forselect[2]='Восстановить все значения';
 forselect[3]='Восстановить 1.='+УслСПР;
 forselect[4]='Восстановить 2.='+УслПД_106;
 forselect[5]='Восстановить 3.='+УслНетАморт;
 t =alternate('',forselect);
 if t<2:exit;fi;
 if t=2 or t=3:РАБ.НФА.INI_SETUP.УслСПР_0     =УслСПР;	    ClearVariable(УслСПР_0     );БылиИзменения=true;fi;
 if t=2 or t=4:РАБ.НФА.INI_SETUP.УслПД_106_0  =УслПД_106;   ClearVariable(УслПД_106_0  );БылиИзменения=true;fi;
 if t=2 or t=5:РАБ.НФА.INI_SETUP.УслНетАморт_0=УслНетАморт; ClearVariable(УслНетАморт_0);БылиИзменения=true;fi;
end;

Proc Аморт_OnExit(FieldName: String; Iter: Integer);
 if not OnEnter:
    if FieldName='УслСПР_0'	:РАБ.НФА.INI_SETUP.УслСПР_0	=''; ClearVariable(УслСПР_0	);БылиИзменения=true;
     | FieldName='УслПД_106_0'	:РАБ.НФА.INI_SETUP.УслПД_106_0	=''; ClearVariable(УслПД_106_0	);БылиИзменения=true;
     | FieldName='УслНетАморт_0':РАБ.НФА.INI_SETUP.УслНетАморт_0=''; ClearVariable(УслНетАморт_0);БылиИзменения=true;
    fi;
 fi;
 OnEnter=false;
end;


Func Аморт_OnVerify(FieldName: String; Iter: Integer; Value: String): Logical;
    if FieldName='УслСПР_0'	:РАБ.НФА.INI_SETUP.УслСПР_0	=UP(Value); ClearVariable(УслСПР_0     );БылиИзменения=true;
     | FieldName='УслПД_106_0'	:РАБ.НФА.INI_SETUP.УслПД_106_0	=UP(Value); ClearVariable(УслПД_106_0  );БылиИзменения=true;
     | FieldName='УслНетАморт_0':РАБ.НФА.INI_SETUP.УслНетАморт_0=UP(Value); ClearVariable(УслНетАморт_0);БылиИзменения=true;
    fi;
  ^true;
end;


Proc ВосстановитьнастройкипоумолчаниюАмортизация_OnClick(Row: Integer; Col: Integer; Double: Logical);

 if not ВопрДаОтказ('Текущие настройки будут потеряны!^MВы уверены?')=кмдВерно:exit;fi;

  РАБ.НФА.INI_SETUP.ВосстановитьНастройкиПоУмолчанию_ВедомостьАмортизации('');

  ClearVariable(УслНетАморт_0);ClearVariable(УслСПР_0);ClearVariable(УслПД_106_0);ClearVariable(МетодАморт_0);БылиИзменения=true;

end;

Конец
