Главная страница
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.016 c
14-92730
Anatoly Podgoretsky
2002-10-09 08:45
2002.10.28
Именинники 9 октября


3-92398
Maik
2002-10-08 14:04
2002.10.28
Работа c Cursors в IB


1-92595
Slexx
2002-10-17 08:20
2002.10.28
интерфейс


7-92761
mmb
2002-08-16 12:16
2002.10.28
Точный таймер (1-2 мсек)


6-92631
Руль
2002-08-27 01:41
2002.10.28
Снова вопрос по извлечению текста из сайта