Каталог решений - [8.2] Глобальные переменные в контексте сервера (управляемое приложение)

[8.2] Глобальные переменные в контексте сервера (управляемое приложение)

[8.2] Глобальные переменные в контексте сервера (управляемое приложение)

В наличии

Можно ли в 8.2 на сервере хранить ссылку на объект внешней компоненты?
Можно! Рассмотрим на примере…
Эта статья — отчет на вопрос в http://infostart.ru/forum/forum14/topic29689/

Категория:

Описание

Как оказалось все очень просто.

И так…

1. Добавляем в параметры сеанса строковый параметр, скажем длиной 255 символов.

(для хранения ссылки на объект и возможности вызова из любого серверного метода)

К примеру, с именем «ВК».

2. В общий серверный модуль добавляем инициализацию компоненты (в моем примере он привилегированный и имеет имя «Тестовый»):

Функция ИнитВК() Экспорт
      
ИмяВК = «Душелов.ExcelEditor1C»;

       Попытка
             ВК = Новый COMОбъект(ИмяВК);
       Исключение
            
Сообщить(«Ошибка создания объекта внешней компоненты: » + ИмяВК);
             Возврат Ложь;
       КонецПопытки;

       ПараметрыСеанса.ВК = ПоместитьВоВременноеХранилище(ВК, Новый УникальныйИдентификатор);
      Возврат Истина;
КонецФункции

и тестовую функцию

Процедура ТестВК() Экспорт
       Если
ПараметрыСеанса.ВК = Неопределено Тогда
             Возврат;
       КонецЕсли;

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

И все 🙂 Из любого места сервера и клиента объект внешней компоненты доступен!

Процедура ПриНачалеРаботыСистемы()
      
Тестовый.ИнитВК();
      
Тестовый.ТестВК();
КонецПроцедуры

В файлах статьи добавил тестовую базу, на которой можно проверить вызов метода ком-объекта из «глобальной переменной».

has been added to your cart:
Оформление заказа