Почему не отображается интерфейс в меню «Переключить интерфейс» в 1С и как это исправить

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

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

Особенности работы механизма переключения интерфейсов

В классическом обычном приложении 1С подменю «Переключить интерфейс» не формируется платформой автоматически из всех интерфейсов, существующих в метаданных. Каждая кнопка для смены интерфейса представляет собой конкретный пункт меню или команду. Если новый интерфейс просто создан в ветке метаданных «Интерфейсы», платформа не добавляет его в пункт главного меню автоматически.

Способ 1. Добавление команды переключения в Общий интерфейс

Проанализируем базовый вариант решения задачи через конфигуратор:

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

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

Способ 2. Программирование переключения без изменения типового интерфейса

Чтобы не снимать объекты типовой конфигурации с поддержки, рассмотрим программный способ переключения. Для этого используется метод глобального контекста ГлавныйИнтерфейс.ПереключитьИнтерфейс().

Создадим внешнюю обработку или вызовем следующий код в нужной точке программы:


// Переключение на нужный интерфейс по его имени в метаданных
ГлавныйИнтерфейс.ПереключитьИнтерфейс("ИмяСозданногоИнтерфейса");

Этот метод мгновенно делает указанный интерфейс активным для текущего сеанса пользователя.

Способ 3. Проверка прав доступа и свойства «Переключаемый»

Выясним, какие настройки в метаданных влияют на отображение и поведение интерфейсов:

  1. Права доступа: Для роли пользователя обязательно должно быть установлено право Использование для соответствующего объекта метаданных «Интерфейс». Также проверяются права на объекты, входящие в состав этого интерфейса — при отсутствии прав на ключевые справочники или документы элементы интерфейса могут скрываться.
  2. Свойство «Переключаемый»:

    – Если свойство установлено в Истина, платформа скрывает этот интерфейс при переключении на другой переключаемый интерфейс.

    – Если свойство установлено в Ложь (как у интерфейса Общий), он остается видимым всегда и накладывается поверх активного переключаемого интерфейса.

Способ 4. Назначение интерфейса пользователю по умолчанию

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

← На главную