БланкСШаблоном "СПРАВОЧНИКИ [УНФА]";
Button1 :Object;
Button2 :Object;
Button3 :Object;
Button4 :Object;
Button5 :Object;
Button6 :Object;
Button7 :Object;
Button8 :Object;
Button9 :Object;
Button10 :Object;
Button11 :Object;

Proc ПриОткрытии(Откр:Logical);
var s:s;
 s=AsString(Button1.Caption);if AsString(Button1.Hint)='':Button1.Hint=s;fi;
 s=AsString(Button2.Caption);if AsString(Button2.Hint)='':Button2.Hint=s;fi;
 s=AsString(Button3.Caption);if AsString(Button3.Hint)='':Button3.Hint=s;fi;
 s=AsString(Button4.Caption);if AsString(Button4.Hint)='':Button4.Hint=s;fi;
 s=AsString(Button5.Caption);if AsString(Button5.Hint)='':Button5.Hint=s;fi;
 s=AsString(Button6.Caption);if AsString(Button6.Hint)='':Button6.Hint=s;fi;
 s=AsString(Button7.Caption);if AsString(Button7.Hint)='':Button7.Hint=s;fi;
 s=AsString(Button8.Caption);if AsString(Button8.Hint)='':Button8.Hint=s;fi;
 s=AsString(Button9.Caption);if AsString(Button9.Hint)='':Button9.Hint=s;fi;
 s=AsString(Button10.Caption);if AsString(Button10.Hint)='':Button10.Hint=s;fi;
 s=AsString(Button11.Caption);if AsString(Button11.Hint)='':Button11.Hint=s;fi;
