|
Работа с внешним приложением. |
☑ |
0
Azgerd
25.04.16
✎
09:18
|
8.3 Здравствуйте, столкнулся со следующей проблемой: есть внешнее приложение, кот. считывает вес с весового терминала. Сначала пытался запустить это приложение командой формы:
VarMWP = Новый ComОбъект("mwp.IS.mwp");
Вес = VarMWP.getwes(1);
Однако в этом случае приложение не успевает отработать и не передает корректно вес, кроме того при таком запуске не возможно отследить стабилизирован вес весов или нет. Необходимо, чтобы внешнее приложение не закрывалось после отработки команды. Решил инициализировать приложение ПриСозданииНаСервере() и поместить его во временное хранилище:
VarMWP = Новый ComОбъект("mwp.IS.mwp");
Структура = Новый Структура("Объект", VarMWP);
ХранилищеКомпоненты = ПоместитьВоВременноеХранилище(Структура, Новый УникальныйИдентификатор);
Однако в команде формы (при нажатии на кнопку) я уже не вижу переменной ХранилищеКомпоненты и не могу получить объект. Как можно обратиться к объекту из временного хранилища?
|
|
1
Остап Сулейманович
25.04.16
✎
09:34
|
(0) "Решил инициализировать приложение ПриСозданииНаСервере()"
Зачем весы на сервере?
Вот это вот счастье VarMWP = Новый ComОбъект("mwp.IS.mwp"); нужно выполнять на клиенте.
|
|
2
Azgerd
25.04.16
✎
09:42
|
(1) так я в начале и запускал VarMWP = Новый ComОбъект("mwp.IS.mwp"); на клиенте (нажатием кнопки), но он же потом убивается, после нажатия, а мне нужно чтобы он работал и я мог постоянно к VarMWP обращаться, причем не запуская приложение несколько раз...
|
|
3
Остап Сулейманович
25.04.16
✎
09:43
|
(2) "но он же потом убивается" Сделай так, что бы не убивался.
Сделай переменную VarMWP глобальной и не дергай ее каждый раз.
|
|
4
Azgerd
25.04.16
✎
10:01
|
А разве бывают в 8.3 "глобальные переменные"? Вроде говорят что в 8.3 функции глобальных переменных берут на себя либо параметры сеанса либо временное хранилище, вот я и пытаюсь использовать временное хранилище, однако как потом это объект изъять из этого хранилища - здесь я как-то завис... Может есть возможность поместить эту переменную (VarMWP) в реквизит формы? Тогда какой тип выбрать этому реквизиту?
|
|
5
ДенисЧ
25.04.16
✎
10:03
|
Временное хранилище с ком-объектом дохнет через пару минут
|
|
6
ДенисЧ
25.04.16
✎
10:03
|
Ищи в приложении метод типа подождатьСтабилизации
|
|
7
Azgerd
25.04.16
✎
10:09
|
Может можно как-то поместить ком-объект в реквизит формы?
|
|
8
Wern
25.04.16
✎
10:13
|
(4) Ну вообще то глобальные переменные очень даже есть в 8.3.
Все почти так же как и раньше
&НаКлиенте
Перем МояПеременная;
&НаКлиенте
Процедура Команда1(Команда)
МояПеременная=11;
КонецПроцедуры
|
|
9
Остап Сулейманович
25.04.16
✎
10:14
|
(8) "Экспорт" забыл.
|
|
10
Wern
25.04.16
✎
10:17
|
(9) ну если он нужен, можно и с экспортом.
|
|
11
Остап Сулейманович
25.04.16
✎
10:21
|
(10) Ну как бы без Экспорт переменная доживет до завершения кода модуля и умрет. С Экспортом - будет жить как дедушка Ленин - вечно ))).
ЗЫ. Относится к коду модуля приложения.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший