Как выборочно включить интерфейс Такси для отдельных пользователей и избавиться от блокировки всплывающих окон в веб-клиенте

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

При организации удаленного доступа партнеров или внешних клиентов через веб-браузер часто возникает задача: предоставить им упрощенный, изолированный интерфейс (например, «Такси») с индивидуальным рабочим местом, при этом оставив для основных сотрудников привычный вариант работы в управляемых формах (интерфейс «Формы в закладках»). Дополнительно возникает проблема с сообщениями браузера о блокировке всплывающих окон при открытии различных форм.

Разберем подробно, как реализовать выборочное включение интерфейса «Такси», настроить отдельное рабочее место и устранить блокировку всплывающих окон в веб-клиенте.

Выясним причину блокировки всплывающих окон в браузере

Сначала проанализируем важный нюанс: предупреждения браузера о всплывающих окнах не привязаны напрямую к стилю интерфейса («Такси» или «Формы в закладках»). Браузер блокирует окна в тех случаях, когда конфигурация использует синхронный режим модальности.

При использовании классических модальных вызовов (например, Предупреждение, Вопрос, ОткрытьФормуМодально) веб-клиент 1С пытается открыть отдельное всплывающее окно браузера. Современные браузеры по умолчанию расценивают такие окна как нежелательные и блокируют их.

Чтобы полностью избавиться от блокировок всплывающих окон без необходимости настраивать каждый браузер пользователя, выполним следующие шаги в конфигураторе:

  1. Перейдем в свойства корня конфигурации и найдем свойство Режим использования модальности.
  2. Установим значение Не использовать. При таком режиме все диалоги и модальные формы открываются в виде встроенных всплывающих панелей (оверлеев) прямо внутри одной вкладки браузера, не вызывая реакцию блокировщика.
  3. В программном коде заменим синхронные вызовы на асинхронные аналоги с использованием объекта ОписаниеОповещения (например, ПоказатьПредупреждение, ПоказатьВопрос, ПоказатьВводЗначения).
  4. Для форм, которые должны открываться с блокировкой родительского интерфейса, используем свойство РежимОткрытияОкнаФормы.БлокироватьОкноВладельца или РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс.
  5. Проверим свойство Режим использования синхронных вызовов расширений платформы и внешних компонент и переведем его в значение Не использовать.

Способ 1. Программное назначение интерфейса Такси конкретному пользователю

Платформа 1С:Предприятие 8.3 позволяет сохранять персональные настройки интерфейса для каждого пользователя в специальном системном хранилище. Посмотрим на пример кода, с помощью которого можно принудительно задать вариант интерфейса «Такси»:


НастройкиКлиента = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиКлиентскогоПриложения");
Если НастройкиКлиента = Неопределено Тогда
    НастройкиКлиента = Новый НастройкиКлиентскогоПриложения;
КонецЕсли;

НастройкиКлиента.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Такси;
ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиКлиентскогоПриложения", , НастройкиКлиента);

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

Способ 2. Запуск через параметры командной строки и адресную строку браузера

Если партнеры подключаются к базе исключительно через браузер, переключать интерфейс можно с помощью параметров запуска в URL веб-клиента. Разберем доступные варианты:

  1. Параметр URL для веб-клиента: для явного запуска интерфейса «Такси» в браузере добавим к адресу базы параметр ?c=Taxi. Для открытия в интерфейсе «Формы в закладках» используется параметр ?c=Version82.
  2. Ключ запуска для тонкого клиента: если запуск выполняется через ярлык или командную строку, используется ключ /iTaxi.

Способ 3. Организация изолированного рабочего места для партнеров

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

  1. Создадим отдельную роль (например, ПартнерскийДоступ) с минимально необходимым набором прав на объекты метаданных.
  2. В дереве конфигурации откроем редактор Рабочая область начальной страницы. Добавим разработанную форму рабочего места партнера и в колонке видимости по ролям включим ее только для роли ПартнерскийДоступ. Для остальных ролей оставим стандартные формы начальной страницы.
  3. При необходимости переопределим состав панелей для партнерской роли через объект НастройкиПанелей, скрыв панель разделов и панель функций, чтобы партнер видел исключительно предназначенное для него рабочее пространство.
← На главную