Как в интерфейсе «Такси» отключить раздел «Главное» или сделать активным другой раздел при запуске

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

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

В рамках этой статьи мы подробно разберем, как решить эту проблему. Мы рассмотрим несколько эффективных способов: от программной активации нужного раздела при старте до кардинальной перестройки интерфейса с использованием современных режимов работы основного окна платформы «1С».

Способ 1. Программная активация нужного раздела при запуске приложения

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

Для этого мы воспользуемся возможностями встроенного языка в модуле управляемого приложения. Проанализируем событие ПриНачалеРаботыСистемы.

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

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

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

Процедура ПриНачалеРаботыСистемы()
    
    // Укажем имя подсистемы, которую необходимо активировать.
    // Обратите внимание: имя должно соответствовать имени подсистемы в конфигураторе.
    ИмяНужногоРаздела = "УправлениеСкладом"; 
    
    Попытка
        // Выполняем переход к навигационной точке нужного раздела
        ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/" + ИмяНужногоРаздела);
        
        // Для принудительной перерисовки интерфейса откроем ключевую форму этого раздела,
        // связав ее с основным окном приложения
        ПараметрыФормы = Новый Структура;
        ОткрытьФорму("ОбщаяФорма.РабочийСтолСклада", ПараметрыФормы, , , ПолучитьОкна()[0]);
    Исключение
        // Обработка исключения на случай, если у пользователя нет прав на этот раздел
        ЗаписатьЛогСобытия("Не удалось активировать стартовый раздел: " + ОписаниеОшибки());
    КонецПопытки;

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

Этот метод позволяет автоматически «перебросить» пользователя в нужную рабочую область сразу после авторизации в системе.

Способ 2. Настройка рабочей области начальной страницы в конфигураторе

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

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

Выполним следующие шаги:

  1. В конфигураторе выделим корень конфигурации, нажмем по нему правой кнопкой мыши и выберем пункт «Открыть рабочую область начальной страницы».
  2. Перед нами откроется окно настройки шаблона начальной страницы (одноколоночный, двухколоночный с разными пропорциями).
  3. Добавим в колонки формы, которые реально используются в работе (например, список текущих задач, форму быстрого поиска или журнал документов).
  4. Если в конфигурации есть специализированная общая форма, выполняющая роль «приборной панели» (Dashboard), добавим именно ее.

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

Способ 3. Перевод интерфейса в режим «Рабочее место» или «Киоск»

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

Рассмотрим подробнее два наиболее подходящих режима:

Для перевода конфигурации в режим «Рабочее место» выполним следующие действия:

  1. Создадим в конфигурации ОбщаяФорма, которая будет выступать нашим главным рабочим столом. Назовем её, например, ФормаРабочегоМеста. Разместим на ней все необходимые списки, кнопки запуска обработок и отчеты.
  2. В модуле управляемого приложения в процедуре ПриНачалеРаботыСистемы установим режим открытия основного окна:

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

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

Способ 4. Управление видимостью панели разделов через Хранилище системных настроек

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

Настройки расположения и видимости панелей хранятся в специальной системной структуре. Мы можем переопределить её при старте системы:


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

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

Способ 5. Динамическое управление видимостью разделов с помощью функциональных опций

Если мы хотим полностью убрать раздел «Главное» или другие подразделы динамически, в зависимости от определенных условий (например, параметров учета или констант), лучшим решением будет использование механизма Функциональных опций (ФО).

Выясним, как привязать видимость подсистемы к функциональной опции:

  1. Создадим новую Константу (например, ИспользоватьРазделГлавное с типом Булево).
  2. Создадим объект метаданных ФункциональнаяОпция, назовем ее ОтображатьРазделГлавное.
  3. В свойстве «Источник данных» созданной функциональной опции укажем нашу константу ИспользоватьРазделГлавное.
  4. Вкладка «Состав» функциональной опции позволяет отметить те объекты, видимость которых зависит от этой опции. Развернем ветку «Подсистемы» и снимем отметку с тех подсистем, которые мы хотим скрыть при значении константы Ложь.

Если значение константы будет установлено в Ложь, платформа автоматически исключит выбранные подсистемы из командного интерфейса всех пользователей, а раздел «Главное» перестанет отображаться на панели разделов.

Мы проанализировали различные варианты решения проблемы пустого раздела «Главное» в интерфейсе «Такси». Выберите оптимальный путь в зависимости от архитектуры вашей конфигурации: от простой настройки состава начальной страницы до полного перехода в режим работы «Рабочее место».

← На главную