Каталог решений - Функциональные опции. Управление доступным функционалом для пользователей

Функциональные опции. Управление доступным функционалом для пользователей

Функциональные опции. Управление доступным функционалом для пользователей

В наличии

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

Категория:

Описание

Перерыл полтора интернета, но вменяемой доходчивой инструкции не нашел. Пришлось доходить самому. Итак…

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

Вариант реализации (допустим это самодельная база и все делаем с нуля):

1) Создаем справочник Пользователи.

2) Создаем параметр сеанса ТекущийПользователь (тип  справочник Пользователи).

3) ПриНачалеРаботыСистемы получаем список пользователей ИБ и добавляем новых в этот справочник.

4) В модуле сеанса в процедуре УстановкаПараметровСеанса по ИмяПользователя()  устанавливаем параметр сеанса ТекущийПользователь

5) Создаем регистр сведений НастройкаФункционала. Измерение Пользователь , ресурсы ПерваяПоловина ( булево) ВтораяПоловина (булево)

6) Создаем 2 функциональных опции . Назовем их ПерваяПоловинаФункционала и ВтораяПоловинаФункционала.  Хранение указываем РегистрСведений.НастройкаФункционала.Ресурс.ПерваяПоловина для ФО ПерваяПоловинаФункционала и , соответственно, РегистрСведений.НастройкаФункционала.Ресурс.ВтораяПоловина для для ФО ВтораяПоловинаФункционала. Галку Привелигированный режим при получении  снимаем.  На закладке состав указываем в наших ФО объекты, на которые они влияют.

7) Создаем Параметр функциональной опции. Назовем его ПараметрДоступногоФункционала. Использование указываем РегистрСведений.НастройкаФункционала.Измерение.Пользователь.  Это означает, что по нашему регистру сведений значение галок будет считываться из строки с измерением равным пользователю. Если нужно , чтобы результат зависил от нескольких параметров — делаем несколько параметров функциональных опций и в регистре , соответственно, несколько измерений.

8) И наконец, чтобы все это безобразие взлетело, в модуле приложения в ПередНачаломРаботыСистемы устанавливаем значение функциональных опций 

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

где ПолучитьПользователяПоЛогину() по  ИмяПользователя()  получает ссылку справочника Пользователи.

В итоге получим следующее:

В регистре сведений НастройкаФункционала добавляем записи для каждого пользователя и ставим галки на том функционале который должен быть ему доступен. Когда пользователь входит в программу, он видит только тот функционал, который ему разрешили.

has been added to your cart:
Оформление заказа