Как в веб-клиенте 1С скрыть область системных команд и главное меню

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

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

Анализ ограничений стандартной настройки интерфейса

Попытка отключить область системных команд через интерактивную настройку панелей в режиме 1С:Предприятие или через объект НастройкиИнтерфейсаКлиентскогоПриложения не дает нужного результата. Стандартный редактор позволяет настраивать лишь панель разделов, панель инструментов, панель функций текущего раздела и панель открытых окон. Область системных команд не входит в число настраиваемых панелей компоновки интерфейса. Пользователь может лишь локально скрыть отдельные пиктограммы, но не саму верхнюю системную строку.

Для полного отключения системного обрамления в платформе 1С:Предприятие 8.3 предусмотрены специализированные режимы работы основного окна.

Штатное решение: переключение режима основного окна клиентского приложения

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

Платформа поддерживает следующие режимы:

  1. Обычный — стандартный вид окна со всеми командными панелями, заголовком и областью системных команд.
  2. РабочееМесто — специализированный режим, в котором полностью скрываются заголовок окна программы, область системных команд, главное меню и все служебные панели, оставляя пользователю только рабочую область с открытыми формами.
  3. ПолноэкранноеРабочееМесто — аналогичен режиму «РабочееМесто», но окно браузера или тонкого клиента автоматически разворачивается во весь экран.
  4. Киоск — максимально закрытый полноэкранный режим без стандартных средств навигации, предназначенный для терминалов самообслуживания и информационных стоек.

Реализация переключения режима в коде 1С

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

Разберем по шагам, как настроить этот функционал в конфигурации:

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

Посмотрим на пример программного кода:


&НаКлиенте
Процедура ПередНачаломРаботыСистемы(Отказ)
    
    #Если ВебКлиент Тогда
        // Проверяем условия, при которых интерфейс должен быть упрощенным
        Если РольДоступна("ВнешнийПользователь") Или Не РольДоступна("ПолныеПрава") Тогда
            КлиентскоеПриложение.УстановитьРежимОсновногоОкна(
                РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто
            );
        КонецЕсли;
    #КонецЕсли

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

Особенности работы в конфигурациях с обычным приложением

Проанализируем частую ситуацию: база разработана на базе обычного приложения (например, ЗУП 2.5 или УПП 1.3), но в ней создана отдельная управляемая форма (документ, отчет или обработка) для публикации на веб-сервере. Менять основной режим запуска всей конфигурации на «Управляемое приложение» в таком случае нельзя, так как перестанут работать толстые клиенты пользователей.

В этой ситуации штатный механизм 1С отрабатывает корректно благодаря следующим правилам платформы:

  1. При открытии базы через веб-браузер веб-клиент всегда и принудительно запускается в управляемом режиме.
  2. При входе через веб-клиент платформа выполняет код только из Модуля управляемого приложения, полностью игнорируя Модуль обычного приложения.
  3. Вызов метода КлиентскоеПриложение.УстановитьРежимОсновногоОкна в управляемом модуле применится исключительно для веб-клиента и никак не затронет пользователей, работающих в режиме толстого обычного клиента.

Альтернативные веб-решения и интеграция

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

  1. Встраивание через iframe: Веб-клиент штатно поддерживает интеграцию во фреймы на сторонних веб-сайтах. Для этого достаточно перевести интерфейс в режим РабочееМесто, а в файле публикации default.vrd и параметрах веб-сервера настроить необходимые заголовки безопасности (Content-Security-Policy). Пользователь портала увидит чистую форму 1С без системных шапок и меню.
  2. Стилизация через CSS на веб-сервере: Веб-клиент 1С формирует стандартное DOM-дерево в браузере. На уровне обратного прокси-сервера (например, Nginx или IIS) можно переопределить стили веб-клиента, принудительно скрыв селекторы системной полосы правилом display: none !important;. Однако при использовании этого метода следует помнить, что при обновлении версии платформы 1С структура классов может измениться.
← На главную