-- Шаблон создан мастером бланков
-- 24.11.2006 10:21:28
--
БланкСШаблоном "Справочник пользовательских групп", Редактор РПО_ОКЕИ_ГРУППЫ;
BTNNAME_MENU:s='Справочник групп';
var УпрВыборГрНФА:i;
var ГрНФА_[]:s;
var ГрНФАУсл[]:l;
var ГрНФАИмя[]:s;
var st[]:s;
var ГрНФА1:s;
func ПересчетГрНФА1изМассиваГрНФАУсл:s;
var ss:s;
var j:i;
 ss='';
 for j=1..УпрВыборГрНФА do
  if ГрНФАУсл[j]:
    ss=ss+' '+ГрНФА_[j];
  fi;
 od;
 ^trim(ss);
end;
Proc ЗаполнитьУпрВыборГрНФА;
 var k,j,i:i;
 var ss:s;
  ГрНФА1=ГрНФА;
  ClearVariable(УпрВыборГрНФА);
  ClearVariable( ГрНФА_   );
  ClearVariable( ГрНФАУсл);
  ClearVariable( ГрНФАИмя);
  УпрВыборГрНФА=20;
  ГрНФА_[01]='101.01';ГрНФАИмя[01]='Жилые помещения';
  ГрНФА_[02]='101.02';ГрНФАИмя[02]='Нежилые помещения';
  ГрНФА_[03]='101.03';ГрНФАИмя[03]='Сооружения';
  ГрНФА_[04]='101.04';ГрНФАИмя[04]='Машины и оборудование';
  ГрНФА_[05]='101.05';ГрНФАИмя[05]='Транспортные средства';
  ГрНФА_[06]='101.06';ГрНФАИмя[06]='Производственный и хозяйственный инвентарь';
  ГрНФА_[07]='101.07';ГрНФАИмя[07]='Библиотечный фонд';
--  ГрНФА_[08]='101.08';ГрНФАИмя[08]='Драгоценности и ювелирные изделия';
  ГрНФА_[08]='101.08';ГрНФАИмя[09]='Прочие основные средства';
  ГрНФА_[09]='105.01';ГрНФАИмя[10]='Медикаменты и перевязочные средства';
  ГрНФА_[10]='105.02';ГрНФАИмя[11]='Продукты питания';
  ГрНФА_[11]='105.03';ГрНФАИмя[12]='Горюче-смазочные материалы';
  ГрНФА_[12]='105.04';ГрНФАИмя[13]='Строительные материалы';
  ГрНФА_[13]='105.05';ГрНФАИмя[14]='Мягкий инвентарь';
  ГрНФА_[14]='105.06';ГрНФАИмя[15]='Прочие материальные запасы';
  ГрНФА_[15]='105.07';ГрНФАИмя[16]='Готовая продукция';
  ГрНФА_[16]='102.00';ГрНФАИмя[17]='Нематериальные активы';
  ГрНФА_[17]='103.01';ГрНФАИмя[18]='Земля';
  ГрНФА_[18]='103.02';ГрНФАИмя[19]='Ресурсы недр';
  ГрНФА_[19]='103.03';ГрНФАИмя[20]='Прочие непроизведенные активы';
  k=КоличествоСлов(ГрНФА1,' ');
  for i=1..k do
    ss=trim(ВыделитьСлово(i,ГрНФА1,' '));
    j=ПоискВмассиве(ГрНФА_,ss);
    if j>0:
     ГрНФАУсл[j]=true;
    fi;
  od;
  ГрНФА1=ПересчетГрНФА1изМассиваГрНФАУсл;
end;



Проц ПриСчитывании;
ЗаполнитьУпрВыборГрНФА;
end;


Функ ПриПроверке: Логич;
  if ГрНФА<>ГрНФА1:ГрНФА=ГрНФА1;fi;
  Возврат true  ;
end;


Функ ГрНФАУсл_ПриПроверке(Поле: Строка; Итер: Целое; Знач: Логич): Логич;
--  ГрНФА1=ПересчетГрНФА1изМассиваГрНФАУсл;
  Возврат true ;
end;


Проц ПриОтмене;
 ЗаполнитьУпрВыборГрНФА;
end;


Проц ГрНФАУсл_ПриВыходе(Поле: Строка; Итер: Целое);
  ГрНФА1=ПересчетГрНФА1изМассиваГрНФАУсл;
end;
--    ClearVariable(st); -- собираем виды
--    ss='POS("'+trim(ГрНФА)+'",ГРНФА)>0';
--    wa=OpenWorkArea('РПО_ОКЕИ_ГРУППЫ','ВИД',ss);
--    ss='('+ss+')';
--    rs=records(wa);
--    if rs<1:Message('В картотеке РПО_ОКЕИ_ГРУППЫ нет ни одной группы!');^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;

Func ВзятьКодПоВиду(ВИД:String) :String;
var RO, num, кодгрп :Integer;
var res, tmp, кодвид :String;
 res="";
 if Trim(ВИД)="": ^""; fi;
 RO=OpenWorkArea("РПО_ОКЕИ_ГРУППЫ", "КОД", "ВИД='"+ВИД+"'");
 Try
   num=Records(RO);
   if num>0:
     tmp=GetFieldS(RO, num, "КОД");
     if Match(tmp, "??.???"):
       кодвид=SubStr(tmp, 1, 3);
       кодгрп=Int(SubStr(tmp, 4, 3))+1;
     else
       кодгрп=0;
     fi;
     if кодгрп<>0:
       tmp=Str(кодгрп);
       res=кодвид+RepStr("0", 3-Length(tmp))+tmp;
     fi;
   fi;
 Finally
   CloseWorkArea(RO);
 end;
 ^res;
end;

Функ ВИД_ПриОбзоре(Сек: Строка; Стр: Целое; Столб: Целое; Тек: Строка): Строка;
  var ss:s;
  var wa,rs,ii:i;
    ClearVariable(st); -- собираем виды
    wa=OpenWorkArea('РПО_ОКЕИ_ГРУППЫ','ВИД');
    rs=records(wa);
    if rs<1:Message('В картотеке РПО_ОКЕИ_ГРУППЫ нет ни одной группы!');^'';fi;
    for ii=1..rs do
     ss=trim(up(getfields(wa,ii,'ВИД')));
     if ss<>'':
       ДобавитьВмассив(st,true,false,ss);
     fi;
    od;
    CloseWorkArea(wa);
    ii=Alternate('Выбор вида:',st);
    if ii<1:^'';fi;
    ВИД=st[ii];
    КОД=ВзятьКодПоВиду(st[ii]);
  Шаблон.СкрытьРедактор(false);
  Возврат '' ;
end;


Конец
