Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Глобальные переменные в контексте сервера (управляемое приложение)          
Vofka Подменю пользователя
сообщение 14.08.12, 8:35
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13947
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Можно ли в 8.2 на сервере хранить ссылку на объект внешней компоненты?
Можно! Рассмотрим на примере...


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

И так...

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

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

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

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

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

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

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


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

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

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


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

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


Взято [необходимо зарегистрироваться для просмотра ссылки].

Спасибо сказали: logist,

pumbaE Подменю пользователя
сообщение 14.08.12, 11:11
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 113
Из: Запоріжжя
Спасибо сказали: 63 раз
Рейтинг: 0

ВременноеХранилище вроде живет около 20 минут, если к нему не обращаться, т.е. периодически надо получать из временного хранилища.


Signature
Эт я почему раньше злой был? Потому, что у меня снегопата не было!

logist Подменю пользователя
сообщение 14.08.12, 11:19
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(pumbaE @ 14.08.12, 12:11) *
ВременноеХранилище вроде живет около 20 минут

Ой, не пишите всякую ерунду.
Цитата
В случае, если передается УникальныйИдентификатор формы, то значение будет автоматически удалено после закрытия этой формы.
Если параметр не указан, помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 14.08.12, 11:24
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13947
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата(pumbaE @ 14.08.12, 12:11) *
ВременноеХранилище вроде живет около 20 минут, если к нему не обращаться


Цитата
ПоместитьВоВременноеХранилище(<Данные>, <Адрес>)
Параметры:

<Данные> (обязательный)
Тип: Произвольный.
Данные, которые необходимо поместить во временное хранилище.

<Адрес> (необязательный)

Тип: УникальныйИдентификатор; Строка.
Адрес во временном хранилище, по которому надо поместить данные. Или уникальный идентификатор формы, во временное хранилище которой, надо поместить данные и вернуть новый адрес.
В случае, если передается УникальныйИдентификатор формы, то значение будет автоматически удалено после закрытия этой формы.
Если параметр не указан, помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.


В варианте выше, ссылка на временное хранилище будет храниться в параметре сеанса. Если вы очистите данный параметр сеанса, то тогда по ходу "шеф, все пропало". А так должно храниться, пока "живой" параметр сеанса.

Сообщение отредактировал Vofka - 14.08.12, 11:24

Gazulo Подменю пользователя
сообщение 06.11.20, 13:36
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 273
Спасибо сказали: 46 раз
Рейтинг: 46

Vofka @ 14.08.12, 9:35 * ,
ПоместитьВоВременноеХранилище(ВК, Новый УникальныйИдентификатор) Для 8.3 не працює

Vofka Подменю пользователя
сообщение 06.11.20, 13:53
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13947
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Gazulo, спорить не буду, не знаю.

Gazulo Подменю пользователя
сообщение 06.11.20, 14:14
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 273
Спасибо сказали: 46 раз
Рейтинг: 46

Vofka @ Сегодня, 14:53 * ,
Может поскажете, как иначе можно хранить ссылку на объект внешней компоненты ??

Vofka Подменю пользователя
сообщение 06.11.20, 14:35
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13947
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Gazulo, а что именно у вас не работает?

Gazulo Подменю пользователя
сообщение 06.11.20, 14:38
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 273
Спасибо сказали: 46 раз
Рейтинг: 46

Vofka @ Сегодня, 15:35 * ,
Надо сделать глобальную ссылку на объект внешней компоненты.
В примере не работает ПоместитьВоВременноеХранилище(ВК, Новый УникальныйИдентификатор);
в 8.3 во временное хранилище можно помещать или сериализуемые значения, или двоичные данные (т.е. содержимое какого-либо файла). Ком-объект не является ни тем, ни другим, потому его поместить во временное хранилище не получится никоим образом

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.03.24, 11:11
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!