Имя: Пароль:
1C
1С v8
1c & COM
0 Alex76_s
 
29.12.12
02:13
В одной старой теме v8: Отловить событие нашел пример реализации СОМ объекта на delphi (автор Rie). К сожадению не смог в delphi 7 повторить реализацию.

В 1с на справочник вешаю

Процедура ПриЗаписи() Экспорт
   сообщить("ура!!!");    
   МойОбъект = Новый COMОбъект("testEV.evproc");
   ДобавитьОбработчик ЭтотОбъект.ПередЗаписью, МойОбъект.Proc;
КонецПроцедуры

в delphi создал Automation Object, в библиотеке типов добавил интерфейсу IEvProc метод Proc c 2 параметрами Source и Refuse

procedure TEvProc.Proc(const Source: IDispatch; Refuse: WordBool);
begin
 MessageBox(0,'!!!','',0);
end;

В 1с при добавлении новой записи, запись происходит успешно, вызывается СОМ объект и все!!! MessageBox не появляется, процедура Proc вообще не срабатывает.

Помогите, что я делаю не так?
1 Ursus maritimus
 
29.12.12
05:03
Все не так.
ДобавитьОбработчик обработчик предназначен для отлова события в объекте и обработке в 1С, а не наоборот.
Если тебе надо выполнить метод, так и выполняй его в явном виде. В процедуре ПередЗаписью() пиши
МойОбъект.Proc;

И да. ПередЗаписью() отрабатывает, как ни удивительно, ПЕРЕД ПриЗаписи()
2 Alex76_s
 
29.12.12
13:06
Хм, может я не правильно понял пример.

Процедура ПриЗаписи() Экспорт
 МойОбъект = Новый COMОбъект("testEV.evproc");
 МойОбъект.Proc;
КонецПроцедуры

если пишу так, ругается Неопознанный оператор МойОбъект.Proc<<?>>;
3 hhhh
 
29.12.12
14:12
(2) ну может по научному попробовать?

МойОбъект.Proc();
4 Alex76_s
 
29.12.12
15:56
Да, наука сильная вещь)))
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой