БланкСШаблоном "Список НФА", Редактор РПО_НФА;

2-- Объекты
var flgБезФильтра :Logical=False;
--var flgБезФильтра :Logical=True;
ФлПроводить:Object;
ФлП1       :Object;
ФлП2       :Object;
ФлП3       :Object;
ФлП4       :Object;
ФлП5       :Object;
ФлПосуда   :Object;
var ОКОФ_:s='ОКОФ';
var БланкКОД :s; -- расчитывается при открытии бланка (шаблонпослеоткрытия)
Var SQLver:l;    -- расчитывается при открытии бланка (шаблонпослеоткрытия)
var CopyClosedModFob:l=ClosedModFob;
var ИМЯКРТ   :s='РПО_НФА';-- Картотека которую редактирует данный бланк
ФлCopyClosedModFob:object;
var установили_блокировку:l;
2func UpdateTimeSecCurrent:i;^UpdateTimeSec;end;-- функция обязательная для работы с SQL запросами

2-- Управляющие секциями переменные
Секц_ИнвКод       :секция;
Секц_ГрОС         :секция;
Секц_Аморт        :секция;
Секц_Аморт1       :секция;
Секц_БУ_Аморт     :секция;
Секц_Флаги        :секция;
Секц_Прод         :секция;      ---------------- Alla
2-- Переменные и массивы шаблона
var Позиции_Флаги:i;
var Позиции_Флаги_шапка:l=Позиции_Флаги>0;
var Позиции_Флаги_дно:l=Позиции_Флаги>0;

var Флаг_Переменная[]:s;
var Флаг_Значение[]:l=if(Флаг_Переменная[$]<>'',ВзятьПеременнуюЛ(Флаг_Переменная[$]),false);
var Флаг_Описание[]:s;
--var NN       :s;
var NN_NFA_       :s=NN_NFA;
var ГРУППАВИД_:s=ГРУППАВИД;
var ГРУППАКОД_:s=ГРУППАКОД;
VTrue:l=true;
Пл:s='+';
Мн:s='-';
ТИПБЛН    :s='ОС';-- наименование подтаблицы в картотеке [Маски счетов]
ТМЦСПР    :s='ОС!';-- Условие для отбора ТМЦ в бланке
--УСЛ_СЧЕТА :s='(01*|031*)';-- Условие для отбора счетов в бланке
УСЛ_СЧЕТА :s='(?????????????????.?.1*)';-- Условие для отбора счетов в бланке

ПРИЗНАКН:s=ПРИЗНАК;
var ПРИЗНАККВН:s=ПРИЗНАККВ;
--ДАТА_АКТ_ЭКСП[]:s=ДатуВстроку(Части[$].ДАТА_ЭКС)+' '+Части[$].АКТ_ЭКС;

st[]:s;


КнОКОФ          :s='';
КнПризнак       :s='';


2-- Процедуры и функции
proc ClsArray;
--ClearVariable(st       );
end;
func Заблокирована:l;
 if ClosedModFob:Beep(16);EditorCancel;Сообщение('Операция заблокирована!'+chr(13)+'Для редактирования записи снимите флажок БЛОКИРОВКА.',mtWarning);

   ^true;
 fi;
 ^false;
end;


Func МаскаГРОС(ss:String) :String;
 if ss='101.01': ^'ГРОС.13*';
 |  ss='101.02': ^'ГРОС.11*';
 |  ss='101.03': ^'ГРОС.12*';
 |  ss='101.04': ^'ГРОС.14*';
 |  ss='101.05': ^'ГРОС.15*';
 |  ss='101.06': ^'ГРОС.16*|ГРОС.17*|ГРОС.18*|ГРОС.19*';
 |  ss='101.07': ^'ГРОС.19*';
-- |  ss='101.08': ^'';
 |  ss='101.08': ^'ГРОС.14*|ГРОС.16*|ГРОС.17*|ГРОС.18*|ГРОС.19*';
 |  ss='102.00': ^'ГРОС.2?*';
 fi;
end;

Func ПризнакКонстанта(МаскаДляВыбора:String) :String;
var nn :Integer;
var mask, tmp: String;
 nn=0;
 Try for Sign mask=МаскаДляВыбора do tmp=mask; nn=nn+1; if nn=2: Break; fi; od; Except end;
 if nn=1: ^tmp;  -- признак=константа
 |  nn=0: ^" ";  -- признаков нет вообще
 |  True: ^"" ;  -- признаков больше одного
 fi;
end;
Func ОКОФ_onLookup(Sect:String; Row:Integer; Col:Integer; Cur:String) :String;
var УслАН, tmp, name, Фильтр, tmp1, tmp2 ,ss:String;
var REC, rr :Record;
var RO, k, j :Integer;
var nn,nn0 :n;
 Template.HideEditor(False);
 name=asString(Template.Field);
 УслАН=МаскаГРОС(ГрНФА);
 if УслАН<>"":
   tmp=ПризнакКонстанта(УслАН);
   if tmp="" : tmp=AnaElection(УслАН); fi;
   if tmp="" : ^""; fi;
   if tmp<>"": tmp=SubStr(tmp, 6, 2);  fi;
 fi;
 Фильтр="ФТР_РАЗД='"+SubStr(tmp, 1, 2)+"'";
 tmp1=""; rr=NIL;
 if name="ОКОФ": 
   tmp=SubStr(ОКОФ, 4, 7);
   if ОКОФ<>"" and Length(tmp)=7:
     RO=OpenWorkArea("РПО_ОКОФ", "", "1=0");
     Try
       for j=1 to 7 do
         tmp1=" and Match(ФТР_КОДА, '"+SubStr(tmp, 1, 7-j+1)+RepStr("?", j-1)+"')";
         tmp2=Фильтр+tmp1;
         SetFilter(RO, tmp2);
         k=Records(RO);
         if k>0: if j=1 and k=1: rr=GetRecordKey(RO, 1); tmp1=""; fi; Фильтр=Фильтр+tmp1; Break; fi;
       od;
     Finally
       CloseWorkArea(RO);
     end;
   fi;
 fi;
 REC=OpenCardFile(PlanVar("НФА")+"\Картотеки\"+"ВыборРПО_ОКОФ.bro", Фильтр, rr, crdRecordOnly);
 if REC=NIL: ^""; fi;
 ss=trim(GetCardFieldS("РПО_ОКОФ", REC, "ГР_ПЕРЕОЦЕНКИ"));
 if length(ss)<1:
   message('Неверно выбран ОКОФ!^MВыбору подлежит только строка ОКОФ с непустой группой переоценки!',mtWarning);
   ^"";
 fi;
 КОМКЛИДЕН =GetCardFieldS('РПО_ОКОФ',REC,'ИМЯ_ОКОФ1');
 ОКОФ      =GetCardFieldS("РПО_ОКОФ",REC,"КОД_ОКОФ");
 k=Int(GetCardFieldS("РПО_ОКОФ", REC, "АМОРТ_ГР09"));
 if k>0:
   КлГрупп09=k;
   СрокАм09   =РАБ.НФА.B01.ВзятьСрокАмортГруппы(k);
--   АМОРТ_СРОК=ВзятьСрокАмортГруппы(k);
   НОРМАМОРТ09=100/СрокАм;
--   НормаПосле=НОРМАМОРТ;
  | true:
   КлГрупп09  =0;
   СрокАм09   =0;
   НОРМАМОРТ09=0;
 fi;

 k=Int(GetCardFieldS("РПО_ОКОФ", REC, "АМОРТ_ГР"));
-- if k=0:k=10;fi;
 if k>0:
   КлГрупп=k;
   СрокАм    =РАБ.НФА.B01.ВзятьСрокАмортГруппы(k);
--   АМОРТ_СРОК=ВзятьСрокАмортГруппы(k);
   НОРМАМОРТ =100/СрокАм;
--   НормаПосле=НОРМАМОРТ;
   if КлГрупп09=0:
      КлГрупп09  =КлГрупп  ;
      СрокАм09   =СрокАм   ;
      НОРМАМОРТ09=НОРМАМОРТ;
   fi;
  | true:
   КлГрупп=k;
   СрокАм    =0;
   НОРМАМОРТ =0;
   if КлГрупп09=0:
      КлГрупп09  =КлГрупп  ;
      СрокАм09   =СрокАм   ;
      НОРМАМОРТ09=НОРМАМОРТ;
   fi;
 fi;
 j=0;
 k=Int(GetCardFieldS("РПО_ОКОФ", REC, "АМОРТ_ГР02"));
-- if k=0:k=10;fi;
 nn0=КлГрупп02+СрокАм02+НОРМАМОРТ02;
 ro=0;
 if k>0: tmp='';
   if КлГрупп02<>k: tmp='Амортизационная группа: было='+str(КлГрупп02)+' стало='+str(k);fi;
   j=РАБ.НФА.B01.ВзятьСрокАмортГруппы(k);
   if СрокАм02<>j: tmp=РАБ.НФА.B01.ab(tmp,'^M','срок эксплуатации: было='+str(СрокАм02)+' стало='+str(j));fi;
   nn=100/СрокАм02;
   if НОРМАМОРТ02<>nn: tmp=РАБ.НФА.B01.ab(tmp,'^M','норма амортизации%: было='+str(НОРМАМОРТ02,3)+' стало='+str(nn,3));fi;
   if tmp<>'' и nn0>0.1:
     ro=3;
     Пока ro=3 do ro=Вопрос('','изменить данные для ОС принятых к учету до 01.01.2007?^M^M'+tmp,'Да;Отказ;Помощь',mtConfirmation);
      if ro=3:message('для данных НФА принятых к учету до 2007г будет изменен алгоритм расчета амортизации^M'+
                      'по новым срокам и нормам.^M'+
                      'Да - означает Ваше согласие с тем, что ранее выбранный ОКОФ не соответствовал нашему НФА^M'+
                      '     или соответствовал, но не соответствовали нормы и сроки по нему^M'+
                      '     и с данного момента все расчеты по начислению амортизации для ОС>40000 руб ^M'+
                      '     будут проходит по новым нормам и срокам^M'+
                      'Отмена - означает, что  все расчеты по начислению амортизации для ОС>40000 руб^M'+
                      '     проидут по своим старым срокам и нормам^M'
                     );
      fi;
     od;
   fi;
 fi;
 if k<1:
   КлГрупп02   =0;
   СрокАм02    =0;
   НОРМАМОРТ02 =0;
  | true:
    if (ro=1 or nn0<0.1) and k>0:
      КлГрупп02   =k;
      СрокАм02    =j;
      НОРМАМОРТ02 =nn;
    fi;
 fi;
     ^ОКОФ;

--          КлГрупп   =i;
--          СрокАм    =РАБ.НФА.B01.ВзятьСрокАмортГруппы(i);
--          НОРМАМОРТ =100/СрокАм;
--          НормаПосле=НОРМАМОРТ;
--          КОМКЛИДЕН =getcardfields('ОКОФ02',r,'КОМКЛИДЕН');
end;

func ВыборОКЕИ:s;
var N:N;
var cf:s;
  ClearVariable(st);
  st[1]='Единицы времени';
  st[2]='Единицы длины';
  st[3]='Единицы массы';
  st[4]='Единицы объема';
  st[5]='Единицы площади';
  st[6]='Технические единицы';
  st[7]='Экономические единицы';
  N=Alternate("Выбор справочника ОКЕИ", st, -1, 1);
  if N=1:cf="ВРЕМЯ";
   | N=2:cf="ДЛИНА";
   | N=3:cf="МАССА";
   | N=4:cf="ОБЪЕМ";
   | N=5:cf="ПЛОЩАДЬ";
   | N=6:cf="ТЕХН";
   | N=7:cf="ЭКОН";
  fi;
   ^cf;
end;

Proc ВыборЕдИзмОКЕИ;
var R:Record;
var cf:s;
 cf=ВыборОКЕИ;
 r=OpenCardFile('РПО_ОКЕИ','ВИД="'+cf+'"');
 if r<>nil:
  ЕдИзмОКЕИ=Getcardfields('РПО_ОКЕИ',R,'Код');
  ЕдИзм=Getcardfields('РПО_ОКЕИ',R,'НКБО');
 fi;
end;

proc setprizn;
 var s,ss,ss1:s;
-- ИНВ=П1+П2+П3;
ClearVariable(Флаг_Переменная);
ClearVariable(Флаг_Описание);
if pos('101.',ГрНФА)=1 or pos('102.',ГрНФА)=1:Позиции_Флаги=5;-- ОС
   Флаг_Переменная[1]='ГНФА';                Флаг_Описание[1]='  Является группой/комплектом                                                        ';
   Флаг_Переменная[2]='КВ';                  Флаг_Описание[2]='  Является объектом капитальных вложений (учитывается на 106 счете)                  ';
   Флаг_Переменная[3]='ГРУППУЧЕТ';           Флаг_Описание[3]='  По данному НФА формируется групповая инв карточка                                  ';
   Флаг_Переменная[4]='НЕСПИСЫВАТЬДО1000';   Флаг_Описание[4]='  Недвижимое имущество или вооружение (не списывать при выдаче в эксплуатацию до 3000р)';
   Флаг_Переменная[5]='АМОРТ0';              Флаг_Описание[5]='  Не начислять амортизацию для ОС>40000р в ведомости начисления амортизации       ';
   if pos('101.07',ГрНФА)=1:
      Флаг_Переменная[4]='НЕСПИСЫВАТЬДО1000';Флаг_Описание[4]='  Библиотечный фонд с ценой не более 40000р - только суммовой учет';
   fi;
 | pos('105.06',ГрНФА)=1:Позиции_Флаги=1;-- материалы посуда?
   Флаг_Переменная[1]='ПОСУДА';Флаг_Описание[1]='   Посуда';
 | true:Позиции_Флаги=0;
fi;

 ФлП1.Надпись=Name_A('НФА.'+SubStr(ГрНФА,1,4));
 ФлП2.Надпись=Name_A('НФА.'+ГрНФА+'.');
 ФлП1.Подсказка=Name_A('НФА.'+SubStr(ГрНФА,1,4));
 ФлП2.Подсказка=Name_A('НФА.'+ГрНФА+'.');
 ФлП1.Виден=ГрНФА<>'';
 ФлП2.Виден=ГрНФА<>'';
 s =Name_A('ГрОС.'+SubStr(ГрОС,1,3));
 ss=Name_A('ГрОС.'+ГрОС);
 ss=if(ss='',s,ss);
-- ФлП3.Надпись=s;
-- ФлП4.Надпись=ss;
-- ФлП3.Подсказка=Раб.нфа.b01.РазбитьСтроку(s ,5);
-- ФлП4.Подсказка=Раб.нфа.b01.РазбитьСтроку(ss,5);
 s=МаскаГРОС(ГрНФА);
-- ФлП3.Виден=false;
-- ФлП4.Виден=false;
 Секц_ГрОС.Виден=false;
 Секц_Аморт.Виден=соотв(ГрНФА,'101.??') or соотв(ГрНФА,'102.??');
 Секц_Аморт1.Виден=соотв(ГрНФА,'101.??') or соотв(ГрНФА,'102.??');
 Секц_Аморт.Column(5,ColVisible,ГрНФА='101.08');
 ss1=Name_A('НФА.'+ГрНФА+'.');                                        ------ Alla
 Секц_Прод.Виден=(соотв(ГрНФА,'105.02') or соотв(ss1,'Продукты питания')) and Name_A('ПРОД.')<>' ';      ------ Alla
-- ФлП3.Виден=s<>'';
-- ФлП4.Виден=s<>'';
-- Секц_БУ_Аморт.Виден=(s<>'') и ОСБУ2005;
-- ФлП5.Виден=(s<>'');
-- Секц_Аморт.Виден=(s<>'');
-- ФлПосуда.Виден=ГрНФА='105.06';
-- if ГрНФА='101.01':
--  | ГрНФА='101.02':
--  | ГрНФА='101.03':
--  | ГрНФА='101.04':
--  | ГрНФА='101.05':
--  | ГрНФА='101.06':
--  | ГрНФА='101.07':
--  | ГрНФА='101.08':
--  | ГрНФА='101.09':
-- fi;
end;


proc OpenOKOF;
var s:s;
var s1:s;
var i:i;
var r:record;
 i=Input(s,'Введите фильтр');
 s1="pos('"+s+"',Код)<>0 or pos('"+up(s)+"',up(КомКлИден))<>0";
 r=opencardfile('ОКОФ2',s1);
  if r<>nil:
    ОКОФ=getcardfields('ОКОФ2',r,'Код');
  |true:
    ОКОФ='';
  fi;
end;

proc Next;
--var wa:i;
--var i:i;
--var j:i;
--var s:s;
--var s1:s;
-- wa=openworkarea('СПИСОК_ОС','ИНВ','pos("'+П1+П2+'",ИНВ)=1');
--  if records(wa)<>0:
--   i=int(substr(getfields(wa,records(wa),'ИНВ'),5,4));
--   s=str(i+1);
--   if int(s)<10000:
--    s1=s;
--   for j=length(s)+1..4 do
--     s1='0'+s1;
--    end;
--    П3=s1;
--    setprizn;
--   |true:
--    message('Это последний номер для данной группы');
--   fi;
--  |true:
--    П3='0001';
--    setprizn;
--  fi;
-- closeworkarea(wa);
end;



2-- _Обработчики событий полей, объектов и шаблона
--ГРУППАВИД_
--ГРУППАКОД
--ГРУППАССЫЛКА
2-- _Обработчики полей
func ПриВходе(s:s;i:i):l;
var ss,ss1,УслАн:s;
var ii,ii1,wa,rs,k:i;
var r:record;
-- УслАн='(НФА.101.??.|НФА.102.??.|НФА.103.??.)&~НФА.101.07.';
-- УслАн='(НФА.10?.??.)&~НФА.101.07.'; -- кроме библиотечного фонда
 if Заблокирована:^false;fi;
 УслАн=РАБ.НФА.INI_SETUP.ВзятьУсловиеВыборНФА_Аналитика('123');
-- УслАн='НФА.10?.??.'; -- кроме библиотечного фонда
-- УслАн='НФА.106.01*|НФА.106.04*'; -- кроме библиотечного фонда
 if s='ГрНФА':ss=ВыборПризнака(УслАн,false,true);
    ss=SubStr(ss,1,11);
    while not Match(ss,'НФА.???.??.') do ss=ВыборПризнака(УслАн,false,true);
     if ss='':break;
      | true :
         if not Match(ss,'НФА.???.??.'):
              Message('Не получилось выбрать?'+chr(13)
                     +'Попробуйте нажать * и выбрать конечную группу нажав на ней'+chr(13)
                     +'Enter или кнопку ВЫБОР');
         fi;
     fi;
    od;
    if ss<>'':ss=SubStr(ss,5,6);
         if ГрНФА<>ss:ГрНФА=ss;
           УслАн=МаскаГРОС(ГрНФА);
           if УслАн<>'':
              ss=РАБ.НФА.B01.ПризнакКонстанта(УслАн);
              if ss<>'':ss=SubStr(ss,6,5);fi;
            | true:ss='';
           fi;
           if ГрОС<>ss:ГрОС=ss;КЛИДЕНТ='';КОМКЛИДЕН='';fi;
         fi;
         setprizn;
    fi;

  | s='Флаг_Значение':if Флаг_Переменная[i]<>'':ЗаписатьПеременнуюЛ(Флаг_Переменная[i],не Флаг_Значение[i]);fi;
  | s='Флаг_Описание':if Флаг_Переменная[i]<>'':ЗаписатьПеременнуюЛ(Флаг_Переменная[i],не Флаг_Значение[i]);fi;
  | s='ГрОС':
    УслАн=МаскаГРОС(ГрНФА);
    if УслАн<>'':ss=РАБ.НФА.B01.ПризнакКонстанта(УслАн);
     if ss='':ss=ВыборПризнака(УслАн);fi;
     if ss<>'':ss=SubStr(ss,6,5);
          if ГрОС<>ss:ГрОС=ss;КЛИДЕНТ='';КОМКЛИДЕН='';fi;
          setprizn;
     fi;
    fi;

  | s='ЕдИзмОКЕИ':ВыборЕдИзмОКЕИ;
  | s='ПРИЗНАКН' :^true;
  | s='КЛИДЕНТ'   :r=opencardfile(ПеремПБ('НФА')+'\Картотеки\'+'ВыборИмяГрОС.bro','КЛРАЗД="'+SubStr(ГрОС,1,2)+SubStr(ГрОС,4,2)+'"');
     if r<>nil:КЛИДЕНТ=getcardfields('КЛАССИФИКНОРМА',r,'КЛИДЕНТ');КОМКЛИДЕН=getcardfields('КЛАССИФИКНОРМА',r,'КОМКЛИДЕН');
        НОРМАМОРТ=getcardfieldn('КЛАССИФИКНОРМА',r,'НОРМА');
      |true:КЛИДЕНТ='';КОМКЛИДЕН='';
     fi;
  | s='Пл': ss=КакСтрока(Шаблон.Имя);if ss='Секц_Части' :InsertFrame(Части ,i);
                                      | ss='Секц_ИзмЦен':InsertFrame(ИзмЦен,i);
                                      | ss='Секц_Движ'  :InsertFrame(Движ  ,i);
                                      | ss='Секц_ХарОС' :InsertFrame(ХарОС ,i);
                                     fi;
  | s='Мн': ss=КакСтрока(Шаблон.Имя);if ss='Секц_Части' :DeleteFrame(Части ,i);
                                      | ss='Секц_ИзмЦен':DeleteFrame(ИзмЦен,i);
                                      | ss='Секц_Движ'  :DeleteFrame(Движ  ,i);
                                      | ss='Секц_ХарОС' :DeleteFrame(ХарОС ,i);
                                     fi;
  | s='КнОКОФ'  :^false;
  | s='КнПризнак'  : -- автоматически сформировать код учета
     k=0;
    if not flgБезФильтра:
      ss1=ИмяПользователя(ИмяБазы(ИМЯКРТ));
      ss1=SubStr(ss1,1,3);
      if SubStr(ss1,3,1)='_':
         ss1=SubStr(ss1,1,2);
         if int(ss1)>0:ss1=ss1+'.';
          | true:ss1='';
         fi;
       | true:ss1='';
      fi;
    else
      ss1='';
    fi;
    ss='НФА.???.??.'+ss1+'????????';
     ii1=Length(ss1)+12;
     for sign s=ss do
         ii=int(SubStr(s,ii1,8));
         k=max(k,ii);
     od;
     s=format('%.'+str(8)+'d',k);
     k=k+1;
     if Соотв(ГрНФА,'???.??'):
      ss='НФА.'+ГрНФА+'.'+ss1+s;
       if Name_A(ss)<>' ':
         if ПризнакВзапись(ss,false)=Current:
            k=k-1;
         fi;
       fi;
     fi;
     ПРИЗНАК=ss1+format('%.'+str(8)+'d',k);
    ^false;
  | s='ГРУППАВИД_'  :
    ClearVariable(st); -- собираем виды
    ss='POS("'+trim(ГрНФА)+'",ГРНФА)>0';
    wa=OpenWorkArea('РПО_ОКЕИ_ГРУППЫ','ВИД',ss);
    ss='('+ss+')';
    rs=records(wa);
    if rs<1:Message('В картотеке РПО_ОКЕИ_ГРУППЫ нет ни одной группы!');CloseWorkArea(wa);^false;fi;
    for ii=1..rs do
     ДобавитьВмассив(st,true,false,trim(up(getfields(wa,ii,'ВИД'))));
    od;
    CloseWorkArea(wa);
    ii=Alternate('Выбор вида:',st);
    if ii<1:^false;fi;
    r=ОткрытьКартотеку('РПО_ОКЕИ_ГРУППЫ', 'ВИД="'+st[ii]+'" and '+ss, nil, crdRecordOnly);
    if r=nil:^false;fi;
    wa=OpenWorkArea('РПО_ОКЕИ_ГРУППЫ','','ukey='+recordtostring(r));
      ГРУППАВИД=GetFieldS(wa,1,'ВИД');
      ГРУППАКОД=GetFieldS(wa,1,'КОД');
      ГРУППАССЫЛКА=GetFieldS(wa,1,'НАИМЕНОВАНИЕ');
    CloseWorkArea(wa);
    ^false;
--     ОткрытьКартотеку(Имя : Строка [; Фильтр : Строка [; Ссылка : Запись[; Выбор: Целое]]]):
--     Зап = ОткрытьКартотеку("КонтрАгент", "", nil, crdAnyRecord);
  | s='ГРУППАКОД_'  :
    ss='POS("'+trim(ГрНФА)+'",ГРНФА)>0';
    r=ОткрытьКартотеку('РПО_ОКЕИ_ГРУППЫ', ss, nil, crdRecordOnly);
    if r=nil:^false;fi;
    wa=OpenWorkArea('РПО_ОКЕИ_ГРУППЫ','','ukey='+recordtostring(r));
      ГРУППАВИД=GetFieldS(wa,1,'ВИД');
      ГРУППАКОД=GetFieldS(wa,1,'КОД');
      ГРУППАССЫЛКА=GetFieldS(wa,1,'НАИМЕНОВАНИЕ');
    CloseWorkArea(wa);
    ^false;

--ГРУППАВИД_
--ГРУППАКОД
--ГРУППАССЫЛКА



  | true:^true;

 fi;
^false;
end;

Func ПриОбзоре(Секц:s;Row:i;Col:i;v:S):S;
var s:s;
--var s,ss,УслАн:s;
var i:i;
--var i,n:i;
--var nn:n;
--var R:Record;
s=КакСтрока(Шаблон.Поле);
i=КакЦелое (Шаблон.Кадр);
  if s='ОКОФ' :
    ^ОКОФ_onLookup(Секц,Row,Col,v);
--    УслАн=МаскаГРОС(ГрНФА);
--    if УслАн<>'':ss=РАБ.НФА.B01.ПризнакКонстанта(УслАн);
--     if ss='':ss=ВыборПризнака(УслАн);fi;
--     if ss<>'':ss=SubStr(ss,6,5);
--          if ГрОС<>ss:ГрОС=ss;КЛИДЕНТ='';КОМКЛИДЕН='';fi;
--     fi;
--    fi;
--     r=opencardfile(ПеремПБ('НФА')+'\Картотеки\'+'ВыборОКОФ02.bro','КЛРАЗД="'+SubStr(ГрОС,1,2)+'"');
----     r=opencardfile(ПеремПБ('НФА')+'\Картотеки\'+'ВыборОКОФ02.bro','КЛРАЗД="'+SubStr(ГрОС,1,2)+SubStr(ГрОС,4,2)+'"');
--     if r<>nil:ss=getcardfields('ОКОФ02',r,'Код');
--        if ОКОФ<>ss:ОКОФ=ss;fi;
--        i=int(getcardfields('ОКОФ02',r,'КлГрупп'));
--        if i>0:
--          КлГрупп   =i;
--          СрокАм    =РАБ.НФА.B01.ВзятьСрокАмортГруппы(i);
--          НОРМАМОРТ =100/СрокАм;
--          НормаПосле=НОРМАМОРТ;
--          КОМКЛИДЕН =getcardfields('ОКОФ02',r,'КОМКЛИДЕН');
--        fi;
--      |true:ОКОФ='';
--     fi;
--     Шаблон.СкрытьРедактор(false);
--     ^ОКОФ;

--     fi;


--   НОРМАМОРТ=Раб.НФА.B01.НормаАмортизацииНовая(БалСтоим,НачисленоАморт,НормаДо,НормаПосле);
--     Шаблон.СкрытьРедактор(false);
   | s='КлГрупп':
     Шаблон.СкрытьРедактор(false);
     i=РАБ.НФА.B01.ВыборНомераАмортГруппы;
     if i>0:
       КлГрупп  =i;
       СрокАм   =РАБ.НФА.B01.ВзятьСрокАмортГруппы(i);
--       if ОСБУ2005 и КакЛогическое(Секц_БУ_Аморт.Visible):НормаПосле=100/СрокАм;
--        | true:НОРМАМОРТ=100/СрокАм;
--       fi;

     fi;
     ^str(i);

   | s='NN_NFA_':
      s=РАБ.НФА.B01._NextStr.(ИМЯКРТ,'','','NN_NFA','0',7);
      if int(s)<>int(v)+1 or int(v)=0:v=s;fi;
      if NN_NFA<>v:NN_NFA=v;fi;
  fi;
--if s ='Наимен_пр':if не ОС8:^v;fi;

-- | true:^v;
--fi;
^v;
end;


func ПриПроверкеД(s:s;i:i;v:d):l;
-- if s='ДАТОПЕРН':ДАТОПЕР=v;
--  | true:^true;
-- fi;
 ^true;
end;
func ПриПроверкеЧ(s:s;i:i;v:n):l;
-- if s="Нам_":if v<0:Message('Значение нормы годового износа не может быть отрицательным');^false;fi;
--       if Нормаморт<>v:Нормаморт=v;fi;
--  | s="СрокЭксп_":if Нормаморт<>100/v:Нормаморт=100/v;fi;
--  | s="Нп" :if v<0:Message('Значение нормы годового пробега не может быть отрицательным');^false;fi;
--       if Нормпробег<>v:Нормпробег=v;fi;
--  | s="ЭкспПробег":if Нормпробег<>v/СрокЭксп_:Нормпробег=v/СрокЭксп_;fi;
-- fi;
 ^true;
end;

func ПриПроверкеС(s:s;i:i;v:s):l;
var ss:s;
 if s='ПРИЗНАКН':ss=UP(v);
      if NOT РАБ.НФА.B01.НеПравильныйПризнак(ss):
        if ПРИЗНАК<>ss:ПРИЗНАК=ss;
        ^true;fi;^true;
      fi;
--  | s="П3":if not(length(v)<>4 or int(v)=0):П3=v;setprizn;^true;fi;
--      message('Данное поле должно содержать 4 цифры');^false;
 fi;
 ^true;
end;

2-- _Обработчики объектов
proc ПриНажатии(s:s);
 if s='КнЗаменаКода'   :
--  | s='КнПризнКакИнв'  :Признак=ИНВ;
  | true:exit;
 fi;

end;
proc ПриИзменении(s:s);
2-- блок обработки до проверки разрешения на изменения
 if  s='ФлCopyClosedModFob':
     if not ClosedModFob:CurrentRecord=Current;ClosedModFob=true;--блокировка от удаления
      | true:-- надо снять флаг
        Раб.SQL.SetClosedModFobUpdateOnBlankEditor_false(ИМЯКРТ,current,5,SQLver,true);
     fi;
     установили_блокировку=true;
     РедакторПрименить;
     установили_блокировку=false;
     ФлCopyClosedModFob.State=ClosedModFob;
     exit;
 fi;

 if не Заблокирована:
    setprizn;
-- s="ФиксЦенаДа" :setprizn;
-- ФиксЦенаНет
 fi;

--             БалСтоим:n;НачисленоАморт:n;НормаДо:n;НормаПосле


2-- блок обработки с проверкой разрешения на изменения
end;

2-- _Обработчики шаблона
proc ШаблонПриОткрытии(Create:l); -- невозможна работа с объектами
-- ss=ИмяПользователя(ИмяБазы(ИМЯКРТ));
 SQLver=SQLЗапросыРазрешены;
 БланкКОД=РАБ.НФА.B01.БланкИмя;
end;
proc ШаблонПослеОткрытия(Create:l);
--WriteSys_Color;
end;
proc ШаблонПриСчитывании;
var i:i;
установили_блокировку=false;
setprizn;
if КлГрупп>0:
  i=РАБ.НФА.B01.ВзятьСрокАмортГруппы(КлГрупп);
  if ((СрокАм<>i и КлГрупп<10) or (КлГрупп>9 и СрокАм<31)):
    Message('Срок полезного использования ОС не совпадает'+chr(13)+
            'со стандартным сроком для данной амортизационной группы'+chr(13)+
            'Возможно ОС было модернизировано со сменой полезного срока эксплуатации.'+chr(13)+
            'Возможно неверно выбрана амортизационная группа!'+chr(13)+
            'В этом случае выберите заново ОКОФ или аморт. группу'+chr(13)
  --          if (ОСБУ2005,'и расчитайте расчетную норму амортизации','')
           ,тсПредупреждение);
  fi;
fi;
end;
Func ШаблонПриПроверке: Logical;
  var autoref:l;
  var ss:s;
  autoref=автообработка;    if autoref:ЗадатьАвтообработку(false);fi;
  if КОНВ=0:КОНВ=1;fi;
  if trim(ПРИЗНАК)='' and ГрНФА<>'':message('Не введен код признака!',mterror);Шаблон.поле='ПРИЗНАКН';if autoref:ЗадатьАвтообработку(autoref);fi;^false;fi;
  if not flgБезФильтра:
    ss=ИмяПользователя(ИмяБазы(ИМЯКРТ));
    ss=SubStr(ss,1,3);
    if SubStr(ss,3,1)='_':
       ss=SubStr(ss,1,2);
       if int(ss)>0 and pos(ss+'.',ПРИЗНАК)<>1 and ПРИЗНАК<>'':
          ПРИЗНАК=ss+'.'+ПРИЗНАК;
       fi;
    fi;
  fi;
  if not autoref:refreshana;fi;
     ss='НФА.'+ГрНФА+'.'+ПРИЗНАК;
  if Name_A(ss)<>' ':
     if признаквзапись(ss,false)<>current:
       message('Данный признак уже существует!');
       if autoref:ЗадатьАвтообработку(autoref);fi;
       ^false;
     fi;
  fi;
  if autoref:ЗадатьАвтообработку(autoref);fi;
 if установили_блокировку:установили_блокировку=false;^true;fi;
 ^not Заблокирована;
end;

proc ШаблонПриОтмене;
setprizn;
end;
proc ШаблонПриЗакрытии(ob:l);
end;


var st[]:s;
var СПРОБ []:s;-- обязательные справочники
var СПРДОП[]:s;-- дополнительные справочники

var АНОБДЕБ []:s;-- обязательные справочники
var АНОБКРЕ []:s;-- дополнительные справочники
var АНДОПДЕБ[]:s;-- обязательные справочники
var АНДОПКРЕ[]:s;-- дополнительные справочники
var ПланСч[]:s;-- ПланСч




Proc ПриВыходе(FieldName: String; Iter: Integer);
 if Заблокирована:fi;
 if FieldName='СрокАм09':НОРМАМОРТ09=100/СрокАм09;
  | FieldName='СрокАм02':НОРМАМОРТ02=100/СрокАм02;
  | FieldName='СрокАм':НОРМАМОРТ=100/СрокАм;
 fi;

end;

Проц ОКОФ_ПриНажатии;
 var f,ss,f0,tmp:s;
 var t,z,k,ro,j:i;
 var nn0,nn:n;
 var rec:record;
 f='';
 z=количествослов(ИМЯ,' ');
 for t=1..z do
   ss=ВыделитьСлово(t,ИМЯ,' ');
   j=length(ss);
   if j>3:ss=up(ss);
     if j>6:ss=SubStr(ss,1,j-3);fi; -- поиск по без последних 3 символов
     if j=6:ss=SubStr(ss,1,j-2);fi; -- поиск по без последних 3 символов
     f0='pos("'+ss+'",UP(ИМЯ_ОКОФ1))>0';
     if Length(f)+27+Length(f0)<254:
        f=Раб.НФА.B01.ab(f,' or ',f0);
     fi;
   fi;
 od;
 --trace(f);
 REC=OpenCardFile(PlanVar("НФА")+"\Картотеки\"+"ВыборРПО_ОКОФ.bro", f);
 if REC=NIL: exit; fi;
 ss=trim(GetCardFieldS("РПО_ОКОФ", REC, "ГР_ПЕРЕОЦЕНКИ"));
 if length(ss)<1:
   message('Неверно выбран ОКОФ!^MВыбору подлежит только строка ОКОФ с непустой группой переоценки!',mtWarning);
   exit;
 fi;
 КОМКЛИДЕН =GetCardFieldS('РПО_ОКОФ',REC,'ИМЯ_ОКОФ1');
 ОКОФ      =GetCardFieldS("РПО_ОКОФ", REC, "КОД_ОКОФ");

 k=Int(GetCardFieldS("РПО_ОКОФ", REC, "АМОРТ_ГР"));
-- if k=0:k=10;fi;
 if k>0:
   КлГрупп=k;
   СрокАм    =РАБ.НФА.B01.ВзятьСрокАмортГруппы(k);
--   АМОРТ_СРОК=ВзятьСрокАмортГруппы(k);
   НОРМАМОРТ =100/СрокАм;
--   НормаПосле=НОРМАМОРТ;
 fi;
 k=Int(GetCardFieldS("РПО_ОКОФ", REC, "АМОРТ_ГР02"));
-- if k=0:k=10;fi;
 nn0=КлГрупп02+СрокАм02+НОРМАМОРТ02;
 ro=0;
 if k>0: tmp='';
   if КлГрупп02<>k: tmp='Амортизационная группа: было='+str(КлГрупп02)+' стало='+str(k);fi;
   j=РАБ.НФА.B01.ВзятьСрокАмортГруппы(k);
   if СрокАм02<>j: tmp=РАБ.НФА.B01.ab(tmp,'^M','срок эксплуатации: было='+str(СрокАм02)+' стало='+str(j));fi;
   nn=100/СрокАм02;
   if НОРМАМОРТ02<>nn: tmp=РАБ.НФА.B01.ab(tmp,'^M','норма амортизации%: было='+str(НОРМАМОРТ02,3)+' стало='+str(nn,3));fi;
   if tmp<>'' и nn0>0.1:
     ro=3;
     Пока ro=3 do ro=Вопрос('','изменить данные для ОС принятых к учету до 01.01.2007?^M^M'+tmp,'Да;Отказ;Помощь',mtConfirmation);
      if ro=3:message('для данных НФА принятых к учету до 2007г будет изменен алгоритм расчета амортизации^M'+
                      'по новым срокам и нормам.^M'+
                      'Да - означает Ваше согласие с тем, что ранее выбранный ОКОФ не соответствовал нашему НФА^M'+
                      '     или соответствовал, но не соответствовали нормы и сроки по нему^M'+
                      '     и с данного момента все расчеты по начислению амортизации для ОС>40000 руб ^M'+
                      '     будут проходит по новым нормам и срокам^M'+
                      'Отмена - означает, что  все расчеты по начислению амортизации для ОС>40000 руб^M'+
                      '     проидут по своим старым срокам и нормам^M'
                     );
      fi;
     od;
   fi;
 fi;
     if ro=1 or nn0<0.1:
       КлГрупп02   =k;
       СрокАм02    =j;
       НОРМАМОРТ02 =nn;
     fi;
--     ^ОКОФ;




end;
Функ ОКОФ__ПриВходе(Поле: Строка; Итер: Целое): Логич;
  ОКОФ_ПриНажатии;
  ^false;
end;

func ТипПрод(s:s;i:i):l;
var ss:string;
 ss=ВыборПризнака("Прод",false,true);
 if ss<>'':CPS_ПродТип=ss; fi;
 ^false;
end;


Проц Карточка_0504041_ПриНажатии(Отправитель: Строка);
  var ss:s;
  if IsBlankOpen('НФА.ДОКУМЕНТЫ.КАРТОЧКИ.ОКУД_0504041'):Close('НФА.ДОКУМЕНТЫ.КАРТОЧКИ.ОКУД_0504041');fi;
  EditorApply;
  ss='НФА.'+ГрНФА+'.'+ПРИЗНАК;
  if Name_A(ss)<>' ':
     if признаквзапись(ss,false)=current:
        PutVariableS('НФА.ДОКУМЕНТЫ.КАРТОЧКИ.ОКУД_0504041.КОД_ПРИЗН_import',ss);
        OpenBlank('НФА.ДОКУМЕНТЫ.КАРТОЧКИ.ОКУД_0504041',false);
     fi;
  fi;

end;

Func ВзятьОписаниеНалоговойЛьготы(КодЛьготы:Integer) :String;
--2010221 - организации и учреждения уголовно-исполнительной системы - в отношении имущества, используемого для осуществления возложенных на них функций (п.1 ст.381 НК)
--2010222 - религиозные организации - в отношении имущества, используемого ими для осуществления религиозной деятельности (п.2 ст.381 НК)
--2010223 - общероссийские общественные организации инвалидов (в том числе созданные как союзы общественных организаций инвалидов), среди членов которых инвалиды и их законные представители составляют не менее 80%, в отношении имущества, используемого ими для осуществления их уставной деятельности (п.3 ст.381 НК)
--2010224 - организации, уставный капитал которых полностью состоит из вкладов общероссийских общественных организаций инвалидов (в том числе созданные как союзы общественных организаций инвалидов) (среди членов которых инвалиды и их законные представители составляют не менее 80%), если среднесписочная численность инвалидов среди их работников составляет не менее 50 процентов, а их доля в фонде оплаты труда - не менее 25 процентов, - в отношении имущества, используемого ими для производства и (или) реализации товаров (за исключением подакцизных товаров, минерального сырья и иных полезных ископаемых, а также иных товаров по перечню, утверждаемому Правительством Российской Федерации по согласованию с общероссийскими общественными организациями инвалидов), работ и услуг (за исключением брокерских и иных посреднических услуг) (п.3 ст.381 НК)
--2010225 - учреждения, единственными собственниками имущества которых являются общероссийские общественные организации инвалидов (в том числе созданные как союзы общественных организаций инвалидов) (среди членов которых инвалиды и их законные представители составляют не менее 80%), - в отношении имущества, используемого ими для достижения образовательных, культурных, лечебно-оздоровительных, физкультурно-спортивных, научных, информационных и иных целей социальной защиты и реабилитации инвалидов, а также для оказания правовой и иной помощи инвалидам, детям-инвалидам и их родителям (п.3 ст.381 НК)
--2010226 - организации, основным видом деятельности которых является производство фармацевтической продукции, - в отношении имущества, используемого ими для производства ветеринарных иммунобиологических препаратов, предназначенных для борьбы с эпидемиями и эпизоотиями (п.4 ст.381 НК)
--2010227 - организации - в отношении объектов, признаваемых памятниками истории и культуры федерального значения в установленном законодательством Российской Федерации порядке (п.5 ст.381 НК)
--2010233 - организации - в отношении ядерных установок, используемых для научных целей, пунктов хранения ядерных материалов и радиоактивных веществ, а также хранилищ радиоактивных отходов (п.9 ст.381 НК)
--2010234 - организации - в отношении ледоколов, судов с ядерными энергетическими установками и судов атомно-технологического обслуживания (п.10 ст.381 НК)
--2010235 - организации - в отношении железнодорожных путей общего пользования, а также сооружений, являющихся неотъемлемой технологической частью указанных объектов (п.11 ст.381 НК)
--2010236 - организации - в отношении федеральных автомобильных дорог общего пользования, а также сооружений, являющихся неотъемлемой технологической частью указанных объектов (п.11 ст.381 НК)
--2010237 - организации - в отношении магистральных трубопроводов, а также сооружений, являющихся неотъемлемой технологической частью указанных объектов (п.11 ст.381 НК)
--2010238 - организации - в отношении линий энергопередачи, а также сооружений, являющихся неотъемлемой технологической частью указанных объектов (п.11 ст.381 НК)
--2010239 - организации - в отношении космических объектов (п.12 ст.381 НК)
--2010253 - организации, за исключением судостроительных организаций, имеющих статус резидента промышленно-производственной особой экономической зоны, - в отношении имущества, учитываемого на балансе организации - резидента особой экономической зоны, созданного или приобретенного в целях ведения деятельности на территории особой экономической зоны, используемого на территории особой экономической зоны в рамках соглашения о создании особой экономической зоны и расположенного на территории данной особой экономической зоны, в течение пяти лет с момента постановки на учет указанного имущества (п.17 ст.381 НК)
--2010254 - организации - в отношении судов, зарегистрированных в Российском международном реестре судов (п.18 ст.381 НК)
--2010255 - судостроительные организации, имеющие статус резидента промышленно-производственной особой экономической зоны, - в отношении имущества, учитываемого на их балансе и используемого в целях строительства и ремонта судов, в течение десяти лет с даты регистрации таких организаций в качестве резидента особой экономической зоны, а также в отношении имущества, созданного или приобретенного в целях строительства и ремонта судов, в течение десяти лет с даты постановки на учет указанного имущества, но не более чем в течение срока существования промышленно-производственной особой экономической зоны (п.22 ст.381 НК)
--2010291 - инвесторы по соглашениям о разделе продукции в отношении имущества, используемого исключительно для осуществления деятельности, предусмотренной соглашениями о разделе продукции (п.7 ст.346.35 НК)
--2010331 - имущество специализированных протезно-ортопедических предприятий (п.13 ст.381 НК)
--2010332 - имущество коллегий адвокатов, адвокатских бюро и юридических консультаций (п.14 ст.381 НК)
--2010333 - имущество государственных научных центров (п.15 ст.381 НК)
--2010335 - организации, признаваемые управляющими компаниями в соответствии с Федеральным законом от 28 сентября 2010 г. N 244-ФЗ "Об инновационном центре "Сколково" (Собрание законодательства Российской Федерации, 2010, N40, ст.4970; N52, ст.7000; 2011, N29, ст.4291, ст. 4300) (п.19 ст.381 НК)
--2010336 - организации, получившие статус участников проекта по осуществлению исследований, разработок и коммерциализации их результатов в соответствии с Федеральным законом от 28 сентября 2010 г. N 244-ФЗ "Об инновационном центре "Сколково" (п.20 ст.381 НК)
--2010337 - организации - в отношении вновь вводимых объектов, имеющих высокую энергетическую эффективность, в соответствии с перечнем таких объектов, установленным Правительством Российской Федерации (п.21 ст.381 НК)
--2010338 - организации - в отношении вновь вводимых объектов, имеющих высокий класс энергетической эффективности, если в отношении таких объектов в соответствии с законодательством Российской Федерации предусмотрено определение классов их энергетической эффективности (п.21 ст.381 НК)
--2010401 - налоговая ставка по налогу на имущество организаций в размере 0 процентов в течение первых шести календарных лет, начиная со дня включения юридического лица в единый реестр резидентов Особой экономической зоны в Калининградской области, в отношении имущества, созданного или приобретенного при реализации инвестиционного проекта в соответствии с Федеральным законом от 10.01.2006 N 16-ФЗ (п.3 ст.385.1 НК)
--2010402 - налоговая ставка по налогу на имущество организаций в размере величины, установленной законом Калининградской области и уменьшенной на пятьдесят процентов в период с седьмого по двенадцатый календарный год включительно со дня включения юридического лица в единый реестр резидентов Особой экономической зоны в Калининградской области, в отношении имущества, созданного или приобретенного при реализации инвестиционного проекта в соответствии с Федеральным законом от 10.01.2006 N 16-ФЗ (п.4 ст.385.1 НК)
--2012000 - дополнительные льготы по налогу на имущество организаций, устанавливаемые законами субъектов Российской Федерации, за исключением льгот в виде снижения ставки для отдельной категории налогоплательщиков и в виде уменьшения суммы налога, подлежащей уплате в бюджет (п.2 ст.372 НК)
--2012400 - дополнительные льготы по налогу на имущество организаций, устанавливаемые законами субъектов Российской Федерации в виде понижения налоговой ставки для отдельной категории налогоплательщиков (п.2 ст.372 НК)
--2012500 - дополнительные льготы по налогу на имущество организаций, устанавливаемые законами субъектов Российской Федерации в виде уменьшения суммы налога, подлежащей уплате в бюджет (п.2 ст.372 НК)
--2014000 - льготы (освобождение) по налогу на имущество организаций, предусмотренные международными договорами Российской Федерации (статья 7 НК)
 if КодЛьготы=2010221: ^"2010221 - имущество организаций и учреждений уголовно-исполнительной системы (п.1 ст.381 НК)";
 |  КодЛьготы=2010222: ^"2010222 - имущество религиозных организаций (п.2 ст.381 НК)";
 |  КодЛьготы=2010223: ^"2010223 - имущество общероссийских общественных организаций инвалидов (среди членов которых инвалидов не менее 80%) (п.3 ст.381 НК)";
 |  КодЛьготы=2010224: ^"2010224 - имущество организации, уставный капитал которых полностью состоит из вкладов общероссийских общественных организаций инвалидов (п.3 ст.381 НК)";
 |  КодЛьготы=2010225: ^"2010225 - имущество учреждения, единственными собственниками имущества которых являются общероссийские общественные организации инвалидов (п.3 ст.381 НК)";
 |  КодЛьготы=2010226: ^"2010226 - имущество, используемое для производства ветеринарных иммунобиологических препаратов для борьбы с эпидемиями и эпизоотиями (п.4 ст.381 НК)";
 |  КодЛьготы=2010227: ^"2010227 - объекты, признаваемых памятниками истории и культуры федерального значения (п.5 ст.381 НК)";
 |  КодЛьготы=2010233: ^"2010233 - ядерные установки, используемых для научных целей, пункты хранения ядерных материалов, хранилища радиоактивных отходов (п.9 ст.381 НК)";
 |  КодЛьготы=2010234: ^"2010234 - ледоколы, суда с ядерными энергетическими установками (п.10 ст.381 НК)";
 |  КодЛьготы=2010235: ^"2010235 - железнодорожные пути общего пользования (п.11 ст.381 НК)";
 |  КодЛьготы=2010236: ^"2010236 - федеральные автомобильные дороги общего пользования (п.11 ст.381 НК)";
 |  КодЛьготы=2010237: ^"2010237 - магистральные трубопроводы (п.11 ст.381 НК)";
 |  КодЛьготы=2010238: ^"2010238 - линии энергопередачи (п.11 ст.381 НК)";
 |  КодЛьготы=2010239: ^"2010239 - космические объекты (п.12 ст.381 НК)";
 |  КодЛьготы=2010253: ^"2010253 - имущество организаций, резидентов промышленно-производственной особой экономической зоны (кроме судостроительных) - 5 лет (п.17 ст.381 НК)";
 |  КодЛьготы=2010254: ^"2010254 - суда, зарегистрированных в Российском международном реестре судов (п.18 ст.381 НК)";
 |  КодЛьготы=2010255: ^"2010255 - имущество судостроительных организаций, резидентов промышленно-производственной особой экономической зоны - 10 лет (п.22 ст.381 НК)";
 |  КодЛьготы=2010291: ^"2010291 - инвесторы по соглашениям о разделе продукции (п.7 ст.346.35 НК)";
 |  КодЛьготы=2010331: ^"2010331 - имущество специализированных протезно-ортопедических предприятий (п.13 ст.381 НК)";
 |  КодЛьготы=2010332: ^"2010332 - имущество коллегий адвокатов, адвокатских бюро и юридических консультаций (п.14 ст.381 НК)";
 |  КодЛьготы=2010333: ^"2010333 - имущество государственных научных центров (п.15 ст.381 НК)";
 |  КодЛьготы=2010335: ^"2010335 - имущество организации, признаваемые управляющими компаниями в соответствии с ФЗ 'Об инновационном центре 'Сколково' (п.19 ст.381 НК)";
 |  КодЛьготы=2010336: ^"2010336 - имущество организации, участники проекта по осуществлению исследований в соответствии с ФЗ 'Об инновационном центре 'Сколково' (п.20 ст.381 НК)";
 |  КодЛьготы=2010337: ^"2010337 - объекты, имеющие высокую энергетическую эффективность, в соответствии с перечнем Правительства РФ (п.21 ст.381 НК)";
 |  КодЛьготы=2010338: ^"2010338 - объекты, имеющие высокий класс энергетической эффективности, если для объекта законодательством РФ определен такой класс (п.21 ст.381 НК)";
 |  КодЛьготы=2010401: ^"2010401 - имущество, созданное или приобретенное в особой экономической зоне в Калининградской области по ставке 0% в течение 6 лет (п.3 ст.385.1 НК)";
 |  КодЛьготы=2010402: ^"2010402 - имущество, созданное или приобретенное в особой экономической зоне в Калининградской области 50% от ставки налога в период 7-12 лет (п.4 ст.385.1 НК)";
 |  КодЛьготы=2012000: ^"2012000 - льготы по налогу на имущество организаций, по закону субъекта РФ (кроме понижения налоговой ставки и уменьшения суммы налога) (п.2 ст.372 НК)";
 |  КодЛьготы=2012400: ^"2012400 - льготы по налогу на имущество организаций, по закону субъекта РФ в виде понижения налоговой ставки (п.2 ст.372 НК)";
 |  КодЛьготы=2012500: ^"2012500 - льготы по налогу на имущество организаций, по закону субъекта РФ в виде уменьшения суммы налога, подлежащей уплате в бюджет (п.2 ст.372 НК)";
 |  КодЛьготы=2014000: ^"2014000 - льготы по налогу на имущество организаций, предусмотренные международными договорами РФ (статья 7 НК)";
 else ^"Налоговых льгот нет";
 fi;
end;

var КОДЛГТ_НИ_СТР :String = ВзятьОписаниеНалоговойЛьготы(КОДЛГТ_НИ);
var BufI[] :Integer;
var BufS[] :String;

Func КОДЛГТ_НИ_СТР_OnEnter(FieldName: String; Iter: Integer): logical;
var num, pp :Integer;
 ClearVariable(BufI);
 ClearVariable(BufS);
 num=0;
 BufI[01]=0;        BufS[01]=ВзятьОписаниеНалоговойЛьготы(BufI[01]);
 BufI[02]=2010221;  BufS[02]=ВзятьОписаниеНалоговойЛьготы(BufI[02]);
 BufI[03]=2010222;  BufS[03]=ВзятьОписаниеНалоговойЛьготы(BufI[03]);
 BufI[04]=2010223;  BufS[04]=ВзятьОписаниеНалоговойЛьготы(BufI[04]);
 BufI[05]=2010224;  BufS[05]=ВзятьОписаниеНалоговойЛьготы(BufI[05]);
 BufI[06]=2010225;  BufS[06]=ВзятьОписаниеНалоговойЛьготы(BufI[06]);
 BufI[07]=2010226;  BufS[07]=ВзятьОписаниеНалоговойЛьготы(BufI[07]);
 BufI[08]=2010227;  BufS[08]=ВзятьОписаниеНалоговойЛьготы(BufI[08]);
 BufI[09]=2010233;  BufS[09]=ВзятьОписаниеНалоговойЛьготы(BufI[09]);
 BufI[10]=2010234;  BufS[10]=ВзятьОписаниеНалоговойЛьготы(BufI[10]);
 BufI[11]=2010235;  BufS[11]=ВзятьОписаниеНалоговойЛьготы(BufI[11]);
 BufI[12]=2010236;  BufS[12]=ВзятьОписаниеНалоговойЛьготы(BufI[12]);
 BufI[13]=2010237;  BufS[13]=ВзятьОписаниеНалоговойЛьготы(BufI[13]);
 BufI[14]=2010238;  BufS[14]=ВзятьОписаниеНалоговойЛьготы(BufI[14]);
 BufI[15]=2010239;  BufS[15]=ВзятьОписаниеНалоговойЛьготы(BufI[15]);
 BufI[16]=2010253;  BufS[16]=ВзятьОписаниеНалоговойЛьготы(BufI[16]);
 BufI[17]=2010254;  BufS[17]=ВзятьОписаниеНалоговойЛьготы(BufI[17]);
 BufI[18]=2010255;  BufS[18]=ВзятьОписаниеНалоговойЛьготы(BufI[18]);
 BufI[19]=2010291;  BufS[19]=ВзятьОписаниеНалоговойЛьготы(BufI[19]);
 BufI[20]=2010331;  BufS[20]=ВзятьОписаниеНалоговойЛьготы(BufI[20]);
 BufI[21]=2010332;  BufS[21]=ВзятьОписаниеНалоговойЛьготы(BufI[21]);
 BufI[22]=2010333;  BufS[22]=ВзятьОписаниеНалоговойЛьготы(BufI[22]);
 BufI[23]=2010335;  BufS[23]=ВзятьОписаниеНалоговойЛьготы(BufI[23]);
 BufI[24]=2010336;  BufS[24]=ВзятьОписаниеНалоговойЛьготы(BufI[24]);
 BufI[25]=2010337;  BufS[25]=ВзятьОписаниеНалоговойЛьготы(BufI[25]);
 BufI[26]=2010338;  BufS[26]=ВзятьОписаниеНалоговойЛьготы(BufI[26]);
 BufI[27]=2010401;  BufS[27]=ВзятьОписаниеНалоговойЛьготы(BufI[27]);
 BufI[28]=2010402;  BufS[28]=ВзятьОписаниеНалоговойЛьготы(BufI[28]);
 BufI[29]=2012000;  BufS[29]=ВзятьОписаниеНалоговойЛьготы(BufI[29]);
 BufI[30]=2012400;  BufS[30]=ВзятьОписаниеНалоговойЛьготы(BufI[30]);
 BufI[31]=2012500;  BufS[31]=ВзятьОписаниеНалоговойЛьготы(BufI[31]);
 BufI[32]=2014000;  BufS[32]=ВзятьОписаниеНалоговойЛьготы(BufI[32]);
 if КОДЛГТ_НИ>0: pp=SearchInArray(BufI, КОДЛГТ_НИ, True, 1); else pp=1; fi;
 num=Alternate("Выберите налоговую льготу...", BufS, -1, pp, 12);
 if num>0: КОДЛГТ_НИ=BufI[num]; fi;
 ClearVariable(BufI);
 ClearVariable(BufS);
 ^False;
end;


Конец