При публикации баз 1С на веб-сервере для внешних пользователей, клиентов или сотрудников на специализированных рабочих местах часто возникает задача убрать лишние элементы интерфейса. В стандартном режиме в верхней части экрана веб-клиента всегда отображается область системных команд: главное меню, сервисные инструменты (калькулятор, календарь, история) и навигационные панели. Разберем, как скрыть эту область штатным программным механизмом платформы и какими дополнительными способами можно оптимизировать интерфейс веб-приложения.
Попытка отключить область системных команд через интерактивную настройку панелей в режиме 1С:Предприятие или через объект НастройкиИнтерфейсаКлиентскогоПриложения не дает нужного результата. Стандартный редактор позволяет настраивать лишь панель разделов, панель инструментов, панель функций текущего раздела и панель открытых окон. Область системных команд не входит в число настраиваемых панелей компоновки интерфейса. Пользователь может лишь локально скрыть отдельные пиктограммы, но не саму верхнюю системную строку.
Для полного отключения системного обрамления в платформе 1С:Предприятие 8.3 предусмотрены специализированные режимы работы основного окна.
Начиная с версии платформы 8.3.10, разработчикам доступен объект глобального контекста КлиентскоеПриложение и системное перечисление РежимОсновногоОкнаКлиентскогоПриложения. С их помощью можно управлять отображением оболочки программы.
Платформа поддерживает следующие режимы:
Установка режима основного окна имеет строгое архитектурное правило: метод УстановитьРежимОсновногоОкна должен вызываться исключительно в обработчике события ПередНачаломРаботыСистемы в Модуле управляемого приложения. Попытка вызвать этот метод позже приведет к ошибке выполнения.
Разберем по шагам, как настроить этот функционал в конфигурации:
ПередНачаломРаботыСистемы.Посмотрим на пример программного кода:
&НаКлиенте
Процедура ПередНачаломРаботыСистемы(Отказ)
#Если ВебКлиент Тогда
// Проверяем условия, при которых интерфейс должен быть упрощенным
Если РольДоступна("ВнешнийПользователь") Или Не РольДоступна("ПолныеПрава") Тогда
КлиентскоеПриложение.УстановитьРежимОсновногоОкна(
РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто
);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Проанализируем частую ситуацию: база разработана на базе обычного приложения (например, ЗУП 2.5 или УПП 1.3), но в ней создана отдельная управляемая форма (документ, отчет или обработка) для публикации на веб-сервере. Менять основной режим запуска всей конфигурации на «Управляемое приложение» в таком случае нельзя, так как перестанут работать толстые клиенты пользователей.
В этой ситуации штатный механизм 1С отрабатывает корректно благодаря следующим правилам платформы:
КлиентскоеПриложение.УстановитьРежимОсновногоОкна в управляемом модуле применится исключительно для веб-клиента и никак не затронет пользователей, работающих в режиме толстого обычного клиента.Если требуется кастомизировать интерфейс без изменения логики конфигурации или решить задачу интеграции веб-клиента в сторонние порталы, рассмотрим два вспомогательных варианта:
РабочееМесто, а в файле публикации default.vrd и параметрах веб-сервера настроить необходимые заголовки безопасности (Content-Security-Policy). Пользователь портала увидит чистую форму 1С без системных шапок и меню.display: none !important;. Однако при использовании этого метода следует помнить, что при обновлении версии платформы 1С структура классов может измениться.