Вход | Регистрация

1С:Предприятие ::

Метки: 

1c & COM

Я
   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 вообще не срабатывает.

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

И да. ПередЗаписью() отрабатывает, как ни удивительно, ПЕРЕД ПриЗаписи()
   Alex76_s
 
2 - 29.12.12 - 13:06
Хм, может я не правильно понял пример.
Процедура ПриЗаписи() Экспорт
  МойОбъект = Новый COMОбъект("testEV.evproc");
  МойОбъект.Proc;
КонецПроцедуры

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

МойОбъект.Proc();
   Alex76_s
 
4 - 29.12.12 - 15:56
Да, наука сильная вещь)))


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует