Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) OLE сервер - обновление данных на форме в realtime (число прочтений - 4146 )
petvv
YaBB Newbies
*
Отсутствует



Сообщений: 7
Зарегистрирован: 21. Февраля 2008
OLE сервер - обновление данных на форме в realtime
21. Февраля 2008 :: 06:29
Печать  
Проблема такая: есть весовой терминал (весы 40 т.) есть OLE сервер, На форме есть объект Текст (Формула: глВесТерминала), в модуле формы документа использую:

Код
Выбрать все
Процедура ПриОткрытии()
ФормаРасш1 = СоздатьОбъект("РасширениеФормы");
ФормаРасш1.ОбработкаОжидания("ПолучитьВес",100);
...
КонецПроцедуры
 



В глобальном модуле:

Код
Выбрать все
Функция ПолучитьВес() Экспорт
	глВесТерминала= ТВ003.GetWeight(1,1);
	Возврат глВесТерминала;
КонецФункции
 



вопрос в том, что вес выводится одноразово только при открытии формы, а нужно, чтобы вес на форме обновлялся в реальном режиме. Возможно ли такое и если возможно, то как ???
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: OLE сервер - обновление данных на форме в real
Ответ #1 - 21. Февраля 2008 :: 06:34
Печать  
Форму обновляешь?
  
Наверх
ICQ  
IP записан
 
petvv
YaBB Newbies
*
Отсутствует



Сообщений: 7
Зарегистрирован: 21. Февраля 2008
Re: OLE сервер - обновление данных на форме в real
Ответ #2 - 21. Февраля 2008 :: 06:37
Печать  
Да
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: OLE сервер - обновление данных на форме в real
Ответ #3 - 21. Февраля 2008 :: 06:40
Печать  
Ну тогда не знаю что тебе ещё посоветовать Улыбка

У меня всё работает Подмигивание

Какой смысл вызывать периодически функцию "ПолучитьВес" ? она на прямую не изменяет заголовок твоего контрола
  
Наверх
ICQ  
IP записан
 
petvv
YaBB Newbies
*
Отсутствует



Сообщений: 7
Зарегистрирован: 21. Февраля 2008
Re: OLE сервер - обновление данных на форме в real
Ответ #4 - 21. Февраля 2008 :: 06:47
Печать  
опиши свою ситуацию, пример как у тебя работает
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: OLE сервер - обновление данных на форме в real
Ответ #5 - 21. Февраля 2008 :: 06:55
Печать  
petvv писал(а) 21. Февраля 2008 :: 06:47:
опиши свою ситуацию, пример как у тебя работает

Ну лови:

Есть класс "весы" он генерит событие при изменении веса
Это событие обрабатывает класс который следит за обновлением формы и выполняет такой код:

Код
Выбрать все
	КонтекстФормы.Форма.тхтВес.Заголовок(КонтекстФормы.чВес );
	КонтекстФормы.Форма.Обновить(0);
 

  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OLE сервер - обновление данных на форме в real
Ответ #6 - 21. Февраля 2008 :: 07:01
Печать  
petvv писал(а) 21. Февраля 2008 :: 06:29:
Проблема такая: есть весовой терминал (весы 40 т.) есть OLE сервер, На форме есть объект Текст (Формула: глВесТерминала), в модуле формы документа использую:

Код
Выбрать все
Процедура ПриОткрытии()
ФормаРасш1 = СоздатьОбъект("РасширениеФормы");
ФормаРасш1.ОбработкаОжидания("ПолучитьВес",100);
...
КонецПроцедуры
 



В глобальном модуле:

Код
Выбрать все
Функция ПолучитьВес() Экспорт
	глВесТерминала= ТВ003.GetWeight(1,1);
	Возврат глВесТерминала;
КонецФункции    
 



вопрос в том, что вес выводится одноразово только при открытии формы, а нужно, чтобы вес на форме обновлялся в реальном режиме. Возможно ли такое и если возможно, то как ???

Может ФормаРасш1 объявить как переменную модуля?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OLE сервер - обновление данных на форме в real
Ответ #7 - 21. Февраля 2008 :: 07:14
Печать  
petvv писал(а) 21. Февраля 2008 :: 06:29:
Код
Выбрать все
Процедура ПриОткрытии()
ФормаРасш1 = СоздатьОбъект("РасширениеФормы");
ФормаРасш1.ОбработкаОжидания("ПолучитьВес",100);
...
КонецПроцедуры
 



В глобальном модуле:

Не уверен, что подобная обработка ожидания работает с глобальными процедурами Печаль
ИМХО лучше Сервис.ОбработкаОжидания - она точно работает с глобальными методами.

Ну и не забываем обновлять форму периодически, иначе формула пересчета не вызовется.
В общем, решение показано выше Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
petvv
YaBB Newbies
*
Отсутствует



Сообщений: 7
Зарегистрирован: 21. Февраля 2008
Re: OLE сервер - обновление данных на форме в real
Ответ #8 - 21. Февраля 2008 :: 07:46
Печать  
Люди на 1С пишу давно, а вот с такой байдой столкнулся первый раз, буквально час назад выкачал 1С++ и т.д. и только начал разбираться, пока не особо понятно. Если не влом, можно по подробней, как для особо непонятливого
  
Наверх
ICQ  
IP записан
 
petvv
YaBB Newbies
*
Отсутствует



Сообщений: 7
Зарегистрирован: 21. Февраля 2008
Re: OLE сервер - обновление данных на форме в real
Ответ #9 - 21. Февраля 2008 :: 07:53
Печать  
Заранее всем благодарен
  
Наверх
ICQ  
IP записан
 
petvv
YaBB Newbies
*
Отсутствует



Сообщений: 7
Зарегистрирован: 21. Февраля 2008
Re: OLE сервер - обновление данных на форме в real
Ответ #10 - 21. Февраля 2008 :: 08:03
Печать  
Люди Все, всем респект и уважение разобрался. Тема закрыта !!! Улыбка
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OLE сервер - обновление данных на форме в real
Ответ #11 - 21. Февраля 2008 :: 10:02
Печать  
petvv писал(а) 21. Февраля 2008 :: 08:03:
Люди Все, всем респект и уважение разобрался. Тема закрыта !!! Улыбка

Вот так бы все... 15 минут хватило Улыбка
  
Наверх
 
IP записан
 
ukko
Junior Member
**
Отсутствует


I Love FormEx

Сообщений: 20
Местоположение: Россия, Удмуртия, Глазов
Зарегистрирован: 16. Декабря 2007
Пол: Мужской
Re: OLE сервер - обновление данных на форме в real
Ответ #12 - 24. Февраля 2008 :: 15:45
Печать  
Нужно было бы написать какое решение проблемы..

Мне кажется что всё таки переменную РасширениеФормы, надо было в модуле объявить..
  
Наверх
GTalkICQ  
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: OLE сервер - обновление данных на форме в real
Ответ #13 - 13. Ноября 2008 :: 09:24
Печать  
ukko писал(а) 24. Февраля 2008 :: 15:45:
Нужно было бы написать какое решение проблемы..
Мне кажется что всё таки переменную РасширениеФормы, надо было в модуле объявить..


Решил использовать Обработку ожидания внутри формы. А она не срабатывала. Решением действительно стало объявление переменной в модуле. Спасибо! Улыбка
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать