В практике администрирования 1С:Управление нашей фирмой (УНФ) часто возникает задача создать для сотрудника максимально ограниченную рабочую среду. Типичный пример: менеджер или кладовщик должен работать только с тремя документами — Заказ покупателя, Расходная накладная (Реализация) и Счет-фактура. При этом любые другие разделы программы, такие как производство, налоги или финансовые отчеты, должны быть полностью скрыты.
Разберем подробно, почему стандартные профили прав доступа не всегда позволяют решить эту задачу «в один клик», и рассмотрим пошаговые методы создания того самого «узкого коридора» для пользователя.
Проанализируем ситуацию: в типовой конфигурации УНФ права строятся на основе Профилей групп доступа. Если мы откроем список доступных ролей в профиле, мы увидим, что многие из них сгруппированы по функциональным подсистемам. Часто бывает так, что одна роль дает доступ сразу к целому пакету документов раздела.
Рассмотрим основные ограничения стандартного подхода:
Расходная накладная не может существовать в вакууме. Для его корректного заполнения пользователю нужны права на чтение справочников Контрагенты, Номенклатура, Склады, Организации и Договоры.Попробуем собрать нужный нам доступ вручную, не прибегая к программированию. Для этого выполним следующие действия:
Добавление и изменение документа Заказ покупателяДобавление и изменение документа Расходная накладнаяЧтение документа Счет-фактураБазовые права УНФ или аналогичные системные роли, иначе пользователь получит ошибку при входе.Проанализировав этот метод, мы поймем, что он трудозатратен, так как придется методом проб и ошибок определять, каких прав на справочники не хватает пользователю для проведения документа.
Выясним причину, почему пользователь «лезет не туда». Часто это происходит из-за того, что кнопки лишних документов просто маячат перед глазами. Мы можем скрыть их визуально. Это не заменяет ограничение прав, но создает комфортную рабочую среду.
Разберем шаги по настройке интерфейса под конкретного пользователя:
Помните: Если у пользователя остались права на документ, он все равно сможет найти его через форму «Функции для технического специалиста» (если она не запрещена) или через глобальный поиск. Поэтому интерфейсная настройка — это лишь дополнение к ролевой модели.
Если типовые средства не позволяют добиться нужного результата (например, нужно разрешить видеть только «свои» документы без включения сложного механизма RLS), оптимальным решением станет создание расширения. Это позволит не снимать основную конфигурацию с поддержки. Для такой задачи можно использовать расширение для фильтрации заказов, реализаций и счетов-фактур по ответственному менеджеру.
Посмотрим на пример логики, которую можно реализовать в расширении. Мы можем создать одну общую роль «ТолькоТриДокумента» и программно ограничивать видимость элементов интерфейса.
Проанализируем пример кода для управления доступностью интерфейса при запуске системы:
// В модуле управляемого приложения или через расширение
Процедура ПриНачалеРаботыСистемы()
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Если Найти(Пользователь.Роли, "ТолькоТриДокумента") > 0 Тогда
// Программное управление видимостью подсистем
// Или открытие специализированного рабочего места (АРМ)
ОткрытьФорму("Обработка.РабочееМестоМенеджера.Форма");
КонецЕсли;
КонецПроцедуры
Использование сторонних расширений (как упоминалось в обсуждении форума) также является выходом. Такие расширения позволяют настраивать видимость объектов Метаданных (документов, журналов, справочников) в разрезе конкретных пользователей без написания кода. Для этой цели подойдёт решение для управления доступом к формам документов и справочников.
В современных версиях УНФ реализован механизм управления состояниями. Мы можем настроить права так, чтобы на определенных этапах (статусах) документ становился недоступен для изменения конкретным пользователям. Рассмотрим этот сценарий:
Этот метод не скроет сам документ, но обеспечит сохранность данных в «узком коридоре» бизнес-процесса.
При настройке прав на Расходную накладную обязательно проверьте доступ к следующим объектам, без которых работа будет невозможна:
Банковские счета, Кассы (если есть оплата), Спецификации (если документы связаны с производством).Запасы, Продажи, Расчеты с покупателями. Пользователю нужны права на чтение этих регистров, чтобы видеть остатки и актуальные долги в формах документов.Таким образом, для качественного ограничения прав в УНФ мы рекомендуем комбинированный подход: создание минималистичного Профиля групп доступа, очистку Интерфейса под пользователем и, при необходимости, использование Расширения для тонкой настройки прав, которые не предусмотрены «из коробки».