Как устроены роли 1С и почему пользователю «не хватает прав»: от профиля до ограничений на записи

· 9 мин

Содержание

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

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

Как устроена система прав: пользователь, группа, профиль, роль

Права в типовой 1С собираются по цепочке из пяти звеньев. Каждое отвечает за своё.

ЗвеноГде живётЗа что отвечает
Пользователь информационной базыСписок пользователей платформыЛогин, пароль, аутентификация, итоговый список ролей
Пользователь (справочник)Режим «Предприятие»Карточка сотрудника в программе, связь с физлицом
Группа доступаНастройки пользователей и правКто входит в группу и к каким организациям есть доступ
Профиль группы доступаТам жеКакие роли входят в набор
РольКонфигуратор, ветка «Роли»Конкретные права на объекты и ограничения на записи

Работает это так. Администратор включает пользователя в группу доступа, например «Бухгалтеры ООО Ромашка». Группа ссылается на профиль «Бухгалтер». Профиль содержит десяток ролей. Программа складывает роли всех групп, в которые входит человек, и записывает итоговый список в пользователя информационной базы.

Права в 1С только суммируются. Запрещающих ролей нет. Если одна роль даёт право на изменение документа, а в другой его нет, пользователь документ изменить сможет. Отнять право можно, только убрав роль, которая его даёт.

Из этого правила вытекает главный приём администратора: не «запрещать лишнее», а собирать профиль из минимального набора ролей под должность.

Что внутри роли: права на объекты и ограничения

Роль открывают в конфигураторе: Конфигурация → Общие → Роли. Слева дерево объектов конфигурации, справа — список прав выбранного объекта.

Основные и интерактивные права

У каждого объекта два слоя прав:

  • 🔹 основные — Чтение, Добавление, Изменение, Удаление. Действуют всегда, в том числе при обращении из кода, обработок и обменов;
  • 🔹 интерактивные — Просмотр, Редактирование, Интерактивное добавление, Интерактивная пометка удаления, Интерактивное удаление. Работают, когда человек сам нажимает кнопки в форме;
  • 🔹 права документов — Проведение, Отмена проведения, Интерактивное проведение, Интерактивное проведение неоперативное и другие.

Интерактивное право без основного не работает . Просмотр требует Чтения, Редактирование требует Изменения. Конфигуратор сам проставит основное право, если отметить интерактивное.

Отдельно стоит Интерактивное удаление. В типовых его почти никому не дают: объекты сначала помечают на удаление, а потом удаляют обработкой с проверкой ссылок. Прямое удаление ломает ссылочную целостность.

Права на уровне конфигурации

На корневом узле дерева — права на всю базу. Без них пользователь не запустит программу или не сможет делать служебные действия:

  • 🖥️ Тонкий клиент, Веб-клиент, Толстый клиент — каким клиентом можно входить;
  • 🔌 Внешнее соединение, Automation — подключение из других программ;
  • ⚙️ Администрирование, Администрирование данных, Монопольный режим, Обновление конфигурации базы данных;
  • 📂 Интерактивное открытие внешних обработок и Интерактивное открытие внешних отчетов;
  • 🧰 Режим «Все функции» — доступ к меню «Все функции» со всеми объектами базы.

Флажки свойств роли

Внизу формы роли три флажка. Их смысл часто путают.

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

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

Настройка и назначение ролей пользователю в БП 3.0 и ЗУП 3.1

В типовых конфигурациях роль назначают через профиль. Путь общий: Администрирование → Настройки пользователей и прав.

Упрощённый режим: профили прямо в карточке

Если в настройках не включено использование групп доступа, всё делается из карточки пользователя:

  1. Откройте Администрирование → Настройки пользователей и прав → Пользователи.
  2. Откройте карточку нужного пользователя.
  3. Нажмите кнопку Права доступа.
  4. Отметьте флажками профили: «Бухгалтер», «Главный бухгалтер», «Кассир» и т. п.
  5. Нажмите Записать.

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

Полный режим: группы доступа

Когда в базе несколько организаций или нужно ограничивать доступ по данным, включите флажок Группы доступа в разделе настроек пользователей и прав. Порядок такой:

  1. Откройте Группы доступа и создайте группу.
  2. Задайте наименование, понятное без расшифровки: «Кадровики — Ромашка».
  3. Выберите профиль.
  4. На вкладке участников добавьте пользователей или группы пользователей.
  5. Если включено ограничение на уровне записей, на вкладке ограничений укажите разрешённые организации.
  6. Запишите группу.

Когда новые права начнут действовать

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

Не назначайте роли через конфигуратор (Администрирование → Пользователи, вкладка «Прочие») в базах на БСП. При следующей записи группы доступа программа пересчитает роли из профилей, и ручные отметки пропадут. Итог — роль «то есть, то нет».

Свой профиль и своя роль: когда типовых не хватает

Частая задача: кассиру нужен ещё один отчёт, а давать ему профиль бухгалтера целиком нельзя.

Шаг 1. Скопируйте профиль

Поставляемые профили («Бухгалтер», «Администратор» и другие) изменять нельзя: их состав задаёт разработчик, и он обновляется вместе с конфигурацией. Поэтому:

  1. Откройте Профили групп доступа.
  2. Выделите похожий профиль и скопируйте его.
  3. Переименуйте копию: «Кассир + отчёт по кассе».
  4. На вкладке разрешённых действий (ролей) отметьте недостающую роль.

