powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Работа с внешней компонентой
2 сообщений из 2, страница 1 из 1
Работа с внешней компонентой
    #38354701
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Сразу скажу, что я не программист 1С...

Есть своя написанная компонента на C#. Она работает с еще одной длл, которая в свою очередь работает с устройством.
У длл устройства есть событие(event) считывания данных.
Компонента реализует интерфейс IInitDone (как по всем мануалам).

В 1С компонента подключается нормально (ПодключитьВнешнююКомпоненту(...) + ВК = Новый COMОбъект(...)). Подключается она на форме обработки.
И проблемы появились при отключении компоненты. А именно, при закрытии этой формы. События с устройства продолжают генерироваться (в коде C# стоит MessageBox).
И. При повторном открытии формы, события в коде длл продолжают генерироваться (месседжбоксы идут), но события в 1С (AsyncEvent.ExternalEvent / событие внешней компоненты) уже не появляются.

В C# коде как только не пытался освобождать ресурсы, отписывать от событий, все напрасно.

В обработке закрытия формы 1С пишу :
Код: c#
1.
2.
ВК.Done();
ВК = 0;




Далее сделал просто еще один метод в своем коде ВК, который отписывается от событий. Если вызывающий код написан на C#, то все нормально. В 1С, когда закрываешь вызывающую форму события(кода C#) продолжают генерироваться. Перестают они генерироваться только при полном закрытии 1С.

ради интереса написал деструктор своей компоненты с месседжбоксом. При закрытии 1С деструктор вызывается 1-3 раза(!). Метод Done - 1-2 раза. И количество вызовов как то несистемно...
Далее, при открытии новой формы в 1С, в диспетчере задач добавляется новый поток у 1С и при закрытии формы, он не убивается, а продолжает висеть.

И видимо из всего этого, 1С создает еще какой то фоновый процесс при открытии формы, который продолжает висеть... и вопрос, как его убивать? или... как правильно отключать внешнюю компоненту при закрытии формы?
...
Рейтинг: 0 / 0
Работа с внешней компонентой
    #38354785
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вынес логику подключения к устройству из метода Init в отдельный метод. Теперь события от устройства работают как надо. (то есть таки 1С создает пару одинаковых процессов работы с ВК... )
Осталась одна проблема. После Закрытия формы 1С и последующего ее открытия событие от ВК не ловится больше обработчиком формы... Хотя внутри самой ВК оно гененрируется 100%
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Работа с внешней компонентой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]