Права пользователей 1С 8.3: от роли в конфигурации до профиля группы доступа

· 11 мин

Содержание

Роль в 1С — это набор разрешений на объекты конфигурации: какие документы, справочники и отчёты пользователь может читать, менять, проводить и удалять. Права разных ролей складываются: если хотя бы одна роль пользователя разрешает действие, оно разрешено. Запретить что-то «поверх» другой роли нельзя. В типовых конфигурациях на БСП роли вручную не раздают — права настраивают через Администрирование → Настройки пользователей и прав, где роли собраны в профили групп доступа.

Типичная ситуация: новому бухгалтеру по расчётам дали профиль «Бухгалтер», а он видит зарплату директора. Или наоборот, кладовщик при проведении получает Нарушение прав доступа!. Оба случая решаются одинаково — нужно понимать, как роль превращается в конкретные права пользователя и где этот механизм настраивается.

Роль в 1С: что это за объект и зачем он нужен

Роль живёт в конфигурации, в ветке Общие → Роли дерева метаданных. Это не пользователь и не должность, а матрица «объект — право». Сама по себе роль ничего не делает, пока её не назначат пользователю информационной базы.

Цепочка выглядит так:

  1. 🧩 Разработчик описывает роли в Конфигураторе: «Добавление и изменение счетов-фактур», «Чтение кадровых данных» и т. п.
  2. 👤 Администратор базы создаёт пользователя.
  3. 🔑 Пользователю назначают набор ролей — напрямую или через группы доступа.
  4. ✅ При каждом обращении к данным платформа проверяет: есть ли нужное право хотя бы в одной роли.

У роли три уровня настроек:

УровеньЧто задаётПример
Права на конфигурацию в целомРежимы запуска и общие возможностиТонкий клиент, Веб-клиент, Администрирование, Вывод
Права на объектыДействия с конкретным документом, справочником, регистромЧтение, Изменение, Проведение
Ограничения на уровне записей (RLS)Какие именно строки доступныДокументы только своей организации

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

Как роли действуют на объекты конфигурации

Для каждого объекта в роли есть свой список прав. У документа он самый длинный, у константы — короткий. Права делятся на две группы.

Основные (базовые) права — действуют на любое обращение к данным, в том числе из кода:

  • 📖 Чтение
  • ➕ Добавление
  • ✏️ Изменение
  • 🗑️ Удаление
  • 📌 Проведение и Отмена проведения (у документов)

Интерактивные права — касаются только действий пользователя в формах: Просмотр, Редактирование, Интерактивное добавление, Интерактивная пометка удаления, Интерактивное проведение и другие.

Интерактивное право работает только поверх основного. Нельзя дать «Просмотр» без «Чтения»: Конфигуратор сам снимет зависимую галочку, если убрать базовую. Обратная комбинация возможна и полезна: «Чтение» без «Просмотра» позволяет коду читать справочник при проведении документа, а сам пользователь список этого справочника не откроет.

Как складываются несколько ролей

Платформа объединяет права всех ролей пользователя по принципу «ИЛИ». Отсюда практическое правило:

Нельзя выдать широкую роль и «урезать» её второй ролью. Если одна роль разрешает изменять документ, вторая роль без этого права ничего не отменит. Сужать доступ можно только набором ролей поменьше или ограничениями на уровне записей.

Ограничения на уровне записей (RLS)

Галочка «Чтение» открывает весь объект целиком. Чтобы пользователь видел документы только своей организации или своего склада, к праву добавляют условие на языке запросов — ограничение доступа к данным. Его задают для четырёх основных прав: Чтение, Добавление, Изменение, Удаление.

Платформа подставляет это условие в каждый запрос к таблице. Записи, не прошедшие условие, пользователь просто не видит. Для повторяющихся условий в роли есть шаблоны ограничений — их пишут один раз и вызывают у многих объектов.

Свойства самой роли

В палитре свойств роли есть три флажка, которые сильно влияют на итог:

  • Устанавливать права для новых объектов — новые объекты, добавленные в конфигурацию, сразу получат все права в этой роли. Удобно для полной роли, опасно для узкой.
  • Устанавливать права для реквизитов и табличных частей по умолчанию — реквизиты наследуют права своего объекта.
  • Независимые права подчиненных объектов — права на реквизиты настраиваются отдельно от прав объекта.

💡 Для узких пользовательских ролей первый флажок лучше снимать. Иначе после обновления конфигурации роль «Кассир» внезапно откроет новый кадровый документ.

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

