|
Как на C# вызвать ВнешнееСобытие в 1С из ВК | ☑ | ||
---|---|---|---|---|
0
oleg_prg
15.10.14
✎
01:16
|
Уважаемые форумчане - доброй ночи. Может кто силен в С#. Подскажите пожалуйста как вызвать ВнешнееСобытие из внешней компоненты
Вот код на C# using System; using System.Text; using System.Runtime.InteropServices; using System.Drawing; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Net; using System.Net.Mail; using System.Net.Mime; using System.Threading; namespace HowToComObjectFor1C { [Guid("F8C9E32B-82AD-40ef-856E-46319E7E7E65")] internal interface IMyClass { [DispId(1)] //4. описываем методы которые можно будет вызывать из вне string Test(string mymessage); } //5. определим интерфейс для COM-событий(GUID получаем и записываем с помощью утилиты guidgen.exe) [Guid("C619C891-DD3D-40e3-82A9-8B1987C9FC69"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] [ComVisible(true)] public interface IMyEvents { [DispId(0x60020001)] void Event1(); [DispId(0x60020002)] void Event2(); } //6. описываем класс реализующий интерфейсы(GUID получаем и записываем с помощью утилиты guidgen.exe) [Guid("1D52AF68-4EE3-4b2f-8CF7-D8F69F18A15A"), ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(IMyEvents))] public class MyClass : IMyClass //название нашего класса MyClass { public event EventHandler Event1; public event EventHandler Event2; protected virtual void OnEvent1() { if (Event1 != null) Event1(this, EventArgs.Empty); } protected virtual void OnEvent2() { if (Event2 != null) Event2(this, EventArgs.Empty); } public string Test(string mymessage) { OnEvent1(); OnEvent2(); return mymessage + "HELLO!"; } } } КОД В 1С &НаКлиенте Процедура ТестDLL(Команда) МойОбъект = Новый COMОбъект("HowToComObjectFor1C.MyClass"); Рез = МойОбъект.Test("Привет!"); Сообщить(Рез); КонецПроцедуры &НаКлиенте Процедура ВнешнееСобытие(Источник, Событие, Данные) Сообщить("ДА!!!"); //Но вот сюда ни как не попаду =( КонецПроцедуры Заранее спасибо! |
|||
1
Jaap Vduul
15.10.14
✎
01:42
|
Внешняя компонента это не просто COM-объект, в нём должны быть реализованы определённые интерфейсы - если интересно, см. "Технология создания внешних компонент" (1цэ правда рекомендует смотреть в сторону NativeAPI, а не COM).
В вашем случае, видимо, достаточно подключить обработчик события через ДобавитьОбработчик(), но к ВнешнемуСобытию это не относится и сигнатура вызова процедуры обработчика будет отличаться. |
|||
2
hhhh
15.10.14
✎
01:58
|
ну а вообще Процедура ВнешнееСобытие() привязана к событию на форме?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |