Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 сен 2024, 00:28

Вызов COMОбъекта на клиенте и сервере

Автор Golickoff, 22 июн 2015, 08:29

0 Пользователей и 1 гость просматривают эту тему.

Golickoff

Всем привет.
Я столкнулся с новой проблемой при работе с COMОбъектом.

Есть форма, при открытии которой создаётся COMОбъект.
&НаКлиенте
Процедура ПриОткрытии(Отказ)

бла бла бла
СоздатьДрайвер();

КонецПроцедуры

&НаСервере
Процедура СоздатьДрайвер()
obj = Новый COMОбъект("COMRFID.RFID");
СтруктураДрайвера = Новый Структура("Драйвер", obj); //Начитавшись умных статей, я помещаю его в структуру чтобы не вызывать каждый раз заново
ПараметрыСеанса.Obj = ПоместитьВоВременноеХранилище(СтруктураДрайвера, Новый УникальныйИдентификатор()); //По советам тех же статей, структура помещается в параметры сеанса
КонецПроцедуры

Всё здорово, COMОбъект в структуре и его можно не вызывать.
Теперь нам необходимо обратиться к этому COMОбъекту и я жму на кнопку:
&НаКлиенте
Процедура ДобавитьМетки(Команда)

Obj = ВК();
Obj = Obj.Драйвер;
obj.StartReading();
ДобавитьОбработчик obj.TagReading, OK;
Счетчик = 0;

КонецПроцедуры

//Т.к. обратиться к параметрам сеанса с клиента мы не можем, создаём функцию на сервере

&НаСервере
Функция ВК()

obj = ПолучитьИзВременногоХранилища(ПараметрыСеанса.Obj);
Возврат obj;

КонецФункции



Функция отрабатывает и возвращает пустое значение, ибо COMОбъект между клиентом и сервером не передаётся.
Подскажите, как мне передать COMОбъект.
___________________________________________________________________________________________________________
Пробовал по-другому:

&НаКлиенте
Процедура ДобавитьМетки(Команда)

Obj = ВК();

КонецПроцедуры

&НаСервере
Функция ВК()

obj = Новый COMОбъект("COMRFID.RFID");
obj.StartReading();
ДобавитьОбработчик obj.TagReading, OK; //Отработала
Счетчик = 0; //Отработала

КонецФункции //Отработала и вернулась в процедуру ДобавитьМетки, вместо того чтобы отправиться в процедуру ОК

&НаСервере
Процедура ОК()

мОбъект = РеквизитФормыВЗначение("Объект");
мОбъект.Проверка(Объект.Ссылка);

КонецПроцедуры


Обратите внимание на комментарии. Есть два варианта решения одной и той же задачи, оба не работают. Мне нужно либо передать компоненту с сервера на клиент в первом варианте, либо заставить работать обработчик во втором варианте. Помогите, пожалуйста.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

LexaK

зарегистрируйте ваш КОМ объект на машине с клиентом, переведите режим работы Приложения в Толстый клиент создавайте и используйте КОМ объект на клиенте.
Сам тоже сталкивался несколько раз что на тонком клиенте не работает КОМ объект внешнего соединения, когда СП пишет что должен работать.
если помогло нажмите: Спасибо!

Golickoff

Цитата: LexaK от 22 июн 2015, 09:02
...переведите режим работы Приложения в Толстый клиент...
Спасибо, всё работает!
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск