Какие роли назначены пользователю 1С: пять способов увидеть и проверить

· 10 мин

Содержание

Проверить наличие роли у пользователя в 1С быстрее всего в Конфигураторе: Администрирование → Пользователи, откройте пользователя и перейдите на вкладку «Прочие» — роли с галочками и есть его роли. В режиме 1С:Предприятие роли видно не напрямую, а через профили групп доступа: Администрирование → Настройки пользователей и прав → Пользователи, карточка пользователя, команда «Права доступа ».

Чаще всего вопрос возникает, когда у сотрудника «не открывается документ» или, наоборот, бухгалтер видит лишнее. Способы ниже подходят для типовых конфигураций на платформе 8.3 (БП 3.0, ЗУП 3.1, УТ 11) и для доработанных баз на БСП. Отдельно — как проверить роль из кода и как сделать сводку по всем пользователям сразу.

Какой способ проверки ролей выбрать

У пользователя в 1С два «слоя» прав. Платформа хранит список ролей пользователя информационной базы. Типовые конфигурации поверх этого ведут свой учёт: профили групп доступа и группы доступа. Роли пользователю программа выставляет сама, исходя из того, в какие группы доступа он входит.

Отсюда разные инструменты:

СпособЧто показываетКому подходитНужны права
Карточка пользователя в ПредприятииПрофили и группы доступаАдминистратору базыПолные права
Конфигуратор, вкладка «Прочие»Фактический список ролейТому, у кого есть вход в КонфигураторАдминистрирование
Консоль запросовСводка «пользователь → группа → профиль → роль»Для аудита многих пользователейЧтение справочников доступа
РольДоступна() в кодеЕсть ли роль у текущего пользователяРазработчикуЛюбые
Внешняя обработкаТаблица по всем пользователям и ролямДля регулярных проверокАдминистрирование

Если нужно понять, почему у конкретного человека «нет прав», начните с карточки в Предприятии. Если нужен точный ответ «стоит ли галочка роли» — с Конфигуратора.

Проверка ролей пользователя в режиме Предприятия

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

КонфигурацияПуть к списку пользователей
Бухгалтерия предприятия 3.0Администрирование → Настройки пользователей и прав → Пользователи
ЗУП 3.1Администрирование → Настройки пользователей и прав → Пользователи
Управление торговлей 11НСИ и администрирование → Настройки пользователей и прав → Пользователи

Порядок действий:

  1. Откройте список пользователей и найдите сотрудника. Удобно набрать часть ФИО прямо в списке — сработает поиск.
  2. Откройте карточку двойным щелчком.
  3. Нажмите в командной панели карточки «Права доступа».
  4. Посмотрите, какие профили отмечены (в БП) или в каких группах доступа состоит пользователь (в ЗУП и УТ).
  5. Чтобы увидеть, какие роли входят в профиль, откройте сам профиль: Настройки пользователей и прав → Профили групп доступа. Состав ролей — на вкладке с ролями внутри профиля.

Чем отличается БП от ЗУП и УТ

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

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

Отчёт по правам доступа

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

Отчёт удобен, когда вопрос звучит не «какая роль», а «может ли Иванова изменять документ поступления». Он отвечает сразу на уровне объектов.

Проверка «глазами» сотрудника

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

Порядок такой:

  1. Разверните копию базы из свежей выгрузки .dt или создайте тестового пользователя.
  2. Тестовому пользователю назначьте те же профили или группы доступа, что у сотрудника.
  3. Войдите под ним и повторите действие, которое не получается: откройте документ, проведите, сформируйте отчёт.
  4. Текст ошибки вида «Недостаточно прав для просмотра» или «Нарушение прав доступа» запишите дословно — по нему видно, на какой объект не хватает прав.

Так вы проверяете не роли по отдельности, а итоговый результат: роли плюс ограничения групп доступа.

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

Конфигуратор показывает «сырой» список ролей платформы — ровно то, что проверяется при каждом действии пользователя.

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

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

В типовых конфигурациях не назначайте роли вручную в Конфигураторе. При следующем изменении групп доступа программа перезапишет роли по профилям, и ваши правки пропадут. Права меняйте через профили и группы доступа в режиме Предприятия.

Признаки полных прав

Если у пользователя отмечены роли ПолныеПрава и АдминистраторСистемы, он видит и меняет всё. Проверять отдельные роли у такого пользователя смысла нет. Именно эти роли получает профиль «Администратор».

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

Аудит ролей через консоль запросов

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

Запрос к справочникам БСП:

ВЫБРАТЬ
	Участники.Пользователь КАК Участник,
	Участники.Ссылка КАК ГруппаДоступа,
	Участники.Ссылка.Профиль КАК Профиль,
	РолиПрофиля.Роль КАК Роль
ИЗ
	Справочник.ГруппыДоступа.Пользователи КАК Участники
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.Роли КАК РолиПрофиля
		ПО Участники.Ссылка.Профиль = РолиПрофиля.Ссылка
ГДЕ
	НЕ Участники.Ссылка.ПометкаУдаления
	И НЕ Участники.Ссылка.Профиль.ПометкаУдаления

УПОРЯДОЧИТЬ ПО
	Участник,
	ГруппаДоступа

Что учитывать при чтении результата:

  • 👥 в колонке «Участник» бывают не только пользователи, но и группы пользователей. Если группа доступа включает группу «Все пользователи», роль получают все;
  • 🗂️ одна и та же роль может прийти из двух разных групп — это нормально;
  • 🔍 чтобы найти владельцев конкретной роли, отфильтруйте результат по колонке «Роль» прямо в консоли.

