1CLenta.ru  

Модальные окна в управляемом приложении

Программирование системы     23.03.2017 08:06     21421

В 1С:Предприятии доступна работа с модальными окнами. Данный режим позволяет блокировать работу с другими окнами пока не будет закрыто модальное окно. Этот механизм необходим когда для продолжения работы обязательно требуется ввести какие либо данные. Для открытия форм в модальном режиме существует специальный метод Форма.ОткрытьМодально() или глобальный метод ОткрытьФормуМодально(). Данные методы доступны в обычном и управляемом приложениях.

Управление режимом модальности


В новых версиях платформы добавилось новое свойство конфигурации "Режим использования модальности". Это свойство может быть установлено: Не использовать, Использовать с предупреждением, Использовать. С помощью данного глобального свойства устанавливается режим использования модальных окон во всей конфигурации.

Проблемы при открытии модальных форм на веб-клиенте


Конфигурации созданные на управляемом приложении могут работать через веб-клиент.
При использовании модальных окон в браузерах могут возникать определенные сложности. Браузеры мобильных устройств не поддерживают работу модальных окон. При использовании персональных компьютеров в браузерах может быть включена блокировка всплывающих окон.

Имитация модальной формы методом ОткрытьФорму()


Для решения данных проблем в платформе был разработан новый механизм открытия модальных окон. Если в конфигурации стоит запрет на использование модальных окон, то нельзя использовать методы модального открытия окон. Однако, есть возможность сделать окно модальным с помощью метода ОткрытьФорму(). В этом методе появились новые параметры "РежимОткрытияОкна" и "ОписаниеОповещенияОЗакрытии".

Парметр "РежимОткрытияОкна" - позволяет установить блокировку всех открытых окон 1С:Предприятия, кроме открываемого.
Параметр "ОписаниеОповещенияОЗакрытии" - позволяет определить процедуру вызываемую при закрытии формы.

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

&НаКлиенте
Процедура КомандаВыполнить(Команда)

ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработкаЗакрытия", ЭтаФорма);
ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма1",,,,,,
ОповещениеОЗакрытии,
РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);

КонецПроцедуры


&НаКлиенте

Процедура ОбработкаЗакрытия(Результат, ДопПараметры) Экспорт

Сообщить("Форма закрыта");

КонецПроцедуры


Открытие модальной формы по умолчанию


В управляемых формах, свойство "РежимОткрытияОкна" также доступно в палитре свойств. Это свойство может иметь одно из следующих значений: Независимый, блокировать окно владельца, Блокировать весь интерфейс. Если установить данное свойство, то при открытии формы "РежимОткрытияОкна" устанавливать не нужно.

Комментарии (0)