Роль 1С: как создать и настроить права в конфигураторе

Дата: 19.09.2026 04:42:56
Роли
Права доступа
Конфигуратор
Расширения конфигурации
БСП
Комментарий:
0
Платформа:
8.3
Конфигурация:
Любая
Формы:
Любые

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

Когда до ролей доходит дело:

  • добавили справочник или отчет, а пользователи его не видят или получают «Нарушение прав доступа!»;
  • сотруднику нужен один отчет, а остальное открывать нельзя;
  • нужно запретить менять отдельное поле — цену, скидку;
  • в типовой (БП 3.0, УТ 11, ERP) не хватает роли, а снимать конфигурацию с поддержки не хочется.

Как устроены роли в платформе 8.3

Роли 1С 8.3 хранятся в ветке «Общие → Роли». Внутри роли — матрица «объекты × права» и шаблоны ограничения доступа на уровне записей. Главные правила:

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

Как создать роль 1С в конфигураторе

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

Внизу редактора роли есть флажки, влияющие на будущие доработки:

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

Какие права бывают: основные и интерактивные

Права роли 1С делятся на две группы. Основные — «Чтение», «Добавление», «Изменение», «Удаление», у документов еще «Проведение» и «Отмена проведения» — действуют на уровне данных, их проверяет любой код, включая запросы. Интерактивные — «Просмотр», «Редактирование», «Интерактивное добавление» и другие — касаются только работы через формы. Без основного права интерактивное не работает: без «Чтения» нет и «Просмотра».

Что должен делать пользовательКакие права отметить
Только смотреть справочникЧтение, Просмотр, Ввод по строке
Заводить и править элементыплюс Добавление, Изменение, Интерактивное добавление, Редактирование
Помечать на удалениеплюс Интерактивная пометка удаления, Интерактивное снятие пометки удаления
Проводить документыплюс Проведение, Отмена проведения, Интерактивное проведение, Интерактивная отмена проведения, Интерактивное изменение проведенных (без него проведенный документ не исправить); если у документа разрешено оперативное проведение — Интерактивное проведение неоперативное; Чтение и Изменение на регистры движений
Запускать отчет или обработкуИспользование, Просмотр

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

Права на реквизиты

У реквизитов и табличных частей в редакторе роли свои флажки «Просмотр» и «Редактирование». Сняли «Редактирование» у реквизита «Цена» — поле нельзя изменить, сняли «Просмотр» — пользователь его не увидит. Это интерактивные права: они управляют формами, а не хранением. Закрытые данные (себестоимость, оклады) держите в отдельном регистре со своими правами или закрывайте ограничением на уровне записей.

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

Для прав «Чтение», «Добавление», «Изменение» и «Удаление» можно задать условие на языке запросов (RLS): например, менеджер видит документы только своей организации. На проведение и интерактивные права условие не ставится. Запросы к таким данным пишут с ВЫБРАТЬ РАЗРЕШЕННЫЕ, иначе недоступная запись в выборке даст «Нарушение прав доступа!». В типовых шаблоны ограничений уже есть в ролях, а организации и склады задаются в группах доступа — см. статью о правах доступа 1С.

Роли доступа 1С в типовых конфигурациях на БСП

В БП 3.0, УТ 11, ERP, КА 2 и УНФ права раздает подсистема «Управление доступом» из БСП. Роли собраны в профили групп доступа («Бухгалтер», «Менеджер по продажам»), пользователь входит в группу доступа, а БСП сама выставляет ему роли. Роль, добавленная вручную в конфигураторе, продержится только до пересчета групп доступа.

Типичные роли на БСП:

  • ПолныеПрава и АдминистраторСистемы — у администратора;
  • БазовыеПраваБСП — минимум для работы общих механизмов;
  • ЗапускТонкогоКлиента, ЗапускВебКлиента — вход через нужный клиент;
  • ВыводНаПринтерФайлБуферОбмена, СохранениеДанныхПользователя, ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок — права корня, вынесенные в отдельные роли.

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

Как добавить роль в типовую без снятия с поддержки

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

Две оговорки. Собственная роль расширения не выдает права корня конфигурации («Администрирование», запуск клиентов) — их дают типовые роли профиля. А если расширение работает в безопасном режиме под профилем безопасности кластера, без флага полного доступа «к расширению прав доступа» и с пустым полем «Роли, ограничивающие расширение прав доступа» его роли не добавят прав на объекты конфигурации.

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

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

Проверка прав и назначение роли из кода

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

// Общий модуль «ПраваДоступаСервер».
// Свойства модуля: Сервер = Истина, остальные флажки сняты.
// Платформа 8.3.6 и выше (СтрШаблон). Вызывать в серверном контексте:
// объекты метаданных между клиентом и сервером не передаются.

// Возвращает имена ролей (включая роли подключенных расширений),
// которые дают указанное право на объект метаданных.
// Пример: РолиСПравом("Изменение", Метаданные.Справочники.Номенклатура)
Функция РолиСПравом(ИмяПрава, ОбъектМетаданных) Экспорт

	ИменаРолей = Новый Массив;
	Для Каждого Роль Из Метаданные.Роли Цикл
		Если ПравоДоступа(ИмяПрава, ОбъектМетаданных, Роль) Тогда
			ИменаРолей.Добавить(Роль.Имя);
		КонецЕсли;
	КонецЦикла;

	Возврат ИменаРолей;

КонецФункции

// Отвечает на вопрос «из какой роли у пользователя это право».
// Нужны права администратора или привилегированный режим.
Функция РолиПользователяСПравом(ИмяПользователя, ИмяПрава, ОбъектМетаданных) Экспорт

	ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
	Если ПользовательИБ = Неопределено Тогда
		ВызватьИсключение СтрШаблон("Пользователь ИБ ""%1"" не найден", ИмяПользователя);
	КонецЕсли;

	ИменаРолей = Новый Массив;
	Для Каждого Роль Из ПользовательИБ.Роли Цикл
		Если ПравоДоступа(ИмяПрава, ОбъектМетаданных, Роль) Тогда
			ИменаРолей.Добавить(Роль.Имя);
		КонецЕсли;
	КонецЦикла;

	Возврат ИменаРолей;

КонецФункции

// Только для конфигураций без БСП: добавляет роль пользователю ИБ.
// В типовых на БСП роли выдаются профилями групп доступа,
// и роль, добавленная этим способом, будет перезаписана.
Процедура ДобавитьРольПользователю(ИмяПользователя, ИмяРоли) Экспорт

	Роль = Метаданные.Роли.Найти(ИмяРоли);
	Если Роль = Неопределено Тогда
		ВызватьИсключение СтрШаблон("Роль ""%1"" не найдена в конфигурации", ИмяРоли);
	КонецЕсли;

	ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
	Если ПользовательИБ = Неопределено Тогда
		ВызватьИсключение СтрШаблон("Пользователь ИБ ""%1"" не найден", ИмяПользователя);
	КонецЕсли;

	Если ПользовательИБ.Роли.Содержит(Роль) Тогда
		Возврат;
	КонецЕсли;

	ПользовательИБ.Роли.Добавить(Роль);
	ПользовательИБ.Записать();
	// Новый состав ролей пользователь получит при следующем входе.

КонецПроцедуры

Что важно в этом коде:

  • ПравоДоступа(ИмяПрава, ОбъектМетаданных, Роль) — третий параметр спрашивает не про текущего пользователя, а про конкретную роль. Имя права — строкой: «Чтение», «Изменение», «Просмотр», «Проведение», «Использование».
  • Метаданные.Роли включает роли подключенных расширений.

Вызов из серверной процедуры обработки или консоли кода:

// Серверная процедура обработки или консоль кода (8.3.6+ для СтрСоединить).
Роли = ПраваДоступаСервер.РолиСПравом("Изменение", Метаданные.Справочники.Номенклатура);
Сообщить("Изменение номенклатуры дают роли: " + СтрСоединить(Роли, ", "));

В формах проверяйте право, а не имя роли: РольДоступна("Расш1_ИзменениеЦен") сломается, когда право переедет в другую роль, а ПравоДоступа учитывает все роли пользователя.

// Модуль формы документа. Имена регистра и элементов формы — примерные,
// подставьте свои.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	// Проверяем право, а не имя роли: право может прийти из любой роли,
	// в том числе из роли расширения.
	МожноМенятьЦены = ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ЦеныНоменклатуры);

	Элементы.ФормаПерезаполнитьЦены.Видимость = МожноМенятьЦены;
	Элементы.ТоварыЦена.ТолькоПросмотр = Не МожноМенятьЦены;

КонецПроцедуры

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

Типичные ошибки

  • Новый объект никому не доступен. Добавили справочник, а в прикладных ролях права не отметили: команды в разделе нет, по ссылке — «Нарушение прав доступа!». Изменения ролей вступают в силу после обновления конфигурации БД и перезапуска сеанса.
  • Роль пропала сама. В типовой на БСП роль назначили в конфигураторе, а группы доступа ее перезаписали: там роли выдаются только через профили.
  • Запрос падает у части пользователей. В роли есть RLS, а в запросе нет РАЗРЕШЕННЫЕ: у администратора все работает, у менеджера — «Нарушение прав доступа!».
  • Выдано «Интерактивное удаление». Элементы удаляются сразу, без контроля ссылок, и в документах появляется «<Объект не найден>». Обычным пользователям хватает пометки на удаление.

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

Можно ли ролью запретить действие?

Запрещающих флажков нет: права всех ролей пользователя складываются. Отобрать право можно, убрав роль, которая его дает, разделив роль на две или сняв флажок в заимствованной роли расширения (8.3.9+, типовая остается на поддержке). Если то же право дает другая роль, оно останется.

Как посмотреть, какие роли у пользователя?

В конфигураторе — «Администрирование → Пользователи», вкладка «Прочие». В типовых на БСП — группы доступа в карточке пользователя и отчет «Права доступа». Из кода — перебором коллекции Роли пользователя ИБ на сервере:

// Сервер: консоль кода или серверная процедура обработки.
// Нужно право «Администрирование» или привилегированный режим.
ИмяПользователя = "Кладовщик";
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
Если ПользовательИБ <> Неопределено Тогда
	Для Каждого Роль Из ПользовательИБ.Роли Цикл
		Сообщить(Роль.Имя + " — " + Роль.Синоним);
	КонецЦикла;
КонецЕсли;

Из какой роли пришло конкретное право, покажет функция РолиПользователяСПравом выше.

Чем роль отличается от профиля групп доступа?

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

Слетит ли роль из расширения при обновлении типовой?

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

Как настроить роли 1С: одна большая или много мелких?

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

Когда проще заказать

Разложить права по должностям в типовой, закрыть цены или себестоимость на уровне записей, выяснить, откуда у сотрудника лишние права, — работа для программиста, который регулярно имеет дело с БСП. Оставьте заявку на странице настройки прав доступа 1С или сразу разместите задачу — оценка бесплатная, ответ в течение рабочего дня.

По теме

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.


1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.