Имя: Пароль:
1C
1С v8
Работа с внешним приложением.
,
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) Ну как бы без Экспорт переменная доживет до завершения кода модуля и умрет. С Экспортом - будет жить как дедушка Ленин - вечно ))).
ЗЫ. Относится к коду модуля приложения.