Бухгалтерия 3.0, ЗУП 3.1, УТ 11 и другие решения на Библиотеке стандартных подсистем (БСП) содержат сотни ролей. Работать с ними поштучно неудобно, поэтому поверх ролей есть ещё два уровня:

ОбъектГде находитсяЧто это
РольКонфигуратор, Общие → РолиЭлементарный набор прав
Профиль групп доступаАдминистрирование → Настройки пользователей и прав → Профили групп доступаНабор ролей под должность
Группа доступаАдминистрирование → Настройки пользователей и прав → Группы доступаПрофиль + список участников + ограничения (организации, склады и т. п.)

Две роли стоят особняком:

  • 🛡️ ПолныеПрава — доступ ко всем данным конфигурации.
  • ⚙️ АдминистраторСистемы — администрирование базы: пользователи, обновление, обслуживание.

Обе входят в поставляемый профиль «Администратор». Пользователь с этим профилем видит всё и может раздавать права другим.

Остальные поставляемые профили зависят от конфигурации. В бухгалтерии есть, например, «Бухгалтер» и «Главный бухгалтер», в ЗУП — профили кадровика и расчётчика. Точный список откройте в форме «Профили групп доступа»: поставляемые профили там отмечены отдельно, их нельзя изменить, но можно скопировать.

Как настроить права пользователя в режиме 1С:Предприятие

Этот путь подходит для любой типовой конфигурации на БСП и не требует Конфигуратора.

Шаг 1. Подберите или соберите профиль

  1. Откройте Администрирование → Настройки пользователей и прав → Профили групп доступа.
  2. Найдите поставляемый профиль, ближайший к должности.
  3. Если он подходит не полностью — скопируйте его командой копирования в списке. Поставляемый профиль редактировать нельзя, копию — можно.
  4. В копии на вкладке с разрешёнными действиями (ролями) снимите лишние роли и отметьте нужные.
  5. На вкладке ограничений доступа укажите, по каким видам ограничивать доступ: организации, склады, физические лица и т. п. Набор видов зависит от конфигурации.

Шаг 2. Создайте группу доступа

  1. Откройте Администрирование → Настройки пользователей и прав → Группы доступа.
  2. Создайте группу, выберите профиль из шага 1.
  3. Добавьте участников.
  4. Если в профиле включены ограничения — заполните значения. Например, для вида «Организации» укажите одну организацию, к которой нужен доступ.

Шаг 3. Включите ограничения на уровне записей

Ограничения по организациям и складам начинают работать только после включения флажка Ограничивать доступ на уровне записей в разделе Администрирование → Настройки пользователей и прав. Без него значения в группах доступа хранятся, но не применяются.

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

Шаг 4. Проверьте результат

В карточке пользователя откройте раздел прав доступа: там видно, в каких группах он состоит и какие роли получил. Самая надёжная проверка — войти под этим пользователем и пройти его рабочий день: открыть списки, провести документ , сформировать отчёт.

Как создать свою роль: Конфигуратор или расширение

Своя роль нужна, когда ни одна поставляемая не даёт нужного сочетания прав. Например, пользователь должен только смотреть один отчёт и ничего больше.

Вариант 1. Роль в расширении (для типовых конфигураций)

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

  1. Откройте Конфигуратор: Конфигурация → Расширения конфигурации.
  2. Создайте новое расширение и откройте его дерево.
  3. Заимствуйте объекты, на которые нужны права: правая кнопка на объекте основной конфигурации → Добавить в расширение.
  4. В ветке Общие → Роли расширения создайте роль и отметьте права на заимствованные объекты.
  5. Сохраните расширение. Оно применится при следующем запуске сеанса.
  6. В режиме 1С:Предприятие откройте свой профиль групп доступа — роль из расширения появится в списке разрешённых действий. Отметьте её.

Вариант 2. Роль в основной конфигурации (для своих разработок)

Если конфигурация снята с поддержки или написана под вас:

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

Обновление конфигурации базы данных требует монопольного доступа или динамического обновления. Делайте его, когда пользователи не работают, и только после резервной копии.

💡 Для обзора прав всех ролей сразу в Конфигураторе есть команда «Все роли» в контекстном меню ветки Роли. Она показывает матрицу «объект × роль» — удобно искать, какая роль даёт лишнее право.

Типичные ошибки при настройке ролей

Диагностика: выберите симптом

Ещё одна частая ловушка — дать пользователю профиль «Администратор» «на время, пока разберёмся». Через полгода у бухгалтера по-прежнему полные права, а журнал регистрации показывает изменения в закрытом периоде от его имени.

Роли и безопасность данных

Роли — первая линия защиты, но не единственная. Вот что стоит проверить, если в базе есть зарплата, персональные данные или коммерческие цены.

Права, которые открывают больше, чем кажется

ПравоЧем опасно
АдминистрированиеУправление пользователями и всеми данными
Интерактивное открытие внешних обработок и отчётовПроизвольный код в обход ограничений интерфейса
ВыводПечать, сохранение в файл и копирование содержимого форм
Толстый клиент, Внешнее соединениеДоступ к базе мимо привычного интерфейса

Принципы, которые работают

  • 🔒 Минимум прав. Начинайте с узкого профиля и добавляйте роли по запросу, а не наоборот.
  • 👥 Не делите учётные записи. Одна учётка на троих — ни разграничения, ни следов в журнале.
  • 📋 Аудит. Журнал регистрации фиксирует, кто и что менял. Раз в квартал сверяйте состав групп доступа со штатным расписанием.
  • 🧹 Увольнение. Сразу снимайте у уволенного флажок входа в программу. Удалять пользователя не нужно: его имя должно остаться в истории документов.
  • 🛑 Защита от опасных действий. В карточке пользователя информационной базы есть флажок защиты от опасных действий: платформа предупреждает при открытии внешних обработок и других рискованных операциях. Не отключайте его без причины.

Привилегированный режим — где роль не работает

Код в модулях с флажком «Привилегированный» и код после УстановитьПривилегированныйРежим(Истина) выполняется без проверки прав. Так устроены многие служебные механизмы типовых конфигураций. Для своих доработок это значит: если вы открыли привилегированный режим, проверку прав нужно делать в коде самостоятельно.

Автоматизация: проверка и раздача ролей кодом

Ручная настройка неудобна, когда пользователей десятки. Встроенный язык даёт доступ к пользователям и их ролям.

Отчёт «кто какие роли получил»

Код выполняется на сервере под пользователем с правом «Администрирование». Подходит для внешней обработки:

&НаСервере
Процедура ВывестиРолиПользователейНаСервере()
    Для Каждого Пользователь Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
        Имена = Новый Массив;
        Для Каждого Роль Из Пользователь.Роли Цикл
            Имена.Добавить(Роль.Имя);
        КонецЦикла;
        Сообщить(Пользователь.Имя + ": " + СтрСоединить(Имена, ", "));
    КонецЦикла;
КонецПроцедуры

Обработка ничего не меняет — только читает. Это удобный снимок для аудита перед увольнением сотрудника или проверкой.

Проверка прав в своём коде

Две функции платформы закрывают почти все сценарии:

// Есть ли у текущего пользователя конкретная роль
Если РольДоступна("ПолныеПрава") Тогда
    // ...
КонецЕсли;

// Есть ли право на объект, независимо от того, какой ролью оно дано
Если Не ПравоДоступа("Изменение", Метаданные.Справочники.Номенклатура) Тогда
    ВызватьИсключение "Недостаточно прав для изменения номенклатуры";
КонецЕсли;

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

Массовое назначение

В собственной конфигурации без БСП роль можно добавить пользователю так: получить пользователя через ПользователиИнформационнойБазы.НайтиПоИмени(), вызвать Роли.Добавить(Метаданные.Роли.ИмяРоли) и Записать().

В типовых конфигурациях так делать не стоит: БСП пересчитает роли по группам доступа, и назначение пропадёт. Там массовая раздача прав — это добавление пользователей в группы доступа. Список участников группы заполняется подбором, а одного пользователя можно включить сразу в несколько групп.

Частые вопросы

Можно ли запретить действие ролью, если другая роль его разрешает?
Нет. Права ролей только складываются. Чтобы сузить доступ, уберите роль с широкими правами или используйте ограничение на уровне записей.
Сколько ролей можно назначить одному пользователю?
Жёсткого практического предела нет. Но чем больше ролей с ограничениями на уровне записей, тем сложнее итоговые запросы и тем медленнее работают списки.
Чем профиль групп доступа отличается от роли?
Роль — объект конфигурации, её меняет разработчик. Профиль — набор ролей в данных базы, его настраивает администратор в режиме 1С:Предприятие без Конфигуратора.
Нужно ли перезапускать сервер 1С после изменения прав?
Нет. Изменения в группах доступа и профилях применяются при новом входе пользователя. Перезапуск сервера ради этого обрывает сеансы всех пользователей и ничего не даёт.
Сохранится ли своя роль после обновления типовой конфигурации?
Если роль в расширении — да, расширение подключается к новой версии. Проверьте после обновления, что заимствованные объекты не переименованы и расширение применяется без ошибок.