В 1С-Битрикс права можно назначать не только на инфоблок целиком, но и на отдельные разделы (секции) его дерева. Это позволяет разным группам редактировать только свои ветки каталога или структуры.
Когда нужны права на отдельные разделы
Стандартные права инфоблока действуют на весь инфоблок сразу: если группа получила уровень «Изменение», она может править любой элемент и любой раздел. Такой подход не годится, когда структура большая, а редакторов много.
Ограничение прав на отдельные разделы применяют, когда нужно:
- дать региональным менеджерам доступ только к своей ветке каталога;
- закрепить за контент-редакторами конкретные рубрики новостей или статей;
- скрыть служебные или черновые разделы от части сотрудников;
- разрешить одним группам публикацию, а другим — только предложение изменений внутри одной ветки дерева.
Работает это через механизм расширенных прав — по умолчанию он выключен, и права назначаются только на инфоблок в целом.
Включение расширенного управления правами
Чтобы права можно было назначать на секции дерева, сначала включите расширенный режим в карточке инфоблока:
- Откройте Контент → Инфоблоки → Типы инфоблоков и выберите нужный инфоблок для редактирования.
- Перейдите на вкладку «Доступ» (в старом интерфейсе — «Права доступа»).
- Установите переключатель в положение «Расширенное управление правами».
- Сохраните инфоблок.
После включения этого режима у разделов и элементов появляется собственная вкладка «Доступ», а привычные уровни доступа (Чтение, Изменение, Полный доступ) заменяются гибким набором операций и ролей.
Важно: расширенные права влияют не только на административную часть, но и на выборки в публичной части — учитывайте это при работе компонентов каталога.
Назначение прав на конкретный раздел
Когда расширенный режим включён, права на отдельную секцию задаются прямо в карточке раздела:
- Откройте дерево инфоблока: Контент → [тип инфоблока] → [инфоблок] и перейдите в нужный раздел.
- Отредактируйте раздел и откройте вкладку «Доступ».
- Снимите флажок «Наследовать права от родительского раздела», если хотите задать собственные права.
- Добавьте группу пользователей или конкретного пользователя и выберите для неё роль доступа.
- Сохраните раздел.
Так одна ветка дерева может быть открыта на изменение только определённой группе, а остальные разделы останутся для неё недоступными.
Наследование прав по дереву разделов
Права в расширенном режиме работают по дереву сверху вниз. Дочерний раздел по умолчанию наследует настройки родителя, а тот — настройки инфоблока.
Логика наследования:
- если у раздела включено наследование — он получает все права родительской секции;
- если наследование отключено — раздел использует только собственный список прав;
- собственные права раздела складываются с унаследованными, а не заменяют их (доступ определяется по максимально разрешающей записи для группы).
Поэтому, чтобы полностью закрыть ветку для группы, недостаточно «не давать» ей права в разделе — нужно убедиться, что группа не получает доступ выше по дереву или на уровне самого инфоблока.
Роли и операции доступа
В расширенном режиме доступ описывается ролями, за которыми стоит набор элементарных операций. Основные предустановленные роли:
| Роль | Что позволяет |
|---|---|
| Доступ закрыт | Раздел и его содержимое недоступны группе полностью. |
| Чтение | Просмотр раздела и элементов без права редактирования. |
| Изменение элементов | Редактирование и добавление элементов внутри раздела. |
| Изменение разделов | Управление подразделами: создание, переименование, удаление. |
| Полный доступ | Все операции, включая изменение прав самого раздела. |
При необходимости в разделе Настройки → Настройки продукта → Права доступа можно создать собственную роль с точным набором операций (например, только публикация без удаления).
Частые ошибки
Типичные проблемы при разграничении прав на разделы:
- Забыли включить расширенный режим. Пока стоит обычное управление правами, вкладки «Доступ» у разделов нет и права секций не действуют.
- Права инфоблока перекрывают ограничения. Если на уровне инфоблока группе выдан «Полный доступ», закрыть отдельный раздел уже не получится — уберите избыточные права инфоблока.
- Оставили включённым наследование. Раздел продолжает получать права родителя, хотя вы задали собственные — снимите флажок наследования.
- Не учли группу «Все пользователи». Разрешение для неё действует на всех, включая тех, кого вы пытаетесь ограничить.
- Кэш публичной части. После смены прав старые выборки могут отдавать прежний результат — сбросьте кэш компонентов и
obEl->GetList()отработает уже с новыми правами. - Ограничение только в админке. В публичной части компоненты по умолчанию не проверяют права инфоблока — включите параметр учёта прав в настройках компонента, если это нужно.
Проверка результата
После настройки обязательно проверьте права под реальной учётной записью:
- Создайте тестового пользователя и добавьте его только в целевую группу.
- Войдите под ним (или используйте режим просмотра от имени пользователя) и откройте инфоблок.
- Убедитесь, что доступны только разрешённые разделы, а закрытые ветки не отображаются или недоступны на редактирование.
- Проверьте операции: создание, изменение и удаление элементов и подразделов.
Если результат не совпадает с ожидаемым — вернитесь к правам инфоблока и настройкам наследования: почти всегда лишний доступ приходит именно оттуда.
Итог
Ограничение прав на отдельные разделы инфоблока в 1С-Битрикс решается включением расширенного управления правами и назначением ролей на нужные секции дерева.
Ключевые моменты:
- расширенный режим включается в карточке инфоблока на вкладке «Доступ»;
- права наследуются сверху вниз и складываются — учитывайте уровень инфоблока и родительские секции;
- для точечных сценариев создавайте собственные роли с нужным набором операций;
- всегда проверяйте итог под тестовой учётной записью и сбрасывайте кэш.
Такой подход позволяет безопасно распределить редактирование большого каталога или структуры между несколькими командами.