|
Значение не является значением объектного типа (CreateObject) | ☑ | ||
---|---|---|---|---|
0
Огурцы
02.04.12
✎
09:22
|
В обычном интерфейсе все работает без проблем. Пытаюсь переписать обработку под управляемый интерфейс. Пишет ошибку.
вот код: &НаСервере Перем БазаОЛЕ; &НаКлиенте Процедура ОткрытьСоединение(Команда) СоединениеНаСервере(); КонецПроцедуры &НаСервере Процедура СоединениеНаСервере() БазаОЛЕ = Новый COMОбъект("V77S.Application"); Открыта = БазаОЛЕ.Initialize(БазаОЛЕ.RMTrade, "", ""); Если Открыта = Ложь Тогда Сообщить("------- безутешно -------"); Возврат; Иначе Сообщить("------- Соединение прошло успешно -------"); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ЗагрузитьНоменклатуру(Команда) Номенклатура(); КонецПроцедуры &НаСервере Процедура Номенклатура() //вот здесь выдает ошибку НомОЛЕ = БазаОЛЕ.CreateObject("Справочник.Номенклатура"); КонецПроцедуры как я понимаю он не видит переменную БазаОЛЕ |
|||
1
Рэйв
02.04.12
✎
09:23
|
Вполне возможно Номенклатура() вызывается до СоединениеНаСервере();
|
|||
2
Огурцы
02.04.12
✎
09:24
|
нет
|
|||
3
Defender aka LINN
02.04.12
✎
09:25
|
(0) На сервере никаких "постоянных" переменных нет.
|
|||
4
Рэйв
02.04.12
✎
09:27
|
&НаСервере
Процедура Номенклатура() БазаОЛЕ = Новый COMОбъект("V77S.Application"); Открыта = БазаОЛЕ.Initialize(БазаОЛЕ.RMTrade, "", ""); Если Открыта = Ложь Тогда Возврат; КонецЕсли; НомОЛЕ = БазаОЛЕ.CreateObject("Справочник.Номенклатура"); КонецПроцедуры |
|||
5
Огурцы
02.04.12
✎
09:28
|
(4)да, так работает я уже пробовал. Но мне нужно подключиться к базе всего один раз и потом уже нажимать на кнопки и загружать по очереди номенклатуру, цены и т.д.
|
|||
6
ДенисЧ
02.04.12
✎
09:29
|
(4) храни соединение в хранилище...
|
|||
7
Огурцы
02.04.12
✎
09:29
|
(6)почему именно так?
|
|||
8
Огурцы
02.04.12
✎
09:40
|
(6)
ХранилищеЗначения (ValueStorage) На основании значения Синтаксис: Новый ХранилищеЗначения(<Значение>, <АлгоритмСжатияДанных>) Параметры: <Значение> (обязательный) Тип: Произвольный. Значение, которое должно быть помещено в хранилище. <АлгоритмСжатияДанных> (необязательный) Тип: СжатиеДанных. Задает степень сжатия данных. Описание: Создает объект ХранилищеЗначения и помещает в него заданное значение. Конструктор доступен только в режиме запуска "Толстый клиент", на сервере и внешнем соединении. |
|||
9
Огурцы
02.04.12
✎
09:41
|
Конструктор доступен только в режиме запуска "Толстый клиент", на сервере и внешнем соединении.
|
|||
10
Огурцы
02.04.12
✎
09:46
|
пишет что БазаОЛЕ не может быть помещен в хранилище поскольку не может быть сериализован
|
|||
11
lxs
02.04.12
✎
09:52
|
(6) эт что-то новое))
|
|||
12
Огурцы
02.04.12
✎
09:53
|
так все же есть возможность сохранить в переменной и передать указатель на базу БазаОЛЕ
|
|||
13
Огурцы
02.04.12
✎
09:53
|
?
|
|||
14
Maxus43
02.04.12
✎
09:55
|
очевидных путей нет... каждый раз нажимая кнопку - надо цепляться по новой
|
|||
15
Defender aka LINN
02.04.12
✎
12:44
|
Во временном хранилище надо хранить, а не в ХранилищеЗначения
|
|||
16
lxs
02.04.12
✎
12:45
|
(13) Меняй логику. Управляемые формы не для таких извращений придумывали. Постоянно держать COM глупо, даже с точки зрения производительности.
|
|||
17
lxs
02.04.12
✎
12:45
|
+(16) даже тут дело в принципе не в УФ.
|
|||
18
Фауст
02.04.12
✎
12:54
|
Данные получай с сервера на клиент, соединение создадвай на клиенте и работай с ним тоже на клиенте.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |