Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.28;
Скачать: CL | DM;

Вниз

dispinterface в 1С Ole Сервере   Найти похожие ветки 

 
Serginio   (2002-10-17 16:01) [0]

Хотя тема 1С на Delphi и Использование dispinterface в 1С Ole Сервере абсолютно отличны друг от друга, но в итоге по синтаксису их использования очень сходны.
Наверняка это уже реализовано, кто может, поделитесь Ссылкой
Всем известно, что любой объект Автоматизации (IDispatch) использует 2 метода
1. GetIDsOfNames
2. Invoke
Первый возвращает dispid по названию метода, а второй по известному dispid вызывает нужный метод.

Все наименование методов и атрибутов объектов 1С нам известны и не составляет большого труда где-то ручками, а где и из метаданных создать объекты dispinterface.
Напримек
Doc:=obj.EvalExpr("СоздатьОбъект("Документ."+name+"")");
и вызываешь
NameRefs[0]:=PWideChar(WideString("НомерДок");
IDispatch(doc).GetIDsOfNames(GUID_NULL, @NameRefs,1,
LOCALE_SYSTEM_DEFAULT, @DID);
в DID получаем его dispid

В итоге получаем описание всех объектов.
Единственный минус dispinterface это невозможность наследования и для объектов имеющие одинаковые свойства и методы лучше разбивать на разные объекты а использовать их в паре с единой ссылкой на объект.
Скорость после применения dispinterface возрастает по сравнению с применение объектами Ole в 3-4 раза и по сравнению с 1С объектами в 1.5-2 раза.
Кроме увеличения скорости мы получаем псевдо ООП модель с вызовом методов через точку и строгий синтаксический контроль, последнее очень важно т.к. многие знают, что ошибку можно получить и через год.


 
PalP   (2002-10-18 10:46) [1]

Не знаю, то ли я пишу, но есть возможность написания внешних компоненнт для 1С. В действительности, это dll, к которой можно обратится из 1С. Я сейчас этим и занимаюсь, но знаний, чтобы ответить на Ваш вопрос у меня не хватает (либо вопрос сформулирован нечетко). Возможно, поможет ссылка hare.ru



Страницы: 1 вся ветка

Текущий архив: 2002.10.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.033 c
4-92824
Voyager TM
2002-09-13 18:28
2002.10.28
Не подскажет кто, каким образом в область Caption добавить свою


3-92347
Sergant
2002-10-06 05:00
2002.10.28
Не могу создать/добавить индекс в Firebird!!!


1-92534
zsv
2002-10-16 09:14
2002.10.28
Не могу изменить значение параметра в реестре!!!


1-92481
AL2002
2002-10-17 18:22
2002.10.28
Есть ли в Дельфи стандартный компонент...


3-92360
{bas}
2002-10-07 16:08
2002.10.28
чистый SQL