Как ограничить права пользователя конкретными видами документов в 1С:УНФ

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет
← На главную

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

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

Анализ стандартного механизма профилей доступа

Проанализируем ситуацию: в типовой конфигурации УНФ права строятся на основе Профилей групп доступа. Если мы откроем список доступных ролей в профиле, мы увидим, что многие из них сгруппированы по функциональным подсистемам. Часто бывает так, что одна роль дает доступ сразу к целому пакету документов раздела.

Рассмотрим основные ограничения стандартного подхода:

  1. Избыточность: Выбирая роль «Продажи», вы автоматически открываете пользователю доступ к справочникам, отчетам и документам, которые ему могут быть не нужны.
  2. Взаимосвязь данных: Документ Расходная накладная не может существовать в вакууме. Для его корректного заполнения пользователю нужны права на чтение справочников Контрагенты, Номенклатура, Склады, Организации и Договоры.
  3. Базовые права: Чтобы программа просто запустилась, пользователю необходим набор системных ролей (например, «Запуск тонкого клиента», «Чтение общей нормативно-справочной информации»).

Метод 1: Настройка «микро-ролей» в типовом профиле

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

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

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

Метод 2: Формирование «узкого коридора» через интерфейс

Выясним причину, почему пользователь «лезет не туда». Часто это происходит из-за того, что кнопки лишних документов просто маячат перед глазами. Мы можем скрыть их визуально. Это не заменяет ограничение прав, но создает комфортную рабочую среду.

Разберем шаги по настройке интерфейса под конкретного пользователя:

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

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

Метод 3: Использование расширений конфигурации (Программный метод)

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

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

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


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

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

Метод 4: Ограничение через «Состояния документов»

В современных версиях УНФ реализован механизм управления состояниями. Мы можем настроить права так, чтобы на определенных этапах (статусах) документ становился недоступен для изменения конкретным пользователям. Рассмотрим этот сценарий:

  1. В настройках раздела «Продажи» включим использование состояний заказов и накладных.
  2. В справочнике Состояния заказов покупателей для конкретных статусов (например, «Завершен» или «К отгрузке») установим запрет редактирования для определенных профилей.

Этот метод не скроет сам документ, но обеспечит сохранность данных в «узком коридоре» бизнес-процесса.

Проблема зависимых данных: на что обратить внимание

При настройке прав на Расходную накладную обязательно проверьте доступ к следующим объектам, без которых работа будет невозможна:

Таким образом, для качественного ограничения прав в УНФ мы рекомендуем комбинированный подход: создание минималистичного Профиля групп доступа, очистку Интерфейса под пользователем и, при необходимости, использование Расширения для тонкой настройки прав, которые не предусмотрены «из коробки».

← На главную