Часто нужная роль в конфигурации уже есть. Ищите её по названию объекта: роли типовых называются в стиле ДобавлениеИзменение…, Чтение…, Использование….

Шаг 2. Если подходящей роли нет — создайте её в расширении

Менять типовую конфигурацию ради одной роли невыгодно: конфигурация снимется с поддержки, обновления станут дороже. Правильный путь — расширение конфигурации (доступны с платформы 8.3.6):

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

Роль расширения может только добавить права. Убрать право, которое даёт типовая роль, расширением нельзя: права суммируются.

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

Роль отвечает на вопрос «к какому объекту есть доступ». RLS (Record Level Security) отвечает на вопрос «к каким записям этого объекта». Например, бухгалтер видит документы только своей организации.

Как включить в типовой

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

Как это выглядит внутри роли

В конфигураторе ограничение задают на права Чтение, Добавление, Изменение, Удаление в колонке «Ограничение доступа к данным». Это условие на языке запросов, которое платформа подставляет в каждый запрос к таблице. Упрощённый пример на параметре сеанса:

ГДЕ Ответственный = &ТекущийПользователь

В типовых конфигурациях условия не пишут руками: используются шаблоны ограничений БСП (#ПоЗначениям и подобные), а разрешённые значения хранятся в регистрах и заполняются из групп доступа.

Цена ограничений

  • 🐢 Каждый запрос получает дополнительное условие. На больших базах отчёты замедляются заметно.
  • 🧩 Отчёты и обработки должны читать данные с ключевым словом РАЗРЕШЕННЫЕ. Если в доработке его забыли, пользователь получает ошибку Нарушение прав доступа! вместо отчёта без лишних строк.
  • 📌 Включайте RLS только тогда, когда реально нужно разделять данные между людьми, а не «на всякий случай».

Почему не хватает прав: диагностика проблем с доступом

Сообщение о нехватке прав почти всегда означает одно из трёх: нет роли, нет основного права в роли или срабатывает ограничение на записи. Разбирайте по шагам, от простого к сложному.

  1. Пользователь перезашёл? Без нового сеанса изменения в группах не действуют.
  2. Какие роли у него реально есть. В карточке пользователя есть отчёт по правам доступа: он показывает итоговые права на объекты и через какую группу и профиль они пришли.
  3. В какой роли есть право. В конфигураторе на ветке «Роли» откройте контекстное меню и выберите Все роли. Откроется матрица «объект × роли»: сразу видно, какая роль даёт Чтение нужного регистра.
  4. Проверка из кода. В режиме отладки или в консоли выполните:
Сообщить(ПравоДоступа("Чтение", Метаданные.Документы.ПоступлениеТоваровУслуг));
Сообщить(РольДоступна("ПолныеПрава"));
  1. Журнал регистрации. Администрирование → Обслуживание → Журнал регистрации, отбор по пользователю и времени ошибки: видно, на каком объекте упала операция.
Диагностика: выберите симптом

Правила администрирования ролей и прав доступа

  • 👤 Одна должность — один профиль. Не собирайте человеку пять профилей «чтобы было». Через год никто не вспомнит, откуда у кассира право удалять контрагентов.
  • 🗂️ Группы доступа по смыслу, а не по людям. «Кадровики — Ромашка» вместо «Иванова». Новый сотрудник добавляется в готовую группу за минуту.
  • 🔒 Профиль «Администратор» — двум людям максимум. В нём роли ПолныеПрава и АдминистраторСистемы, а с ними обходятся любые ограничения на записи.
  • 🧾 Свои профили — с понятным названием и комментарием. Пишите в комментарии, зачем профиль создан и кто его согласовал.
  • 🧩 Свои роли — только в расширении. Типовая конфигурация остаётся на поддержке.
  • 🔄 После обновления конфигурации проверяйте свои профили. Разработчик мог разделить или переименовать типовую роль, и в копии профиля её не окажется.
  • 📋 Раз в квартал — ревизия. Уволенным снимайте флажок «Вход в программу разрешён» и убирайте их из групп доступа, а не удаляйте карточки: на них ссылаются документы.
Можно ли запретить пользователю одно действие, не трогая остальные роли?
Только убрав роль, которая даёт это право, и выдав вместо неё более узкую. Запрещающих ролей в 1С нет: права всех ролей складываются.
Чем профиль отличается от группы доступа?
Профиль — это набор ролей, «что можно делать». Группа доступа — это профиль плюс список людей и разрешённые значения, например организации: «кому и с какими данными».
Почему у администратора не работают ограничения по организациям?
Роль ПолныеПрава снимает ограничения на уровне записей. Проверять настройку RLS нужно под обычным пользователем.
Нужен ли конфигуратор, чтобы назначить роль?
Нет. В типовых конфигурациях на 8.3 роли назначают в режиме «Предприятие» через профили и группы доступа. Конфигуратор нужен только для создания новой роли.
Сохранятся ли мои профили после обновления конфигурации?
Да, свои профили и группы доступа обновление не удаляет. Но состав поставляемых ролей может измениться, поэтому после крупного обновления проверьте копии профилей.