[8.2] Глобальные переменные в контексте сервера (управляемое приложение)
Можно ли в 8.2 на сервере хранить ссылку на объект внешней компоненты?
Можно! Рассмотрим на примере…
Эта статья — отчет на вопрос в http://infostart.ru/forum/forum14/topic29689/
- Описание
- Подробнее
Описание
Как оказалось все очень просто.
И так…
1. Добавляем в параметры сеанса строковый параметр, скажем длиной 255 символов.
(для хранения ссылки на объект и возможности вызова из любого серверного метода)
К примеру, с именем «ВК».
2. В общий серверный модуль добавляем инициализацию компоненты (в моем примере он привилегированный и имеет имя «Тестовый»):
Функция ИнитВК() Экспорт
ИмяВК = «Душелов.ExcelEditor1C»;
Попытка
ВК = Новый COMОбъект(ИмяВК);
Исключение
Сообщить(«Ошибка создания объекта внешней компоненты: » + ИмяВК);
Возврат Ложь;
КонецПопытки;
ПараметрыСеанса.ВК = ПоместитьВоВременноеХранилище(ВК, Новый УникальныйИдентификатор);
Возврат Истина;
КонецФункции
и тестовую функцию
Процедура ТестВК() Экспорт
Если ПараметрыСеанса.ВК = Неопределено Тогда
Возврат;
КонецЕсли;
ВК = ПолучитьИзВременногоХранилища(ПараметрыСеанса.ВК);
Сообщить(ВК.ПолучитьКоличествоЛистов());
КонецПроцедуры
И все 🙂 Из любого места сервера и клиента объект внешней компоненты доступен!
Процедура ПриНачалеРаботыСистемы()
Тестовый.ИнитВК();
Тестовый.ТестВК();
КонецПроцедуры
В файлах статьи добавил тестовую базу, на которой можно проверить вызов метода ком-объекта из «глобальной переменной».

