Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 июл 2022, 11:01

Не ловится CallBack от OLE-объекта.

Автор Naxer, 27 сен 2017, 23:49

0 Пользователей и 1 гость просматривают эту тему.

Naxer

Добрый День !
1С-Предприятие77

Не подскажете ли:
Каким образом получить от собственного подключенного OLE-объекта событие (CallBack) ?

Имеем некий объект в DLL-ке, успешно его зарегистровали в RegSvr32, успешно его подключили.
Даже Методы/Свойства успешно получает/отдаёт.
А вот CallBack никак не может выдать ???


Гл.Модуль:
Процедура Odin(A,B,C) Экспорт
          Сообщить("Событие Odin !");
КонецПроцедуры

Процедура _Odin(A,B,C) Экспорт
          Сообщить("Событие _Odin !");
КонецПроцедуры

Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Экспорт
          Сообщить("ОбработкаВнешнегоСобытия !");
КонецПроцедуры

Процедура ПриНачалеРаботыСистемы();
Obj = СоздатьОбъект("BTZ.Vt");                                //Успешно создан
          Сообщить("*СоздатьОбъект *" + Obj + "*");
Obj.Inner("QQ");//Успешно выводит MsgBox с надписью "QQ"

Obj.Ev("A", "B", "C"); //Успешно выводит MsgBox с надписью "Событие Ev: A B C"
                       //Однако не попадает ни "Odin", ни в "_Odin"
                       //ни в ОбработкаВнешнегособытия

Подумал:
Ну вроде мой объект "поздно" связывается, на тестовом проекте тоже не даёт события.
Добавил метод в объект:

Obj.onEvent(Модуль, "_Odin"); //Задаёт Event в объекте, Модуль - это ссылка                                         
                              //на Объект где лежит обработчик Эвента
                              //то бишь должен быть ссылкой на ГлобальныйМодуль
                              //Odin или _Odin - имя обработчика эвента
Obj.EvEx( ); //Выдаёт сначала успешно MsgBox
             //Однако опять не хочет попадать в Odin или _Odin или в ОбработкаВнешнегоСобытия

Понятно, без ссылки не будет работать.
А как в 1С получить ссылку на объект (например на ГлобальныйМодуль) ???
Типа как Me в других языках.
Мож какие ЭтотОбъект или This, или ещё чо-нибудь имеется ?

Танцы с бубном вокруг
ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Экспорт
Тоже ни к чему не привели.
Да и что эти "Источник, Событие, Данные" хоть обозначают ?
Не нашёл толкового разъяснения.
Или эта обработка только для "специальных" объектов типа "ВнешняяКомпонента"
предназначена ?

И зачем надо было придумывать какие-то расширенные компоненты, если обычные
OLE-объекты и так прекрасно "вплавляются" ?
На тестовом проекте (VB) всё прекрасно CallBack-ается.

Заранее спасибо...

Теги:
Рейтинг@Mail.ru Rambler's Top100

Поиск