Компонента регистрируется, срабатывает внешнее событие (в 1с 8 ВнешнееСобытие(Источник, Событие, Данные), Данные = "Тест") )
Вроде все нормально, но при поступлении данных с COM вызывается процедура void Read(object sender, SerialDataReceivedEventArgs e) и 1С вылитает по ошибке.
Убрал строку "asyncEvent.ExternalEvent("AddIn", "COM", strData );" из процедуры Read, все работает не вылетает.
Не могу понять как правильно нужно вызывать ExternalEvent чтобы 1С не вылетала.
Пробовал создавать статическую переменную типа IAsyncEvent _asyncEvent;,
в методе "OpenPort" присваивал ей _asyncEvent = asyncEvent;, а в методе Read вызывал как _asyncEvent.ExternalEvent("AddIn", "COM", strData );, но все равно 1с вылетает по ошибке.
Может я что то делаю не так, подскажите где бок, или дайте пример кода как правильно организовать процесс генерации внешний событий для 1с при каждом поступлении данных с COM порта.
Та же ситуация, при вызове внешнего события из иной функции все работает нормально, как только пытаюсь вызвать внешнее событие в функции по приходу данных из ком порта, в этой ситуации 1С вылетает. При отладке компоненты на момент вызова внешнего события вылетает исключительная ошибка "System.Reflection.TargetException: Объект не соответствует конечному типу".
Что интересно, на одном ПК все работает без ошибок, на другом ПК эта же компонента ведет себя вот так, хотя версия NET, 1С платформы ,винды одинакова на этих двух ПК.
Кто нибудь сталкивался с этой ситуацией?
(5) Для примера я убрал вообще передачу каких либо параметров. Ниже код в котором функция testEvent2() генерирует событие в 1С. В 1С событие привязывается через ДобавитьОбработчик. Так вот в начале открытия порта функция testEvent2() и в 1С событие без проблем срабатывает. Как только я отправляю данные в Порт и с него приходит ответ, снова вызываю эту же функцию уже по приходу данных, и в этот момент 1С просто вылетает.