|
Как использовать временное хранилище в фоновом задании | ☑ | ||
---|---|---|---|---|
0
ЭтожЯ
25.09.15
✎
09:10
|
Необходимо Получить переменную COMсоединения в фоновом задании, и в дальнейшем использовать ее на клиенте.При записи документа например. Посоветовали использовать временное хранилище.Но что-то не получается.
Сделала следующее: Создала Параметр Сеанса: Процедура УстановитьЗначениеПараметраСеанса(Знач ИмяПараметра, УстановленныеПараметры) // Если в данном вызове УстановкаПараметровСеанса параметр ИмяПараметра уже // был установлен - возврат. Если УстановленныеПараметры.Найти(ИмяПараметра) <> Неопределено Тогда Возврат; КонецЕсли; Если ИмяПараметра = "ЗначениеВременногоХранилища" Тогда Адрес=УстановитьАдресВременногоХранилища(); ПараметрыСеанса.ЗначениеВременногоХранилища =Адрес; УстановленныеПараметры.Добавить(ИмяПараметра); КонецЕсли; КонецПроцедуры Функция УстановитьАдресВременногоХранилища() Адрес=ПоместитьВоВременноеХранилище(, Новый УникальныйИдентификатор()); Возврат Адрес; КонецФункции При открытии формы списка документа вызываю фоновое задание: МассивПараметров=Новый Массив(); МассивПараметров.Добавить(ПараметрыСеанса.ЗначениеВременногоХранилища); ФоновыеЗадания.Выполнить("МодульФоновыхЗаданий.УстановитьCOMСоединение",МассивПараметров); Фоновое задание: Процедура УстановитьCOMСоединение(Адрес) Экспорт Если ЗначениеЗаполнено(Константы.ПутьКБазеАвтовесов.Получить()) Тогда //глV21Object = Неопределено; ПутьКБазе = Константы.ПутьКБазеАвтовесов.Получить(); СтруктураПодключения = МодульРегламентныхЗаданий.ПолучитьСтруктуруПодключения_Авто(ПутьКБазе) ; глV21Object = МодульРегламентныхЗаданий.ПодключитсяКИнформационнойБазе2(СтруктураПодключения); Если глV21Object = Неопределено Тогда # Если Клиент Тогда Сообщить( "Ошибка подключения к базе данных!!!", СтатусСообщения.Важное ) ; #КонецЕсли //Возврат Неопределено ; Иначе //Возврат глV21Object; #Если Клиент Тогда Сообщить( ""+ТекущаяДата() + " - Подключение к конфигурации "+глV21Object.Метаданные.Synonym+" выполнено успешно!" ) ; #КонецЕсли КонецЕсли; //Значение глV21Object=СОМобъект ПоместитьВоВременноеХранилище(глV21Object, Адрес); КонецЕсли; КонецПроцедуры При извлечении данных ПриЗаписи документа переменная =неопределенно Попытка глV21Object=ПолучитьИзВременногохранилища(ПараметрыСеанса.ЗначениеВременногоХранилища); Исключение КонецПопытки; Как правильно извлечь и поместить данные во временное хранилище при использовании фонового задания?Вроде все делаю по синтаксис помощнику. |
|||
1
Fragster
гуру
25.09.15
✎
09:14
|
> COMсоединения в фоновом задании, и в дальнейшем использовать ее на клиенте
не выйдет |
|||
2
ЭтожЯ
25.09.15
✎
09:15
|
что не выйдет?
|
|||
3
ЭтожЯ
25.09.15
✎
09:16
|
Примечание:
Также позволяет поместить данные из фонового задания в родительский сеанс. Для этого следует в родительском сеансе поместить во временное хранилище пустое значение, передав идентификатор формы. Затем полученный адрес передать в фоновое задание через параметры фонового задания. Далее, если этот адрес использовать в параметре <Адрес>, то результат будет скопирован в сеанс, из которого было запущено фоновое задание. |
|||
4
Апош
25.09.15
✎
09:16
|
(2) закрой глаза и представь себя фоновым заданием...
|
|||
5
ЭтожЯ
25.09.15
✎
09:17
|
объясните объективно почему?
|
|||
6
Fragster
гуру
25.09.15
✎
09:18
|
(5) можно использовать только сериализуемые значения
|
|||
7
ЭтожЯ
25.09.15
✎
09:18
|
Синтаксис помощник говорит о другом, возможно это я не правильно делаю
|
|||
8
ЭтожЯ
25.09.15
✎
09:23
|
как быть -то с ком-соединением... уже неделю бьюсь
|
|||
9
aleks_default
25.09.15
✎
09:42
|
само com-соединение на клиент передать нельзя, можно только какое-либо сериализуемое значение из этого соединения
|
|||
10
Fragster
гуру
25.09.15
✎
10:32
|
![]() |
|||
11
Провинциальный 1сник
25.09.15
✎
10:34
|
(9) Ну это логично. Ведь что такое ком-соединение? Это по сути запущенная где-то программа со своим контекстом выполнения. Если она запущена на сервере в фоновом задании, то откуда её контекст возникнет на клиенте?
|
|||
12
ЭтожЯ
25.09.15
✎
10:41
|
(10):))
|
|||
13
ЭтожЯ
25.09.15
✎
10:45
|
Хорошо, я так поняла, что это в принципе невозможно?
|
|||
14
ДенисЧ
25.09.15
✎
10:47
|
(13) Понятливая...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |