|
Доступность общей переменное при использовании "&НаСервере" | ☑ | ||
---|---|---|---|---|
0
Nikolasnik
18.12.13
✎
11:11
|
Пытаюсь начать разбираться в Восьмерке..
столкнулся с не пониманием, как правильно получить доступ к переменной "Проверка" в процедуре "ЗагрузитьНаСервере()" на форме две кнопки сначала обрабатывается процедура "Коннект()" потом по кнопке "два" - "Загрузить()" &НаСервере перем Проверка; &НаКлиенте Процедура Коннект(Команда) // Вставить содержимое обработчика. //Сообщить("Начал"); КоннектНаСервере(); КонецПроцедуры &НаКлиенте Процедура Загрузить(Команда) ЗагрузитьНаСервере(); КонецПроцедуры &НаСервере Процедура КоннектНаСервере() // Вставить содержимое обработчика. Проверка="Переменная доступна"; Сообщить(""+Проверка+" КоннектНаСервере()"); КонецПроцедуры &НаСервере Процедура ЗагрузитьНаСервере() // Вставить содержимое обработчика. Сообщить(""+Проверка+" ЗагрузитьНаСервере() "); КонецПроцедуры |
|||
1
Ненавижу 1С
гуру
18.12.13
✎
11:13
|
(0) сделать эту переменную в модуле объекта (фактически членом объекта), а не формы
|
|||
2
acsent
18.12.13
✎
11:14
|
На сервере не хранятся переменные. Каждый раз при переходе в клиент переменная будет сбрасываться
|
|||
3
Defender aka LINN
18.12.13
✎
11:14
|
(1) Нуну.
(0) Надо - делай реквизит формы. Но лучше перед этим как следует подумать. |
|||
4
Ненавижу 1С
гуру
18.12.13
✎
11:16
|
(3) что ну-ну?
|
|||
5
Nikolasnik
18.12.13
✎
11:29
|
(3) "(0) Надо - делай реквизит формы. Но лучше перед этим как следует подумать."
Дело в том что эта переменная должна быть ОЛЕ объектом 7.7 базы.. Подскажите как правильно организоваться что бы можно было сначала приконектится (присвоить переменной значение) а потом ёе использовать, при нажатии других кнопок.. Или придется постоянно коннектится -получить инфу - закрывать коннект.. и так постоянно? |
|||
6
Defender aka LINN
18.12.13
✎
11:32
|
(5) Можно в временное хранилище складывать. Будет жить ~20 минут.
(4) А то, бля, что ничего не выйдет © Самолетом, поездом, автомобилем |
|||
7
Darth Anyan
18.12.13
✎
11:33
|
(5) Если соединение должно жить ровно столько же, сколько форма - то его можно хранить во временном хранилище (см. в СП ПоместитьВоВременноеХранилище)
|
|||
8
Nikolasnik
18.12.13
✎
12:13
|
(7)С если передаю НЕ Оле объект - строку, работает с ОЛЕ объектом -ругается:
Форма.Форма.Форма(68)}: Ошибка при вызове метода контекста (ПоместитьВоВременноеХранилище) ОлеАдрес=ПоместитьВоВременноеХранилище(V7,ОлеАдрес); по причине: Переданное значение не может быть помещено во временное хранилище Привожу полный код: &НаСервере Функция ПодключитьБазу(ТекПутьКБазе="",ТекПользователь="",ТекПароль="") Экспорт V7=""; V7=Новый COMObject("V1CEnterprise.Application"); Попытка strApp = "/D"""+ТекПутьКБазе+""" /N"""+ТекПользователь+""" /P"""+ТекПароль+""""; Открыта=V7.Initialize(V7.RMTrade,strApp,"NO_SPLASH_SHOW"); Если Открыта Тогда ТекстБазы = "Подключена база " + ТекПутьКБазе + " под пользователем " + ТекПользователь; Сообщить(""+ТекстБазы+" Подключено"); Иначе ТекстБазы = "Ошибка подключения к базе " + ТекПутьКБазе + " под пользователем " + ТекПользователь; Сообщить(""+ТекстБазы+" Не получилось подключиться"); КонецЕсли; Исключение ТекстБазы = "Ошибка подключения к базе " + ТекПутьКБазе + " под пользователем " + ТекПользователь; Сообщить(""+ТекстБазы+" Не получилось подключиться"); КонецПопытки; Возврат V7; КонецФункции &НаКлиенте Процедура Коннект(Команда) // Вставить содержимое обработчика. КоннектНаСервере("D:\1c8\1С77\ростов_бухгалтерия_2012\ростов_бухгалтерия_2012\","Шаповалов_Николай","210876"); КонецПроцедуры &НаСервере Процедура КоннектНаСервере(ИмяКаталогаДанных,вхПользователь,вхПароль) // Вставить содержимое обработчика. //Сообщить("Начал"); V7=ПодключитьБазу(ИмяКаталогаДанных,вхПользователь,вхПароль); ОлеАдрес=ПоместитьВоВременноеХранилище(V7,ОлеАдрес); Сообщить(ОлеАдрес); КонецПроцедуры &НаКлиенте Процедура Загрузить(Команда) ЗагрузитьНаСервере(); КонецПроцедуры &НаСервере Процедура ЗагрузитьНаСервере() // Вставить содержимое обработчика. Сообщить(ОлеАдрес); V7=ПолучитьИзВременногоХранилища(ОлеАдрес); Для Номер=1 по V7.Метаданные.Константа() Цикл Идентификатор=V7.Метаданные.Константа(Номер).Идентификатор; Сообщить(Идентификатор); КонецЦикла; КонецПроцедуры Подскажите как правильно организовать работу с ОЛЕ объектом? |
|||
9
Defender aka LINN
18.12.13
✎
12:21
|
(8) Платформа какая? в 8.3, кажись, закрыли лазейку, сволочи
|
|||
10
Nikolasnik
18.12.13
✎
12:31
|
(9) 8.3 так точно!
Т.о. не получится подключиться пока форма открытая, и получать данные с ОЛЕ объекта.. Только остался такой алгоритм действий: подключился-> взял данные-> отключился.. если снова чего-то надо, опять подключаться? |
|||
11
Rovan
гуру
18.12.13
✎
12:35
|
(10) зачем тебе ОЛЕ на сервере ?
|
|||
12
Ork
18.12.13
✎
12:35
|
(10) Были рекомендации - сначала спросить за все, что нужно - потом уйти на сервер, там сделать ФсемФсе - результат выполнено/не выполнено вернуть на клиента.
|
|||
13
Salimbek
18.12.13
✎
12:43
|
(11) Поддерживаю вопрос. Типа а че там 1С-ка просто сидит, пусть еще и тяжелые штуки за собой потаскает?
|
|||
14
ДенисЧ
18.12.13
✎
12:47
|
(11) Оли разные нужны, оли разные важны. Например, соединение по оледб.
|
|||
15
Nikolasnik
18.12.13
✎
12:47
|
(11) (13) Да вот это наверное главный вопрос.. и ответ на него - НЕЗАЧЕМ!
сделал все через "&НаКлиенте".. ВСЕМ большое спасибо за помощь!! разобрался и узнал новое. СПАСИБО! |
|||
16
Salimbek
18.12.13
✎
12:49
|
(14) Тогда, наверное, весело будет, если серверный процесс упадет из-за падения или некорректного ответа этой оли
|
|||
17
ДенисЧ
18.12.13
✎
12:52
|
(16) А с чего бы ему падать, если обработку ошибок правильно сделать?
|
|||
18
Salimbek
18.12.13
✎
13:42
|
(17) Типа у ОЛЕ 1С 7.7 при отваливании сетевого интерфейса будет нормальное завершение работы? Или она напишет ошибку и будет так висеть бесконечно?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |