![]() |
|
Не могу "ПодключитьОбработчикОжидания()" | ☑ | ||
---|---|---|---|---|
0
mzelensky
08.04.14
✎
14:44
|
Доброго всем.
Управляемая форма. Пишу (нажатие кнопки): &НаКлиенте Процедура СоздатьДокумент(Команда) ИнфоСостояние=""; ПодключитьОбработчикОжидания("ОбновитьСостояние", 1, ложь); СоздатьДокументСервер(); ПолучитьДанныеНаСервере(); УстановитьВидимость(); ИнфоСостояние=""; ОтключитьОбработчикОжидания("ОбновитьСостояние"); КонецПроцедуры &НаКлиенте Процедура ОбновитьСостояние() Сообщить(ИнфоСостояние); Если ЗначениеЗаполнено(ИнфоСостояние) тогда Состояние(ИнфоСостояние); КонецЕсли; КонецПроцедуры Почему-то обработчик ожидания так ниразу и НЕ выполняется. ПОЧЕМУ? |
|||
1
mzelensky
08.04.14
✎
14:45
|
Так тоже пробовал:
Этаформа.ПодключитьОбработчикОжидания("ОбновитьСостояние", 1, ложь); Результат тот же - не срабатывает |
|||
2
mzelensky
08.04.14
✎
14:45
|
Процедуру "ОбновитьСостояние()" делал Экспортной, тоже не помогло
|
|||
3
mzelensky
08.04.14
✎
14:45
|
Что делаю не так?
|
|||
4
Serginio1
08.04.14
✎
14:49
|
Не успевает. Обработчик срабатывает, когда система простаиваеи и выбирает очередь сообщений. Тут дело просто не доходит до вызова.
Сделай отключение ОтключитьОбработчикОжидания("ОбновитьСостояние"); в процедуре вызова Процедура ОбновитьСостояние() Сообщить(ИнфоСостояние); Если ЗначениеЗаполнено(ИнфоСостояние) тогда Состояние(ИнфоСостояние); КонецЕсли; ОтключитьОбработчикОжидания("ОбновитьСостояние"); КонецПроцедуры |
|||
5
mzelensky
08.04.14
✎
14:50
|
(4) Так он в эту процедуру вообще ни разу не заходит
|
|||
6
Serginio1
08.04.14
✎
14:52
|
Убери ОтключитьОбработчикОжидания и зайдет
|
|||
7
Serginio1
08.04.14
✎
14:53
|
Если бы в
СоздатьДокументСервер(); ПолучитьДанныеНаСервере(); УстановитьВидимость(); выполнялись ассинхронно то все было бы прекрасно. Но увы все методы выполняются синхронно |
|||
8
Serginio1
08.04.14
✎
14:59
|
Смотри справку
Описание: Подключает вызов указанной процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля через определенный интервал времени. Вызов будет осуществляться только в "состоянии покоя", то есть в тот момент, когда программа не выполняет никаких действий. |
|||
9
mzelensky
08.04.14
✎
15:08
|
(8) Ну вообще-то там написано:
" Процедура будет вызываться в период ожидания системы " Я читал СП :) |
|||
10
mzelensky
08.04.14
✎
15:17
|
Но в общем понятно почему оно не работает.
А через БСП и ее длительную операцию? |
|||
11
Serginio1
08.04.14
✎
15:18
|
(9) Но она же не ожидает, а выполняет
СоздатьДокументСервер(); ПолучитьДанныеНаСервере(); УстановитьВидимость(); |
|||
12
Serginio1
08.04.14
✎
15:23
|
Ну через фоновое задание можно
http://infostart.ru/public/159607/ |
|||
13
mzelensky
08.04.14
✎
15:27
|
(12) Да, смотрел я эту статью - там дурдом просто. И Пример из БСП тоже открывали...там все почему-то через дополнительные обработки и целая куча писанины, не совсем понятной.
|
|||
14
Serginio1
08.04.14
✎
15:34
|
(13) А ИнфоСостояние ты в этих процедурах изменяешь?
СоздатьДокументСервер(); ПолучитьДанныеНаСервере(); ? Если да, то можешь выбирать сообщения СообщениеПользователю или например через значение в регистре сведений. |
|||
15
mzelensky
08.04.14
✎
15:39
|
(14) Ну да. В серверных процедурах обновляю общую переменную, а в обработчике ожидания хочу выводить значение этой переменной.
|
|||
16
DexterMorgan
08.04.14
✎
15:52
|
У тебя блокировка фоновых заданий случайно не включена?
|
|||
17
Serginio1
08.04.14
✎
15:54
|
(15) Ну так и делай через фоновое задание только пиши не в переменную а в регистр.
|
|||
18
mzelensky
08.04.14
✎
16:08
|
(17) Да не хочется гемороя этого. Фоновые задания, регистры...осталось еще план видов характеристик прикрутить, да регистр бухгалтерии и вообще полный ахтунг будет!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |