Как настроить индивидуальный интерфейс для каждого пользователя в 1С 8.3

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

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

Метод 1. Использование системы ролей и подсистем

Самый простой и стандартный способ управления интерфейсом — это использование Подсистем и Ролей. Платформа 1С позволяет гибко настраивать видимость разделов интерфейса в зависимости от прав доступа пользователя.

Проанализируем алгоритм реализации этого метода:

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

Важно помнить, что если один и тот же документ должен называться по-разному для разных отделов (например, для одних это «Реализация», а для других «Продажа»), стандартный механизм подсистем этого не позволит — заголовок объекта в метаданных один. В этом случае придется использовать другие методы.

Метод 2. Группировка пользователей и оптимизация структуры

Разберем ситуацию, когда пользователям нужно разное расположение элементов. Вместо того чтобы настраивать интерфейс под каждого из 65 сотрудников, целесообразно применить метод функционального деления. Как показывает практика, даже в большой компании количество уникальных ролей редко превышает 10–12.

Рассмотрим шаги по оптимизации:

  1. Составим таблицу соответствия «Пользователь — Должность — Необходимые функции».
  2. Объединим похожих пользователей в группы доступа.
  3. Настроим Командный интерфейс для каждой роли в конфигураторе. Здесь можно определить порядок следования команд и их видимость по умолчанию.

Метод 3. Создание индивидуального «Рабочего стола» (Начальной страницы)

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

Проанализируем, как это сделать:

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

Пример кода для динамического изменения заголовков на рабочем столе:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
    Если ТекущийПользователь.Имя = "Иванов" Тогда
        Элементы.ГруппаПродажи.Заголовок = "Мои Сделки";
        Элементы.КнопкаОткрытьСписок.Заголовок = "Открыть реестр отгрузок";
    ИначеЕсли ТекущийПользователь.Имя = "Петров" Тогда
        Элементы.ГруппаПродажи.Заголовок = "Складской учет";
    КонецЕсли;
КонецПроцедуры

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

Метод 4. Использование функциональных опций

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

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

Метод 5. Копирование настроек интерфейса через БСП

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

Выясним порядок действий:

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

Этот метод избавляет от необходимости заходить под каждым пользователем отдельно, но позволяет быстро привести интерфейс 65 сотрудников к единому (или нескольким групповым) стандарту.

Метод 6. Использование расширений конфигурации

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

В расширении можно:

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

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

← На главную