|
|
|
v8: 8.2 ВводДоступен() и ВнешнееСобытие - не могу разобраться что и как | ☑ | ||
|---|---|---|---|---|
|
0
dreadnouth
03.03.11
✎
16:41
|
Стоит задача: чтобы обработчик ВнешнееСобытие выполнялся только в активной форме.
казалось бы - для этого есть прекрасная функция формы ВводДоступен(), но вот такая незадача в форме списка справочника номенклатуры есть такой код: Процедура ВнешнееСобытие(Источник, Событие, Данные) сообщить("я вызвана из формы списка - мой ответ: "+ВводДоступен()); Если Не ВводДоступен() Тогда Возврат; КонецЕсли; //прочий код дальше КонецПроцедуры в форме элемента того же справочника есть аналогичный код: Процедура ВнешнееСобытие(Источник, Событие, Данные) сообщить("я вызвана из формы элемента - мой ответ: "+ВводДоступен()); Если Не ВводДоступен() Тогда Возврат; КонецЕсли; //прочий код дальше КонецПроцедуры при тестировании получаем следующую картину - если открыть справочник номенклатуры и потом что угодно открыть, например пару документов и считать штрихкод(активен один из открытых документом), то в окне сообщений появится следующее: я вызвана из формы списка - мой ответ: да если ко всему прочему открыто несколько форм элементов номенклатуры(активна одна из форм элементов) то выдается следующее: я вызвана из формы списка - мой ответ: да я вызвана из формы элемента - мой ответ: да я вызвана из формы элемента - мой ответ: да платформа 1С:Предприятие 8.2 (8.2.11.236) помогите разобраться! |
|||
|
1
hhhh
03.03.11
✎
17:18
|
а где написано, что ВводДоступен() только в активной форме?
|
|||
|
2
dreadnouth
03.03.11
✎
17:24
|
УправляемаяФорма.ВводДоступен (ManagedForm.IsInputAvailable)
УправляемаяФорма (ManagedForm) ВводДоступен (IsInputAvailable) Синтаксис: ВводДоступен() Возвращаемое значение: Тип: Булево. Описание: Определяет, возможен ли ввод данных в форму. Может быть использован для того, чтобы определить, активизирована ли текущая форма. Доступность: Тонкий клиент, веб-клиент, толстый клиент |
|||
|
3
dreadnouth
03.03.11
✎
17:28
|
подскажите есть ли другой способ определить активную форму?
|
|||
|
4
hhhh
03.03.11
✎
17:31
|
(2) так они все вроде активизированы.
|
|||
|
5
a_alenkin
03.03.11
✎
17:36
|
Внешнее событие сначала обрабатывается всеми открытыми формами, имеющими обработчик этого события, а затем может быть обработано в процедуре модуля обычного приложения с именем
|
|||
|
6
dreadnouth
03.03.11
✎
17:42
|
(4) и (5)
это в решении поставленной задачи ничем не поможет (5) а в какой порядке идет обработка события в открытых формах? |
|||
|
7
a_alenkin
03.03.11
✎
17:43
|
Глобальный контекст (Global context)
АктивноеОкно (ActiveWindow) Синтаксис: АктивноеОкно() Возвращаемое значение: Тип: ОкноКлиентскогоПриложения; Неопределено. Описание: Получает текущее активное окно. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: В режиме запуска клиентского приложения "Обычное приложение" возвращает Неопределено. |
|||
|
8
dreadnouth
03.03.11
✎
17:47
|
(7) ключевая фраза
"В режиме запуска клиентского приложения "Обычное приложение" возвращает Неопределено." |
|||
|
9
a_alenkin
03.03.11
✎
17:47
|
сравниваешь со своим окном в событии - если не оно - то не выполняешь его
|
|||
|
10
dreadnouth
03.03.11
✎
17:49
|
(9) смотрите (8)
|
|||
|
11
a_alenkin
03.03.11
✎
17:50
|
так в режиме обычного?
|
|||
|
12
dreadnouth
03.03.11
✎
17:52
|
(11) это очевидно из (8)
и к тому же в свете скорого выхода 14 версии платформы, вариант с АктивноеОкно() сразу потеряет актуальность и для управляемого режима. |
|||
|
13
a_alenkin
03.03.11
✎
18:00
|
почему?
|
|||
|
14
dreadnouth
03.03.11
✎
18:03
|
(13) это не важно
важно то, что задача не решается таким образом=( |
|||
|
15
a_alenkin
03.03.11
✎
18:06
|
а что в обычном режиме отличается такое поведение от 8.1?
|
|||
|
16
dreadnouth
03.03.11
✎
21:09
|
видимо отличается...
все ещё прошу помощи в текущем вопросе... |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |