------------------------------------------------

БЛАНКСШАБЛОНОМ "Центр управления";

var DateBuild:Date=01.07.2005; 2-- Дата сборки

var txtInfo:String='ООО "ТБ.Бюджет" '+
                   '107076, г. Москва, ул.Матросская Тишина, д.23,корп.1 офис 67 '+
                   'Тел: (495) 720-67-81, (499) 268-29-91'+chr(13)+
                   'E-mail: info@tb-b.ru   Сайт: www.tb-b.ru'+Chr(13)+
                    ВЕРСИЯ.Сборка_+" "+ВЕРСИЯ.ДатаСборки_;



var Buf[]:S;
var FirstRun :Logical;
ButtonAct:Object;
Timer1 :Object;

Label2   :Object;
Bevel1   :Object; Bevel2   :Object;
Button01 :Object; Button12 :Object;
Button02 :Object; Button13 :Object;
Button03 :Object; Button14 :Object;
Button04 :Object; Button15 :Object;
Button05 :Object; Button16 :Object;
Button06 :Object; Button17 :Object;
Button07 :Object; Button18 :Object;
Button08 :Object; Button19 :Object;
Button09 :Object; Button20 :Object;
Button10 :Object; Button21 :Object;
Button11 :Object; Button22 :Object;
SysInfo  :Object; Button23 :Object;


proc ВыборСтд_ПриНажатии(Кнопка:String);
  if Кнопка='Button01':OpenBlank('УПРАВЛЕНИЕ.СПРАВОЧНИКИ' ,false);
    |Кнопка='Button02':OpenBlank('УПРАВЛЕНИЕ.БАНК'        ,false);
    |Кнопка='Button03':OpenBlank('УПРАВЛЕНИЕ.КАССА'       ,false);
    |Кнопка='Button04':OpenBlank('УПРАВЛЕНИЕ.ЛИМИТЫ'      ,false);
    |Кнопка='Button05':OpenBlank('УПРАВЛЕНИЕ.ЦЕНТРСНАБ'   ,false);
    |Кнопка='Button06':OpenBlank('УПРАВЛЕНИЕ.ОТЧЕТЫ'      ,false);
    |Кнопка='Button07':OpenBlank('УПРАВЛЕНИЕ.ПРОЧИЕ'      ,false);
    |Кнопка='button08':OpenBlank('УПРАВЛЕНИЕ.ДОГОВОР'     ,false);
    |Кнопка='Button09':OpenBlank('УПРАВЛЕНИЕ.'            ,false);
    |Кнопка='Button10':OpenBlank('ВЕРСИЯ'                 ,false);
    |Кнопка='Button11':OpenBlank('УПРАВЛЕНИЕ.СЕРВИС'      ,false);
  fi;
end;

proc ПроверкаСтандартногоКомплекта;
  if Not BlankExist('УПРАВЛЕНИЕ.СПРАВОЧНИКИ') :Button01.enabled=false; fi;
  if Not BlankExist('УПРАВЛЕНИЕ.БАНК')        :Button02.enabled=false; fi;
  if Not BlankExist('УПРАВЛЕНИЕ.КАССА')       :Button03.enabled=false; fi;
  if Not BlankExist('УПРАВЛЕНИЕ.ЛИМИТЫ')      :Button04.enabled=false; fi;
  if Not BlankExist('УПРАВЛЕНИЕ.ЦЕНТРСНАБ')   :Button05.enabled=false; fi;
  if Not BlankExist('УПРАВЛЕНИЕ.ОТЧЕТЫ')      :Button06.enabled=false; fi;
  if Not BlankExist('УПРАВЛЕНИЕ.ПРОЧИЕ')      :Button07.enabled=false; fi;
  if Not BlankExist('УПРАВЛЕНИЕ.ДОГОВОР')     :Button08.enabled=false; fi;
  if Not BlankExist('УПРАВЛЕНИЕ.')            :Button09.enabled=false; fi;
  if Not BlankExist('ВЕРСИЯ')                 :Button10.enabled=false; fi;
  if Not BlankExist('УПРАВЛЕНИЕ.СЕРВИС')      :Button11.enabled=false; fi;
end;

func ВзятьНазваниеКнопки(Кнопка:String):String;
var res:String;
  if Кнопка='Button01': res=AsString(Button01.Caption);
    |Кнопка='Button02': res=AsString(Button02.Caption);
    |Кнопка='Button03': res=AsString(Button03.Caption);
    |Кнопка='Button04': res=AsString(Button04.Caption);
    |Кнопка='Button05': res=AsString(Button05.Caption);
    |Кнопка='Button06': res=AsString(Button06.Caption);
    |Кнопка='Button07': res=AsString(Button07.Caption);
    |Кнопка='Button08': res=AsString(Button08.Caption);
    |Кнопка='Button09': res=AsString(Button09.Caption);
    |Кнопка='Button10': res=AsString(Button10.Caption);
    |Кнопка='Button11': res=AsString(Button11.Caption);
    |Кнопка='Button12': res=AsString(Button12.Caption);
    |Кнопка='Button13': res=AsString(Button13.Caption);
    |Кнопка='Button14': res=AsString(Button14.Caption);
    |Кнопка='Button15': res=AsString(Button15.Caption);
    |Кнопка='Button16': res=AsString(Button16.Caption);
    |Кнопка='Button17': res=AsString(Button17.Caption);
    |Кнопка='Button18': res=AsString(Button18.Caption);
    |Кнопка='Button19': res=AsString(Button19.Caption);
    |Кнопка='Button20': res=AsString(Button20.Caption);
    |Кнопка='Button21': res=AsString(Button21.Caption);
    |Кнопка='Button22': res=AsString(Button22.Caption);
    |Кнопка='Button23': res=AsString(Button23.Caption);
  fi;
  ^res;
end;

Proc Выбор_ПриНажатии(Кнопка:String); -- выбор прикладных систем
 OpenBlank(Buf[int(SubStr(Кнопка,7,2))],False);
end;

КолКнопок:Integer; -- Количество кнопок прикладных систем

proc ДобавитьКнопку(Надпись:String;Хинт:String;ИмяБланка:String);
-- добавляет кнопку прикладной системы
  if BlankExist(ИмяБланка):
    КолКнопок=Колкнопок+1;
    if КолКнопок=01: Button12.Caption=Надпись; Button12.Hint=Хинт;Buf[12]=ИмяБланка;
      |КолКнопок=02: Button13.Caption=Надпись; Button13.Hint=Хинт;Buf[13]=ИмяБланка;
      |КолКнопок=03: Button14.Caption=Надпись; Button14.Hint=Хинт;Buf[14]=ИмяБланка;
      |КолКнопок=04: Button15.Caption=Надпись; Button15.Hint=Хинт;Buf[15]=ИмяБланка;
      |КолКнопок=05: Button16.Caption=Надпись; Button16.Hint=Хинт;Buf[16]=ИмяБланка;
      |КолКнопок=06: Button17.Caption=Надпись; Button17.Hint=Хинт;Buf[17]=ИмяБланка;
      |КолКнопок=07: Button18.Caption=Надпись; Button18.Hint=Хинт;Buf[18]=ИмяБланка;
      |КолКнопок=08: Button19.Caption=Надпись; Button19.Hint=Хинт;Buf[19]=ИмяБланка;
      |КолКнопок=09: Button20.Caption=Надпись; Button20.Hint=Хинт;Buf[20]=ИмяБланка;
      |КолКнопок=10: Button21.Caption=Надпись; Button21.Hint=Хинт;Buf[21]=ИмяБланка;
      |КолКнопок=11: Button22.Caption=Надпись; Button22.Hint=Хинт;Buf[22]=ИмяБланка;
      |КолКнопок=12: Button23.Caption=Надпись; Button23.Hint=Хинт;Buf[23]=ИмяБланка;
    fi;
  fi;
end;

Proc УбратьЛишниеКнопки;
-- убирает кнопки прикладных систем с названием "..."
  if AsString(Button12.Caption)='...': Button12.Visible=false; fi;
  if AsString(Button13.Caption)='...': Button13.Visible=false; fi;
  if AsString(Button14.Caption)='...': Button14.Visible=false; fi;
  if AsString(Button15.Caption)='...': Button15.Visible=false; fi;
  if AsString(Button16.Caption)='...': Button16.Visible=false; fi;
  if AsString(Button17.Caption)='...': Button17.Visible=false; fi;
  if AsString(Button18.Caption)='...': Button18.Visible=false; fi;
  if AsString(Button19.Caption)='...': Button19.Visible=false; fi;
  if AsString(Button20.Caption)='...': Button20.Visible=false; fi;
  if AsString(Button21.Caption)='...': Button21.Visible=false; fi;
  if AsString(Button22.Caption)='...': Button22.Visible=false; fi;
  if AsString(Button23.Caption)='...': Button23.Visible=false; fi;
