Можно ли в 8.2 на сервере хранить ссылку на объект внешней компоненты?
Можно! Рассмотрим на примере...
Как оказалось все очень просто.
И так...
1. Добавляем в параметры сеанса строковый параметр, скажем длиной 255 символов.
(для хранения ссылки на объект и возможности вызова из любого серверного метода)
К примеру, с именем "ВК".
2. В общий серверный модуль добавляем инициализацию компоненты (в моем примере он привилегированный и имеет имя "Тестовый"):
Функция ИнитВК() Экспорт
ИмяВК = "Душелов.ExcelEditor1C";
Попытка
ВК = Новый COMОбъект(ИмяВК);
Исключение
Сообщить("Ошибка создания объекта внешней компоненты: " + ИмяВК);
Возврат Ложь;
КонецПопытки;
ПараметрыСеанса.ВК = ПоместитьВоВременноеХранилище(ВК, Новый УникальныйИдентификатор);
Возврат Истина;
КонецФункции
Процедура ТестВК() Экспорт
Если ПараметрыСеанса.ВК = Неопределено Тогда
Возврат;
КонецЕсли;
ВК = ПолучитьИзВременногоХранилища(ПараметрыСеанса.ВК);
Сообщить(ВК.ПолучитьКоличествоЛистов());
КонецПроцедуры
Процедура ПриНачалеРаботыСистемы()
Тестовый.ИнитВК();
Тестовый.ТестВК();
КонецПроцедуры
ВременноеХранилище вроде живет около 20 минут, если к нему не обращаться, т.е. периодически надо получать из временного хранилища.
Vofka @ 14.08.12, 9:35
,
ПоместитьВоВременноеХранилище(ВК, Новый УникальныйИдентификатор) Для 8.3 не працює
Gazulo, спорить не буду, не знаю.
Vofka @ Сегодня, 14:53
,
Может поскажете, как иначе можно хранить ссылку на объект внешней компоненты ??
Gazulo, а что именно у вас не работает?
Vofka @ Сегодня, 15:35
,
Надо сделать глобальную ссылку на объект внешней компоненты.
В примере не работает ПоместитьВоВременноеХранилище(ВК, Новый УникальныйИдентификатор);
в 8.3 во временное хранилище можно помещать или сериализуемые значения, или двоичные данные (т.е. содержимое какого-либо файла). Ком-объект не является ни тем, ни другим, потому его поместить во временное хранилище не получится никоим образом
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua