В 1С:Предприятии доступна работа с модальными окнами. Данный режим позволяет блокировать работу с другими окнами пока не будет закрыто модальное окно. Этот механизм необходим когда для продолжения работы обязательно требуется ввести какие либо данные. Для открытия форм в модальном режиме существует специальный метод Форма.ОткрытьМодально() или глобальный метод ОткрытьФормуМодально(). Данные методы доступны в обычном и управляемом приложениях.
Управление режимом модальности В новых версиях платформы добавилось новое свойство конфигурации "Режим использования модальности". Это свойство может быть установлено: Не использовать, Использовать с предупреждением, Использовать. С помощью данного глобального свойства устанавливается режим использования модальных окон во всей конфигурации.
Проблемы при открытии модальных форм на веб-клиенте Конфигурации созданные на управляемом приложении могут работать через веб-клиент. При использовании модальных окон в браузерах могут возникать определенные сложности. Браузеры мобильных устройств не поддерживают работу модальных окон. При использовании персональных компьютеров в браузерах может быть включена блокировка всплывающих окон.
Имитация модальной формы методом ОткрытьФорму() Для решения данных проблем в платформе был разработан новый механизм открытия модальных окон. Если в конфигурации стоит запрет на использование модальных окон, то нельзя использовать методы модального открытия окон. Однако, есть возможность сделать окно модальным с помощью метода ОткрытьФорму(). В этом методе появились новые параметры "РежимОткрытияОкна" и "ОписаниеОповещенияОЗакрытии".
Парметр "РежимОткрытияОкна" - позволяет установить блокировку всех открытых окон 1С:Предприятия, кроме открываемого. Параметр "ОписаниеОповещенияОЗакрытии" - позволяет определить процедуру вызываемую при закрытии формы.
Таким образом можно добиться модальности при открытии формы. В браузере такая псевдомодальная форма отрисовывается внутри родительского окна, тем самым не создавая всплывающие окна.
&НаКлиенте Процедура КомандаВыполнить(Команда) ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработкаЗакрытия", ЭтаФорма); ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма1",,,,,, ОповещениеОЗакрытии, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); КонецПроцедуры
&НаКлиенте Процедура ОбработкаЗакрытия(Результат, ДопПараметры) Экспорт Сообщить("Форма закрыта"); КонецПроцедуры
Открытие модальной формы по умолчанию В управляемых формах, свойство "РежимОткрытияОкна" также доступно в палитре свойств. Это свойство может иметь одно из следующих значений: Независимый, блокировать окно владельца, Блокировать весь интерфейс. Если установить данное свойство, то при открытии формы "РежимОткрытияОкна" устанавливать не нужно.
|