|
Управляемые формы. Глобальная переменная ссылка на COM объект. | ☑ | ||
---|---|---|---|---|
0
bvb
12.09.17
✎
12:28
|
в УФ в процедуре на сервере создается
COM подключение к базе db = Новый COMобъект("V83.ComConnector"); V8 = db.Connect(СтрокаИнициализации); нужно сохранить V8 глобально чтобы в других серверных процедурах не переинициализировать COM соединение. Пытался сделать реквизит обработки ОбработкаV8 произвольного типа но при попытке инициализации : &НаСервере РеквизитФормыВЗначение("Объект").ОбработкаV8 = V8; РеквизитФормыВЗначение("Объект").ОбработкаV8 остается НЕОПРЕДЕЛЕНО что посоветуете ? |
|||
1
Господин ПЖ
12.09.17
✎
12:30
|
реквизит обработки у каждой формы "свой"
|
|||
2
Heckfy
12.09.17
✎
12:33
|
Замути константу. :)
|
|||
3
butterbean
12.09.17
✎
12:33
|
хранить на клиенте
|
|||
4
bvb
12.09.17
✎
12:35
|
(1) Да нет форма одна
При попытке создать реквизит ОбработкаV8 на форме произвольного типа пишет {ВнешняяОбработка.ЗагрузкаДокументов.Форма.Форма.Форма(122)}: Ошибка при установке значения атрибута контекста (ОбработкаV8) ОбработкаV8 = V8; по причине: Тип "COMОбъект" не может использоваться в данных формы |
|||
5
bvb
12.09.17
✎
12:36
|
(3) Дык в том и трабл : как его передать на клиент
|
|||
6
АнализДанных
12.09.17
✎
12:37
|
(5) А если, через адрес временного хранилища?
|
|||
7
Heckfy
12.09.17
✎
12:38
|
(5) COM объект на клиенте - зло!!!
|
|||
8
Рэйв
12.09.17
✎
12:41
|
(0) может поможет
v8: Хранение COM объекта между вызовами |
|||
9
Рэйв
12.09.17
✎
12:42
|
||||
10
RomaH
naïve
12.09.17
✎
12:43
|
+(8)
"Сопсно все украдено до нас: http://catalog.mista.ru/public/62649/ Цитирую автора: Платформа 8.2 простым штатным способом позволяет реализовывать глобальные переменые на сервере. Достигается это использованием модулей с признаком "Повторное использование возвращаемых значений" установленным в значение "На время сеанса" ком объект тоже кешируется." |
|||
11
bvb
12.09.17
✎
13:01
|
ЭтаФорма.ОбработкаV8 = ПоместитьВоВременноеХранилище(V8,ЭтаФорма.УникальныйИдентификатор);
не работает Переданное значение не может быть помещено во временное хранилище |
|||
12
bvb
12.09.17
✎
13:17
|
Посмотрел
Книга знаний: Хранение COM Объектов на Сервере ТонкогоКлиента Обработчик=Новый COMОбъект("v82.Application"); Обработчик.Connect("File=""D:\database\8.2\Пустая"";usr=""robot""; pwd=""z12cf57bdjk43"""); Обработчик.visible=false; ПараметрыСеанса.АдресCOMОбъекта=ПоместитьВоВременноеХранилище(Обработчик,Новый УникальныйИдентификатор()); Нельзя данный объект поместиь во временное хранилище |
|||
13
1c_July
12.09.17
✎
15:35
|
для варианта, когда все серверные вызываются из других серверных, а начинается все с одного вызова с клиента и туда возвращается только результат - передавали параметром между процедурами.
|
|||
14
bvb
12.09.17
✎
16:15
|
(13) Процедуры никак не связаны между собой
|
|||
15
bvb
12.09.17
✎
16:19
|
Резюмирую :
1. поместить ПоместитьВоВременноеХранилище для COMОбъект не работает Поэтому http://catalog.mista.ru/public/62410/ - не актуально 2. Взлетело http://catalog.mista.ru/public/62649/ Минусы - время жизни переменной 20 минут - Хранить ее надо именно в соответствии - Пришлось обгадить типовую конфу дополнительным модулем с одной процедурой |
|||
16
bvb
12.09.17
✎
16:20
|
||||
17
spiller26
12.09.17
✎
16:43
|
Не прокатит. Com-объект сам по себе это приблуда Виндовая.
подключился > обработал > отпустил. |
|||
18
Fragster
гуру
12.09.17
✎
16:48
|
в модуле формы в начале:
&НаКлиенте Перем V8; и далее что хотите с ней делайте. |
|||
19
Fragster
гуру
12.09.17
✎
16:48
|
на сервере не взлетит
|
|||
20
Fragster
гуру
12.09.17
✎
16:49
|
ну а совсем по уму - выкинуть ком и сделать через HTTPСоединение
|
|||
21
bvb
12.09.17
✎
17:01
|
(17) Ну прокатило же
Я использую COM соединение в несвязанных между собой серверных вызовах |
|||
22
bvb
12.09.17
✎
17:13
|
(18)
&НаКлиенте Перем V8; Не взлетает при попытке пердать его в серверный вызов возникает ошибка Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Нельзя COMОбъект передавать между клиентом и сервером |
|||
23
Fragster
гуру
12.09.17
✎
17:25
|
(22) конечно возникает. работай с ним на клиенте. особо упоротые (упорные) открывают ком коннектор к своей же базе для того, чтобы иметь возможность выполнять запросы на клиенте.
|
|||
24
h-sp
12.09.17
✎
17:37
|
(12) ПараметрыСеанса.АдресCOMОбъекта=ПоместитьВоВременноеХранилище(Новый Структура("Обработчик", Обработчик) ,Новый УникальныйИдентификатор());
|
|||
25
bvb
13.09.17
✎
15:57
|
(25) Ага спасибо
Запихал его в реквизит обработки (строка 255) Объект.V8 = ПоместитьВоВременноеХранилище(Новый Структура("V8", V8) ,Новый УникальныйИдентификатор()); получаю и работаю V8 = ПолучитьИзВременногоХранилища(Объект.V8).V8; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |