Адрес этой странички: http://d1cv8.narod.ru/top_003/d1cv8_20070828_001/d1cv8_20070828_001.htm
Дата: 28.08.2007
Интернет-приложение
к книге
"Delphi и 1С:Предприятие.Программирование информационного обмена"

Глава 3. Подключение к 1С.
Создание
Delphi-компонента, реализующего функционал подключения к 1Cv7.
Расширение функционала.
Список зарегистрированных баз данных 1
Cv7.

 

В главе 3 книги (стр. 19-25) был рассмотрен пример подключения из внешнего приложения к системе 1Cv7 в режиме OLE Automation.
В предыдущей статье был рассмотрен процесс создания
Delphi-компонента (TConnectTo1Cv7 ), реализующего соответствующий функционал.
В контексте книги были подробно рассмотрены вопросы, связанные с формированием списка зарегистрированных баз данных 1
Cv7 (глава 12)
и списка активных Пользователей
1Cv7 (глава 13).

Логично было бы расширить функционал нашего компонента  TConnectTo1Cv7 таким образом, чтобы с его помощью можно было бы решать и эти задачи.

Начнем со списка баз данных системы
1Cv7. Подробно об этом см. стр. 553-557 книги (кто желает - может почитать).
Здесь мы рассмотрим только "практику" ...


Запустим
Delphi и откроем пакет sp1Cv7_OLE.dpk.
По двойному щелчку мышкой на строке ConnectTo1Cv7
.pas откроем модуль компонента TConnectTo1Cv7 .

Сделаем следующие изменения (красный цвет)  в соотв.разделах  объявления класса компонента :

type
    TConnectTo1Cv7 = class(TComponent)
    private
        { Prvate declarations }
        ...
        ...
       
//Ключ системного регистра, где хранится список
        //баз данных системы 1Cv7
        fKeyNameInReg : string;

     protected
        { Protected declarations }
        ...
        ...
       
//метод, "отвечающий" за изменение значения fKeyNameInReg
        procedure mSetKeyNameInReg(Value : string);

    
publiс
        { Public declarations }
        ...
        ...
        //Метод, считывающий зарегистрированный список баз данных системы 1Cv7
        function Load_ListDB_1Cv7_from_Registry(ListDB : TStrings; YesDetect_1Cv7md : boolean) : integer;

    
published
        { Published declarations }
        ...
        ...
       
//Ключ системного регистра, где хранится список баз данных системы 1Cv7
        property KeyNameInReg: string read fKeyNameInReg write mSetKeyNameInReg;
    end;

 

Изменения в конструкторе класса :

constructor TConnectTo1Cv7.Create(AOwner: TComponent);
//Конструктор компонента
begin
    //Сначала (перед любыми нашими "действиями") вызываем "дух предков" :)
    inherited Create(AOwner);

    fKeyNameInReg:=Trim(fKeyNameInReg);
    if length(fKeyNameInReg)<=0 then fKeyNameInReg:='Software\1C\1CV7\7.7\Titles';

    ...
    ...

end;
 


Определим новый метод :

procedure TConnectTo1Cv7.mSetKeyNameInReg(Value : string);
//Установить значение свойства KeyNameInReg
begin
    fKeyNameInReg:=Trim(Value);
    if length(fKeyNameInReg)<=0 then fKeyNameInReg:='Software\1C\1CV7\7.7\Titles';
end;
 

В модуле sp_Lib_Delphi определим новую функцию (детальные разъяснения - см. глава 12 книги) :

 

Для компонента TConnectTo1Cv7 определим соотв.новый метод :

function TConnectTo1Cv7.Load_ListDB_1Cv7_from_Registry(ListDB : TStrings;
                                                        YesDetect_1Cv7md : boolean) : integer;
//Метод, считывающий зарегистрированный список баз данных системы 1Cv7
begin
    fKeyNameInReg:=Trim(fKeyNameInReg);
    if length(fKeyNameInReg)<=0 then fKeyNameInReg:='Software\1C\1CV7\7.7\Titles';
    //Вызываем соотв. процедуру из модуля sp_Lib_Delphi
    Result:=Load_ListDB_from_Registry(fKeyNameInReg,ListDB,YesDetect_1Cv7md);
end;


Скомпилируем и протестируем новую версию компонента.
 

Создадим новый Delphi-проект (рис.1).


Рис.1  Форма проекта и компонент TConnectTo1Cv7 на форме

 

Скомпилируем наш проект (для тестирования компонента) и запустим на выполнение.
Результат тестирования нового свойства : KeyNameInReg и метода Load_ListDB_1Cv7_from_Registry
представлен на рис.2.


т
Рис.2  Результат тестирования метода
 
Load_ListDB_1Cv7_from_Registry

 

Естественно, что у каждого Пользователя (на его компьютере) список зарегистрированных баз данных может отличаться от того, что на рис.2 ...

 

Следует отметить, что здесь приведена лишь "практика".
"Подробности" - см. соотв.главу книги.

Исходные тексты новой версии компонента можно скачать здесь (14 кб).
Исходные тексты "тестировщика" компонента можно скачать здесь (7 кб)

 

Продолжение - расширение функционала компонента (список активных  Пользователей базы данных 1Cv7).

 

 


(c) Сергей Попов, респ.Коми, г.Усинск, 2007  Письмецо написать ...


Hosted by uCoz