--  if Not BlankExist('ИНФО.ОИ'):Button6.Enabled=false;fi;
end;
Proc ЗагрузкаСправочников(CardFileName:s;Спр:s;ПолеСпр:s);
 var CardName,cdf,stnf,ss:s;
 var nf,nftrue,p:i;
 if 1=Вопрос('Подтверждение загрузки...','Загрузка справочника '+CardFileName,'Пропустить;Загрузить',mtConfirmation):
    exit;
 fi;
 cdf=ПеремПБ('НФА')+'\cdf\';
 CardName=SubStr(CardFileName,1,Length(CardFileName)-4);
 if not ExistFile(cdf+CardFileName):
    trace('Справочник '+CardName+' не загружен - отсутствует файл:'+cdf+CardFileName);
    exit;
 fi;
 КопироватьФайл(cdf+CardFileName,ПеремПБ('CACHE')+'\'+CardFileName);
 if Спр<>'' и ПолеСпр<>'':
   nf    =ТекстФайлОткрытьНаЧтение(cdf+CardName+'.crd');
   nftrue=ТекстФайлСоздать(ПеремПБ('CACHE')+'\'+CardName+'.crd');
   ТекстФайлВКонец(nftrue);

   While ТекстФайлКонецФайла(nf) = Ложь do
    stnf=ТекстФайлПрочитатьСтроку(nf);
    ТекстФайлЗаписатьСтроку(nftrue,stnf);
    ss=trim(stnf);
    p=pos(ПолеСпр,ss);
    if p=1:-- нашли строку со значением поля для формирования признака
       ss=SubStr(ss,pos('=',ss)+1,Length(ss));-- нашли значение поля
       ss=Спр+'.'+ss; -- сформировали признак
       if Name_A(ss)<>' ': -- такой признак существует
         if CardName=КартотекаПризнака(ss): -- он описан в нашей картотеке
            ss=ЗаписьВстроку(ПризнакВЗапись(ss));
            ТекстФайлЗаписатьСтроку(nftrue,'UKEY='+SubStr(ss,2,Length(ss)-2));
         fi;
       fi;
    fi;
   od;
   ТекстФайлЗакрыть(nftrue);
   ТекстФайлЗакрыть(nf);
   try
    ImportCard(ieCRD,CardName,ПеремПБ('CACHE')+'\'+CardFileName,Ложь,Ложь,Ложь,Ложь,дублЗаменить,Ложь,Ложь,Ложь);
  --  ImportCard(ieCRD,CardName,cdf+CardFileName,Ложь,Ложь,Ложь,Ложь,дублЗаменить,Истина,Ложь,Ложь);
    trace('Справочник '+CardName+' загружен');
   except
    trace('Справочник '+CardName+' не загружен - картотека:'+CardName+' уже редактируется');
   end;
   DeleteFile(ПеремПБ('CACHE')+'\'+CardFileName);
   DeleteFile(ПеремПБ('CACHE')+'\'+CardName+'.crd');

--   OpenEditor(ПеремПБ('CACHE')+'\'+CardName+'.crd');
   exit;
 fi;

 try
--  ImportCard(ieCRD,CardName,cdf+CardFileName,Ложь,Ложь,Ложь,Ложь,дублЗаменить,Ложь,Ложь,Ложь);
  ImportCard(ieCRD,CardName,cdf+CardFileName,Ложь,Ложь,Ложь,Ложь,дублЗаменить,Истина,Ложь,Ложь);
  trace('Справочник '+CardName+' загружен');
 except
  trace('Справочник '+CardName+' не загружен - картотека:'+CardName+' уже редактируется');
 end;

end;
Proc Выбор_ПриНажатии(Кнопка:String);
var БРО_НФА:s;
var БРО_НФА_лок,ss:s;
var wa,rs1,rs2:i;
БРО_НФА    =ПеремПБ('НФА')+'\Картотеки\';
БРО_НФА_лок=ПеремПБ('LocalData')+'\Картотеки\';
--    |Кнопка='Button2':OpenCardFile(БРО_НФА+'ВыборОперацииДНФА.bro');
  if Кнопка='Button1':
      ss=БРО_НФА_лок+'ВыборНФА.bro';
      if ЕстьФайл(ss):OpenCardFile(ss);
       | true:OpenCardFile(БРО_НФА+'ВыборНФА.bro');
      fi;
    |Кнопка='Button2':
      OpenCardFile(РАБ.НФА.B01.ВзятьBROизКартотеки('РПО_РОСТ'));
    |Кнопка='Button3':
      OpenCardFile(РАБ.НФА.B01.ВзятьBROизКартотеки('РПО_РАЗМЕР'));
    |Кнопка='Button4':
      OpenCardFile(РАБ.НФА.B01.ВзятьBROизКартотеки('РПО_ПОСТАВКА'));
    |Кнопка='Button5':
      OpenCardFile(РАБ.НФА.B01.ВзятьBROизКартотеки('РПО_ОСНОВАНИЕ'));
    |Кнопка='Button6':
      OpenCardFile(РАБ.НФА.B01.ВзятьBROизКартотеки('РПО_ДОК'));
    |Кнопка='Button7':
      OpenCardFile(РАБ.НФА.B01.ВзятьBROизКартотеки('РПО_ВИДДОК'));
    |Кнопка='Button8':
      OpenCardFile(РАБ.НФА.B01.ВзятьBROизКартотеки('ВыборДНФА'));
    |Кнопка='Button9':
      OpenCardFile(РАБ.НФА.B01.ВзятьBROизКартотеки('РПО_МЕСТОНФА'));
    |Кнопка='Button10':
      if ВопрДаОтказ('Вы уверены в загрузке справочников?',mtWarning)=кмдОтказ:exit;fi;
      if ВопрДаОтказ('Вы уверены в загрузке справочников?^MЕсли справочники обновить - настройки по движению НФА^Mмогут быть заменены на стандартные^MПользовательские будут утеряны.',mtWarning)=кмдОтказ:exit;fi;
--      ЗагрузкаСправочников('РПО_ВИДДОК.cdf'    ,'ВИДДОК','ПРИЗНАК');
--      wa=openworkarea('РПО_ДНФА','','КОНВ<>1');
--       rs1=records(wa);
--      closeworkarea(wa);
--      if rs1=0:-- загрузка только в пустую картотеку! или в картотеку с операциями 25н
--        ЗагрузкаСправочников('РПО_ДНФА.cdf'      ,'ДНФА','ДНФА');
--       |true:trace('Справочник РПО_ДНФА пропушен, т.к. присутствуют операции изначально настроенные не на 25Н');
--      fi;
      ЗагрузкаСправочников('РПО_СТИЛЬ.cdf'     ,'','');
      ЗагрузкаСправочников('РПО_ОКЕИ.cdf'         ,'','');
      --ЗагрузкаСправочников('КЛАССИФИКНОРМА.cdf','','');
      ЗагрузкаСправочников('РПО_ОКОФ.cdf'          ,'','');
      --ЗагрузкаСправочников('ОКОФ02.cdf'        ,'','');
      Message('Загрузка справочников завершена');
    |Кнопка='Button11': OpenBlank('РАБ.НФА.INI',true);
  fi;
end;
Proc кнЗакрыть_ПриНажатии(Кнопка:String);
  close;
end;
var Select[]:s;
Проц Кнопка1_ПриНажатии(Отправитель: Строка);
  var z,t,y,p:i;
  var crd,an,filtr,file,ss:s;
  ClearVariable(Select);
  if not Раб.НФА.B03.Загрузить_СтрМассив_ИзФайла('УПРАВЛЕНИЕ.НФА.СПРАВОЧНИКИ.SELECT','',1,'СПИСОК_АНАЛИТИКИ_ТББ.txt'):
     exit;
  fi;
  z=LengthOfArray(Select);
  for t=1..z do Select[t]=trim(Select[t]);od;
  y=0;
  for t=1..z do
    y=y+1;
    if y=5 or t=z:y=1;-- считали партию
       file=an;
       Раб.НФА.B03.ExportCardFiltr(ieCrd, crd, 'CDF\'+file, filtr, False, False, False, False, False, False, False);
       if y=1:an=Select[t];fi;
--       trace(file);
--     exit;
     | true:
       if y=1:an=Select[t];
        | y=2:p=pos('#',Select[t]);crd=SubStr(Select[t],1,p-1);filtr=trim(SubStr(Select[t],p+1,255));
        | y=3:
        | y=4:if Name_A(an)<>' ':Select[t]=Name_A(an);fi;
       fi;
    fi;
  od;
  if Раб.НФА.B03.Выгрузить_СтрМассив_Вфайл('УПРАВЛЕНИЕ.НФА.СПРАВОЧНИКИ.SELECT','',1,z,'CDF\СПИСОК_АНАЛИТИКИ_ТББ.txt',false):
     message('Ok');
   | true:message('е-мое...',тсОшибка);
  fi;
  beep;
end;

Конец