end;
------------------------------------------------------------------------------------------------
------------------------------- блок синхронизации STD_RPO -------------------------------------
--должен быть описан КАТАЛОГИ STD_RPO_NEW=C:\TB69P\Wrk\#control\2012_162н\разработка2012\Std_Rpo157Н_2012_000
--должен существовать файл REFRESH_TBB.bln в папке Бланки0
REFRESH_TBB_V:s=['']; -- запоминаем последний GUID
func ЕстьВозможностьОбновитьSTD_RPO:l;
var STD_RPO_NEW:S;
 var V:s;
 Try
  STD_RPO_NEW=trim(PlanVar('STD_RPO_NEW'));
 Except
  STD_RPO_NEW="";
 end;
 if Length(STD_RPO_NEW)<1:^false;fi; -- проверка описания пути к оригинальному STD_RPO
 if not BlankExist('REFRESH_TBB'):^false;fi; -- проверка существования бланка REFRESH_TBB
 v=trim(up(GetVariableS('REFRESH_TBB.V')));
 if V='':^false;fi;-- не нуждается в обновлении
 if trim(up(REFRESH_TBB_V))=V:^false;fi;-- не нуждается в обновлении, т.к. уже обновлено до текущей версии
 ^true;
end;

func Обновить_REFRESH_TBB:s;-- возвращает GUID который прописали в REFRESH_TBB.V ; переписывает бланк REFRESH_TBB
var nf:i;
var guid_v:s;
guid_v=GetGUID;
if not BlankExist('REFRESH_TBB'):^'';fi;
try
nf=TextFileCreate(BlankFileName('REFRESH_TBB'));
TextFileGotoEnd(nf);
TextFileWriteLn(nf, 'BLANK REFRESH_TBB = "Контроль синхронизации STD_RPO", MODAL, SIZE=48,8;');
TextFileWriteLn(nf, " Контрольное число      : <V__________________ @V:S='"+guid_v+"';      ");
TextFileWriteLn(nf, " Инициатор синхронизации: <U________ @U:S=' ';                         ");
TextFileWriteLn(nf, " Дата инициации         : <D________ @D:D=01.01.100;                   ");
TextFileWriteLn(nf, " Время инициации        : #T_____    @T=0.0;                           ");
TextFileWriteLn(nf, "END                                                                    ");
TextFileClose(nf);
except
guid_v='';
end;
^guid_v;
end;

Proc Обновить_STD_RPO;--
var ar:l;
  if ЕстьВозможностьОбновитьSTD_RPO:
     if EnqOkCancel('Требуется синхронизация с локальными бланками - продолжить?',mtConfirmation )=кмдВерно:
        ar=autorefresh;
        if ar:ToggleAutorefresh(false);fi;
        REFRESH_TBB_V=trim(up(GetVariableS('REFRESH_TBB.V')));
        if ar:ToggleAutorefresh(true);fi;
        Message('Локальные бланки синхронизированы!');
     fi;
  fi;
end;
------------------------------- блок синхронизации STD_RPO -------------------------------------
------------------------------------------------------------------------------------------------

