Как организовать аналог свободного или прикрепляемого окна в управляемых формах 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В обычных формах толстого клиента платформы 1С:Предприятие разработчики часто использовали механизмы прикрепляемых и плавающих окон. Такие окна зацеплялись сбоку рабочей области, всегда находились перед глазами пользователя и позволяли оперативно работать с чатом, корзиной заказов или блоком быстрых действий. Однако при переходе на управляемые формы многие разработчики сталкиваются с тем, что привычный механизм docking-окон больше недоступен. Проанализируем, почему платформа накладывает такие ограничения и какие решения помогают эффективно организовать быстрый доступ к функционалу.

Выясним причину: почему в управляемых формах нет свободных окон?

Разберем архитектуру интерфейса управляемого приложения. Управляемые формы изначально проектировались с учетом работы в тонком клиенте, мобильном клиенте и веб-клиенте через браузер. Стандартные веб-технологии и веб-стандарты не дают возможности создавать произвольно перемещаемые поверх веб-страницы окна, которые могли бы жестко привязываться к границам интерфейса без нарушения общей верстки.

По этой причине разработчики платформы отказаться от механизма прикрепляемых окон. Свойства форм, такие как РежимОткрытияОкна со значением Независимый, открывают форму в качестве отдельной вкладки или элемента рабочей области, но не позволяют зафиксировать её сбоку от других открываемых справочников и документов.

Тем не менее, в 1С 8.3 есть несколько проверенных альтернативных подходов, позволяющих решить эту задачу.

Альтернатива 1. Настройка рабочей области начальной страницы

Посмотрим на вариант размещения постоянно открытой формы в рабочей области начальной страницы. Если функционал (например, корзина или панель быстрых действий) должен быть постоянно доступен на главном экране пользователя, мы можем настроить макет начальной страницы конфигурации.

  1. Перейдем в конфигуратор и откроем свойства рабочей области начальной страницы.
  2. Зададим шаблон размещения, например, Две колонки разной ширины (2:1) или Две колонки одинаковой ширины.
  3. В одну из колонок поместим нужную вспомогательную форму (чат, корзину, панель задач), а во вторую — основной рабочий стол пользователя.

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

Альтернатива 2. Использование свертываемых групп формы

Проанализируем ситуацию, когда необходимо предоставить постоянный быстрый доступ к функционалу внутри конкретного рабочего места или документа. В этом случае отлично подходят свертываемые группы элементов формы.

Рассмотрим порядок настройки такой группы:

  1. На управляемой форме создаем обычную группу элементов.
  2. В свойствах группы находим параметр Поведение и устанавливаем его значение в Свертываемая.
  3. Задаем свойство ОтображениеУправленияСворачиванием (например, Кнопка или Заголовок).
  4. Помещаем внутрь группы необходимые элементы управления (списки, кнопки, поля ввода).

Пользователь сможет в любой момент кликом мыши развернуть боковую панель для выполнения действий и скрыть её, чтобы она не занимала полезную площадь экрана.

Альтернатива 3. Внедрение системы взаимодействия для чатов

Если основной задачей создания свободного окна является организация чата или обмена сообщениями между пользователями, лучшим выбором станет встроенный механизм платформы — Система взаимодействия.

Система взаимодействия интегрирована непосредственно в интерфейс «Такси» и предоставляет следующие возможности:

  1. Контекстные и неконтекстные обсуждения, доступные из правой панели или через специальный значок интерфейса.
  2. Возможность вести переписку и обмениваться файлами без создания дополнительных форм.
  3. Привязка обсуждений к конкретным объектам базы данных (документам, элементам справочников).

Альтернатива 4. Всплывающие уведомления и горячие клавиши

Разберем случаи, когда форму не обязательно держать постоянно открытой на экране, но требуется максимально быстрый вызов по событию или нажатию клавиши.

Для мгновенного вызова формы используем горячие клавиши. Создадим команду с заданным сочетанием клавиш (например, Ctrl+Shift+C или F12), которая будет открывать форму программно:


&НаКлиенте
Процедура ОбработатьВызовПанели()
    ПараметрыОткрытия = Новый Структура;
    ОткрытьФорму("Обработка.БыстраяКорзина.Форма.Форма", ПараметрыОткрытия, ЭтотОбъект, Истина);
КонецПроцедуры

Если же необходимо привлечь внимание пользователя к определенному событию (например, входящему сообщению или звонку), вызовем всплывающее оповещение с помощью метода ПоказатьОповещениеПользователя:


ПоказатьОповещениеПользователя(
    "Новое сообщение", 
    ПолучитьНавигационнуюСсылку(ОбъектСсылка), 
    "Поступило новое обращение в чат", 
    БиблиотекаКартинок.Информация
);

Альтернатива 5. Использование элемента «Поле HTML документа»

Для создания сложного интерфейса с выдвижными панелями внутри формы можно использовать элемент Поле HTML документа. Средствами HTML, CSS и JavaScript верстается боковая панель с анимацией выдвижения, а общую логику и обмен данными с платформой организуем через обработку событий элемента управления.

Таким образом, несмотря на отсутствие прямого механизма docking-окон в управляемых формах 1С, комбинация стандартных панелей Такси, начальной страницы, свертываемых групп и системы взаимодействия позволяет полностью перекрыть все практические сценарии работы пользователей.

← На главную