В обычных формах толстого клиента платформы 1С:Предприятие разработчики часто использовали механизмы прикрепляемых и плавающих окон. Такие окна зацеплялись сбоку рабочей области, всегда находились перед глазами пользователя и позволяли оперативно работать с чатом, корзиной заказов или блоком быстрых действий. Однако при переходе на управляемые формы многие разработчики сталкиваются с тем, что привычный механизм docking-окон больше недоступен. Проанализируем, почему платформа накладывает такие ограничения и какие решения помогают эффективно организовать быстрый доступ к функционалу.
Разберем архитектуру интерфейса управляемого приложения. Управляемые формы изначально проектировались с учетом работы в тонком клиенте, мобильном клиенте и веб-клиенте через браузер. Стандартные веб-технологии и веб-стандарты не дают возможности создавать произвольно перемещаемые поверх веб-страницы окна, которые могли бы жестко привязываться к границам интерфейса без нарушения общей верстки.
По этой причине разработчики платформы отказаться от механизма прикрепляемых окон. Свойства форм, такие как РежимОткрытияОкна со значением Независимый, открывают форму в качестве отдельной вкладки или элемента рабочей области, но не позволяют зафиксировать её сбоку от других открываемых справочников и документов.
Тем не менее, в 1С 8.3 есть несколько проверенных альтернативных подходов, позволяющих решить эту задачу.
Посмотрим на вариант размещения постоянно открытой формы в рабочей области начальной страницы. Если функционал (например, корзина или панель быстрых действий) должен быть постоянно доступен на главном экране пользователя, мы можем настроить макет начальной страницы конфигурации.
При таком подходе форма всегда находится на рабочей области и доступна пользователю сразу при запуске программы.
Проанализируем ситуацию, когда необходимо предоставить постоянный быстрый доступ к функционалу внутри конкретного рабочего места или документа. В этом случае отлично подходят свертываемые группы элементов формы.
Рассмотрим порядок настройки такой группы:
Поведение и устанавливаем его значение в Свертываемая.ОтображениеУправленияСворачиванием (например, Кнопка или Заголовок).Пользователь сможет в любой момент кликом мыши развернуть боковую панель для выполнения действий и скрыть её, чтобы она не занимала полезную площадь экрана.
Если основной задачей создания свободного окна является организация чата или обмена сообщениями между пользователями, лучшим выбором станет встроенный механизм платформы — Система взаимодействия.
Система взаимодействия интегрирована непосредственно в интерфейс «Такси» и предоставляет следующие возможности:
Разберем случаи, когда форму не обязательно держать постоянно открытой на экране, но требуется максимально быстрый вызов по событию или нажатию клавиши.
Для мгновенного вызова формы используем горячие клавиши. Создадим команду с заданным сочетанием клавиш (например, Ctrl+Shift+C или F12), которая будет открывать форму программно:
&НаКлиенте
Процедура ОбработатьВызовПанели()
ПараметрыОткрытия = Новый Структура;
ОткрытьФорму("Обработка.БыстраяКорзина.Форма.Форма", ПараметрыОткрытия, ЭтотОбъект, Истина);
КонецПроцедуры
Если же необходимо привлечь внимание пользователя к определенному событию (например, входящему сообщению или звонку), вызовем всплывающее оповещение с помощью метода ПоказатьОповещениеПользователя:
ПоказатьОповещениеПользователя(
"Новое сообщение",
ПолучитьНавигационнуюСсылку(ОбъектСсылка),
"Поступило новое обращение в чат",
БиблиотекаКартинок.Информация
);
Для создания сложного интерфейса с выдвижными панелями внутри формы можно использовать элемент Поле HTML документа. Средствами HTML, CSS и JavaScript верстается боковая панель с анимацией выдвижения, а общую логику и обмен данными с платформой организуем через обработку событий элемента управления.
Таким образом, несмотря на отсутствие прямого механизма docking-окон в управляемых формах 1С, комбинация стандартных панелей Такси, начальной страницы, свертываемых групп и системы взаимодействия позволяет полностью перекрыть все практические сценарии работы пользователей.