proc ЗаполнениеПрикладныхСистем;
  var i,ii:I;
  var s1,s2,s3:S;
  КолКнопок=0;
  if LicenseCheck(144)<>0:
    ДобавитьКнопку('Учет нефинансовых активов...','Позволяет выбирать бланки прикладной системы "Учет нефинансовых активов"','УПРАВЛЕНИЕ.УНФА');
   | true:
     if SchemaName(AliasName('РПО_БЮДЖ_КЛАСС'))='':
         ДобавитьКнопку('Учет НФА [не активирован]','Позволяет выбирать некоторые бланки прикладной системы "Учет нефинансовых активов"','УПРАВЛЕНИЕ.УНФА');
      --   ДобавитьКнопку('Активировать Учет НФА...','Позволяет активировать бланки подсистемы "Учет нефинансовых активов"','Раб.Вспом.Лиц144');
      | true:
         ДобавитьКнопку('Учет нефинансовых активов...','Позволяет выбирать бланки прикладной системы "Учет нефинансовых активов"','УПРАВЛЕНИЕ.УНФА');
      --   ДобавитьКнопку('Активировать Учет НФА...','Позволяет активировать бланки подсистемы "Учет нефинансовых активов"','Раб.Вспом.Лиц144');
     fi;
  fi;
  ДобавитьКнопку('Учет РБС...','Позволяет выбирать бланки прикладной системы "Учет РБС"','УПРАВЛЕНИЕ.РБС2009');
  ДобавитьКнопку('Учет НДС...','Позволяет выбирать бланки прикладной системы "Учет НДС"','УПРАВЛЕНИЕ.НДС');
  ДобавитьКнопку('Учет подотчетных сумм...','Позволяет выбирать бланки прикладной системы "Учет подотчетных сумм"','УПРАВЛЕНИЕ.ПОДОТЧЕТ_ЦУП');
  ДобавитьКнопку('Учет ФО...','Позволяет выбирать бланки прикладной системы "Учет Финансового органа"','УПРАВЛЕНИЕ.ФО_ЦУП');
  ДобавитьКнопку('Учет родительской платы...','Позволяет выбирать бланки прикладной системы "Учет родительской платы"','детсад.центруправленияродительскойплатой');
  if BlankExist('РАСШИРЕНИЕ.ЦЕНТР_УПРАВЛЕНИЯ'):
     if VariableExists('РАСШИРЕНИЕ.ЦЕНТР_УПРАВЛЕНИЯ.ЧислоКнопок'):
        ii = getVariableI('РАСШИРЕНИЕ.ЦЕНТР_УПРАВЛЕНИЯ.ЧислоКнопок');
        for i = 1 .. ii do
          try
            s1 = getVariableS('РАСШИРЕНИЕ.ЦЕНТР_УПРАВЛЕНИЯ.Кнопка'+Str(i));
            s2 = getVariableS('РАСШИРЕНИЕ.ЦЕНТР_УПРАВЛЕНИЯ.Хинт'+Str(i));
            s3 = getVariableS('РАСШИРЕНИЕ.ЦЕНТР_УПРАВЛЕНИЯ.Бланк'+Str(i));
            ДобавитьКнопку(s1,s2,s3);
          except
          end;
        od;
     fi;
  fi;
  УбратьЛишниеКнопки;
  if КолКнопок=0:Bevel2.Visible=false;fi;
end;

proc ОткрытиеИнформационнгоБланка;
-- Открывает бланк для "Примера"; 
 --if Раб.Сис.ProgramVersion<>Раб.Сис.VerDemo:
   --if Not РАБ.ВСПОМБЛАНКИ.ПРИМЕР_ИНФО.НеОткрывать:
   --  if ЕстьРевизитыПримера:
   --    OpenBlank('РАБ.ВСПОМБЛАНКИ.ПРИМЕР_ИНФО');
   --  fi;
   --fi;
 --fi;
end;

proc Инициализация;
  OpenBlank('РАБ.ВСПОМ.ИНИЦИАЛИЗАЦИЯ',True);
  SysInfo.Hint=txtInfo;
end;

Proc SysInfo_ПриНажатии(Кнопка: String);
  if LicenseCheck(143)=0:OpenBlank('РАБ.ВСПОМ.ЛИЦ143');
   | true:Message(txtInfo);
  fi;
end;

proc Выход_ПриНажатии(Кнопка:String);
  CloseApp;
end;

proc ПриОткрытии(Отк:Logical);
var Учет:S;
  Обновить_STD_RPO;
  Учет=PlanVar("Учет");
  Учет=if(Учет="162н":"БЮДЖЕТНЫЙ УЧЕТ-162Н"|Учет="174н":"БУХГАЛТЕРСКИЙ УЧЕТ-174Н"|Учет="183н":"БУХГАЛТЕРСКИЙ УЧЕТ-183Н"|True:"УЧЕТ 157Н");
  Label2.Caption=txtInfo;
  if LicenseCheck(143)=0:
     SysInfo.Caption=Учет+'[не активирован]';
    |true:
     SysInfo.Caption=Учет;
     ButtonAct.Visible=false;
  fi;
  ClearVariable(Buf);
  ПроверкаСтандартногоКомплекта;
  ЗаполнениеПрикладныхСистем;
  ОткрытиеИнформационнгоБланка;
  Инициализация;
  if BlankExist('РАСШИРЕНИЕ.ЦЕНТР_УПРАВЛЕНИЯ'):
     if ProcExists('РАСШИРЕНИЕ.ЦЕНТР_УПРАВЛЕНИЯ.Инит2'):
        ExecuteProc('РАСШИРЕНИЕ.ЦЕНТР_УПРАВЛЕНИЯ.Инит2');
     fi;
  fi;
  Timer1.Active=True;
end;


Proc OnTimer(Sender: String);
 if not FirstRun: ClearTrace(True); FirstRun=True; fi;
 Timer1.Active=False;
end;


КОНЕЦ