Обработка оповещения активирует другую форму
Ситуация. Из формы 1 делаю "Оповестить" на форме 2 происходит обработка оповещения, в результате которого изменяются свойства Доступность и ТолькоПросмотр некоторых элементов. Все изменяется и все хорошо, но активной становится форма 2, а хочется остаться на форме 1.
Активная форма 1.
Выполняю Оповестить "Некоторое событие";
Форма 2
Комментировал по частям. Сделал вывод, что любая из строк приводит к активации второй формы. Как избежать?
Активная форма 1.
Выполняю Оповестить "Некоторое событие";
Форма 2
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Элементы.ГруппаШапка.ТолькоПросмотр=Истина; // группа
Элементы.ГруппаИсходноеЗаполнение.ТолькоПросмотр=Истина; // группа
Элементы.ФормаЗаполнитьПоНомеру.Доступность=Ложь; // кнопка
Элементы.ФормаСкорректироватьИсходноеЗаполнение.Доступность=Ложь; // кнопка
КонецПроцедуры
Комментировал по частям. Сделал вывод, что любая из строк приводит к активации второй формы. Как избежать?
По теме из базы знаний
- 1С8:борьба - личный опыт работы с платформой 1с8
- Интеграция сценарного тестирования в процесс разработки
- Аутентификация на внешних сервисах посредством OAuth
- Гарантированно рабочий пример использования длительных операций на БСП с отображением прогресса. [Часть 1]
- Расширение глобального поиска 1С, или Глобальный поиск "на максималках"
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Может попробовать пересмотреть механизм и отказаться от оповещений?
Форма 2 из Формы 1 ведь вызывается, скорее всего. Тогда где-то в Форме 1 хранить открытое окно Формы 2. И сделать в Форме 2 экспортный клиентский метод по установке нужных параметров. И вызывать его из Формы 1.
Форма 2 из Формы 1 ведь вызывается, скорее всего. Тогда где-то в Форме 1 хранить открытое окно Формы 2. И сделать в Форме 2 экспортный клиентский метод по установке нужных параметров. И вызывать его из Формы 1.
(2) цепочка длиннее на самом деле. Там есть еще промежуточная форма 3, которая как раз открывает форму 1, а оповещаю форму 2, которая, возможно, и не открыта вовсе. Поэтому не вариант.
Теоретически оповещаемых форм может быть несколько. И во всех, возможно, потребуются изменения.
Теоретически оповещаемых форм может быть несколько. И во всех, возможно, потребуются изменения.
(8) Тут не факт, что из-за перерисовки. Как-то тоже на это наталкивался. И, вроде, только изменение Видимости перерисовывает форму с уходом на сервер.
Но проверить-то просто. Автору нужно закомментить код обработки оповещения и отчитаться, что же будет с фокусом.
Но проверить-то просто. Автору нужно закомментить код обработки оповещения и отчитаться, что же будет с фокусом.
(10) При изменении доступности форма не бегает на сервер.
Таки попробуйте закомментить и пронаблюдать. Если фокус теряться не будет, то потом по строчке обратно возвращайте. И посмотрим, на чем начнется изменение фокуса.
Нам (мне, по-крайней мере) тоже интересно.
Таки попробуйте закомментить и пронаблюдать. Если фокус теряться не будет, то потом по строчке обратно возвращайте. И посмотрим, на чем начнется изменение фокуса.
Нам (мне, по-крайней мере) тоже интересно.
Ну тогда что-то в сторону
Глобальный контекст (Global context)
ПолучитьОкна (GetWindows)
Синтаксис:
ПолучитьОкна()
И
ОкноКлиентскогоПриложения (ClientApplicationWindow)
Активизировать (Activate)
Синтаксис:
Активизировать()
Глобальный контекст (Global context)
ПолучитьОкна (GetWindows)
Синтаксис:
ПолучитьОкна()
И
ОкноКлиентскогоПриложения (ClientApplicationWindow)
Активизировать (Activate)
Синтаксис:
Активизировать()
(15) нееееет. Не хочу таким длинным путем.
Новая гипотеза. На форме 3 (открыта вместе с другими) тоже стал ловить оповещение и управлять Доступностью в частности. Перенес туда одну команду и кнопку. Так вот на эту форму фокус не переходит! Т.е. работает корректно.
Какая-то особенность/баг конкретной формы 1
Новая гипотеза. На форме 3 (открыта вместе с другими) тоже стал ловить оповещение и управлять Доступностью в частности. Перенес туда одну команду и кнопку. Так вот на эту форму фокус не переходит! Т.е. работает корректно.
Какая-то особенность/баг конкретной формы 1
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот