Skip to main content

Роли

В 1С существует два основных принципа:

  1. Запрещено всё, что явно не разрешено.
  2. Нет механизмов "запрета", есть только механизмы "разрешения". Если право дано одной ролью, его невозможно отнять другой.

1. Права доступа — это минимальная и единственная единица, определяющая доступ к чему-либо (объекту, реквизиту, режиму работы). Права связаны иерархически: чтобы дать право низкого уровня (например, "Редактирование"), нужно дать права более высокого уровня ("Чтение", "Изменение").

2. Роли, профили и группы доступа — это обвязка для удобной группировки и выдачи прав.

  • Роль — набор связанных прав.
  • Профили доступа и Группы доступа (в типовых решениях) — надстройки над ролями для массового назначения комплектов ролей пользователям.

3. Логика разрешений (пересечение ролей) — итоговые права пользователя это объединение (OR) всех прав из всех его ролей. Важно избегать ситуаций, когда одна роль даёт нежелательный доступ, который нельзя будет забрать.

4. Косвенные механизмы управления доступом

МеханизмНазначениеВлияние на доступКлючевые особенности
Функциональные опцииИнтерфейсное скрытие неиспользуемого функционала (кнопок, полей).Не влияет на реальный доступ! Пользователь может работать со скрытыми данными через обработки.Упрощает интерфейс, но не защищает данные.
RLS (Record Level Security)Фильтрация данных на уровне записей в рамках конкретной роли.Ограничивает выдачу прав, разрешая работать только с определёнными записями (напр., по организации).Это фильтр, а не запрет. Если право дано другой ролью без RLS — фильтр не сработает.
Разделение данныхФизическое разделение данных в одной ИБ для независимой работы (арендаторы, филиалы).Жёсткая фильтрация по разделителю на уровне всех запросов.Даёт выигрыш в скорости при работе внутри раздела, но резко замедляет работу при его отсутствии.
Программный кодТочечные ограничения в конкретных формах, отчетах или модулях объектов.Частично ограничивает действия в заданных сценариях (например, проверка при открытии формы).Не гарантирует полную защиту, так как данные могут быть получены другими способами (запросами, обработками).

Итог:

  • База: Правильное разбиение на роли.
  • Ограничение видимости данных: Использование RLS.
  • Частные случаи: Программный код.
  • Упрощение интерфейса: Функциональные опции.
  • Изоляция независимых данных: Разделение данных.

Для анализа итоговых прав пользователя в типовых конфигурациях используйте стандартный отчёт "Права доступа".

RLS

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

Ключевые моменты

ОписаниеВажно
УровеньРазграничение на уровне отдельных записей (строк)В отличие от ролей (объектный уровень)
ПараметрыИспользуются параметры сеанса &Параметр&ТекущийСклад, &ТекущийПользователь
Производительный режимНовая оптимизация в БСП 3.xТребует специальной настройки

Пример RLS для документа:

// Ограничение по ответственному
Ответственный = &ТекущийПользователь

Производительность:

  1. Избегать периодических регистров — сложные вычисления в RLS
  2. Использовать готовые данные — предварительно рассчитанные значения
  3. Индексы — поля в условиях RLS должны быть проиндексированы

Архитектура в типовых конфигурациях:

  1. Профили групп доступа — шаблоны настроек прав доступа, выбираются роли конфигурации
  2. Группы доступа — указывается профиль, пользователи, ограничения на уровне записей
  3. Роли конфигурации — привязываются к профилю в

Частые ошибки

  1. Сложные условия в RLS — вычисления, подзапросы
  2. Дублирование условий — в нескольких ролях для одного объекта
  3. Отсутствие индексов — на полях, используемых в RLS
  4. Использование медленных виртуальных таблиц — периодических регистров

Оптимизация RLS

Производительный режим (БСП 3.x):

  • Предварительные вычисления — данные готовятся заранее
  • Кэширование — результаты RLS кэшируются
  • Меньше JOIN — упрощенные условия в SQL

Общие рекомендации:

  1. Простая логика — элементарные сравнения (=, IN)
  2. Использование справочников — вместо вычислений в запросе
  3. Тестирование на объеме — проверка с реальными данными

Множественные роли с RLS для одного пользователя:

  1. Разные объекты — можно
  2. Разные права — можно (чтение + запись)

Материалы