Запрос показывает, что задумано в настройках БСП. Фактический список ролей платформы смотрите в Конфигураторе или обработкой из раздела про автоматизацию. Обычно они совпадают, расхождение — признак ручной правки ролей.

Можно ли проверить роль SQL-запросом к базе

Технически пользователи клиент-серверной базы лежат в таблице v8users в базе на MS SQL или PostgreSQL. Но список ролей там хранится в служебном поле в закодированном виде. Обычным SELECT вы увидите имена пользователей, но не их роли.

Справочники БСП (группы и профили доступа) лежат в таблицах с именами вида _Reference123. Чтобы понять, какая таблица чему соответствует, нужна структура хранения. Её возвращает метод ПолучитьСтруктуруХраненияБазыДанных(), вызванный из 1С.

Практический вывод:

  • ✅ для чтения имён учётных записей SQL годится, например, чтобы сверить список пользователей разных баз;
  • ❌ для проверки ролей SQL неудобен: дольше и ненадёжнее, чем запрос 1С в консоли;
  • ⛔ изменять таблицы v8users и справочников доступа напрямую нельзя: это обходит платформу, ломает согласованность данных и не поддерживается.

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

Группы доступа: почему роль есть, а прав не хватает

Частая ситуация: роль у пользователя есть, а документ всё равно не открывается. Причины обычно такие:

  • 🔒 ограничение на уровне записей. Группа доступа может разрешать работу только с определёнными организациями, складами или подразделениями. Роль даёт право «вообще», группа сужает его до списка значений;
  • 🧩 роль пришла не из той группы. Если в одной группе стоит нужная организация, а в другой нужная роль, права не складываются крест-накрест: ограничения применяются в пределах каждой группы;
  • 🗑️ профиль или группа помечены на удаление. Помеченные группы не дают прав;
  • 🚫 пользователь недействителен или ему запрещён вход. Это видно в карточке пользователя;
  • 🕒 сеанс открыт до изменения прав. Пользователю нужно перезапустить 1С, чтобы получить новые роли.

Проверку ограничений ведите в самой группе доступа: откройте её и посмотрите вкладку с видами доступа. Там видно, какие значения разрешены — например, только одна организация из трёх.

Что нужно выяснить?

Проверка роли в коде и автоматизация внешней обработкой

Роль текущего пользователя

Встроенная функция РольДоступна возвращает Истина, если роль есть у текущего пользователя:

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

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

Если Пользователи.РолиДоступны("ДобавлениеИзменениеКонтрагентов, ПолныеПрава") Тогда
	// у пользователя есть хотя бы одна из ролей
КонецЕсли;

Имена ролей в примере условные — берите точные имена из ветки Общие → Роли в Конфигураторе. Имя роли пишется латиницей или кириллицей так, как задано в свойстве «Имя», а не в синониме.

Право на объект без перебора ролей

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

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("Иванова");
Если ПользовательИБ <> Неопределено Тогда
	МожноЧитать = ПравоДоступа("Чтение", Метаданные.Справочники.Контрагенты, ПользовательИБ);
	Сообщить("Чтение контрагентов: " + ?(МожноЧитать, "есть", "нет"));
КонецЕсли;

Функция проверяет права уровня ролей. Ограничения по организациям и другим значениям она не учитывает.

Внешняя обработка: кто владеет ролью

Для регулярного аудита создайте внешнюю обработку : в Конфигураторе Файл → Новый → Внешняя обработка, добавьте форму и команду. В модуль формы вставьте код:

&НаКлиенте
Процедура ПроверитьРоль(Команда)
	ПроверитьРольНаСервере("ПолныеПрава");
КонецПроцедуры

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

Обработка перебирает всех пользователей базы и выводит тех, у кого стоит роль. Открывать её нужно под пользователем с правом администрирования: остальным список пользователей ИБ недоступен.

Чтобы вывести все роли одного пользователя, замените тело цикла перебором Для Каждого Роль Из ПользовательИБ.Роли Цикл и выводите Роль.Имя. Для отчётов на 50+ пользователей результат лучше складывать в таблицу значений и выгружать в табличный документ или Excel.

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

Кто и когда менял права

Если роль появилась у пользователя неожиданно, откройте журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Отберите события по пользователям и группам доступа за нужный период. Журнал покажет, кто изменил запись и когда.

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

Как проверить роль пользователя, если в Конфигуратор пускают только администратора?
Попросите администратора открыть карточку пользователя в режиме Предприятия и показать профили через «Права доступа». Для этого вход в Конфигуратор не нужен, хватает полных прав в программе.
Почему у пользователя в Конфигураторе нет ни одной роли?
Если в базе есть пользователи, а у учётной записи нет ролей, войти под ней не получится. В типовой конфигурации это значит, что пользователь не входит ни в одну группу доступа или его группы помечены на удаление.
Видит ли РольДоступна роли, назначенные через группы доступа?
Да. Группы доступа в итоге выставляют обычные роли пользователя ИБ, а функция проверяет именно их. Ограничения на уровне записей она не показывает.
Можно ли выгрузить список пользователей и их ролей в Excel?
Да. Выполните запрос из раздела про консоль и сохраните результат, либо доработайте внешнюю обработку: соберите таблицу значений и выведите её в табличный документ, который сохраняется в xlsx.
Сколько ролей обычно у пользователя типовой конфигурации?
Десятки. Профиль «Бухгалтер» состоит из множества мелких ролей, поэтому проверяйте права по профилю, а не по каждой роли.