К статье
Практический материал

Администрирование · 8 мин

Как в 1С посмотреть, у каких пользователей есть роль

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

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

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

Что нужно знать перед поиском: роли и профили доступа

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

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

Способ 1: через конфигуратор

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

Пошаговый порядок действий

Поиск через конфигуратор
  1. 1
    Откройте конфигуратор и перейдите в меню «Администрирование» → «Пользователи»
  2. 2
    Откройте карточку пользователя и на вкладке «Прочие» (или «Роли» в старых версиях) посмотрите список назначенных ролей
  3. 3
    Чтобы найти роль в дереве метаданных, откройте «Общие» → «Роли» и найдите нужную поиском (Ctrl+F по имени)
  4. 4
    Для массовой проверки отсортируйте список пользователей и просматривайте роли каждого — или используйте программный способ, если пользователей много

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

Способ 2: отчёт «Права доступа» в типовых конфигурациях

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

Отчёт позволяет выбрать пользователя и увидеть все его права, включая полученные через группы доступа, либо наоборот — выбрать объект метаданных или роль и получить список пользователей, имеющих к ней доступ. Это самый корректный способ для типовых решений, потому что он учитывает реальную механику назначения прав.

Если отчёт недоступен из интерфейса, проверьте, что у вашей учётной записи есть права администратора, и что в настройках включено использование групп доступа («Администрирование» → «Настройки пользователей и прав» → флажок «Группы доступа»).

Способ 3: программный поиск через код

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

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

Код можно выполнить через внешнюю обработку, консоль кода (например, из состава инструментов разработчика) или фоновое задание. Для проверки нескольких ролей добавьте условия по каждой роли из метаданных.

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

Способ 4: запрос к профилям групп доступа

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

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

Запрос выполняется в консоли запросов (в типовых конфигурациях часто доступна через «Все функции» → стандартные обработки, либо устанавливается отдельно). Перед выполнением уточните точное имя идентификатора роли в справочнике «ИдентификаторыОбъектовМетаданных» — именно на него ссылается табличная часть профиля.

Сравнение способов: что выбрать в вашей ситуации

Сравнение способов поиска

Конфигуратор

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

Отчёт «Права доступа»

Оптимален для типовых конфигураций на БСП, учитывает группы доступа. Требует прав администратора в режиме предприятия.

Программный перебор

Универсален, работает везде, легко автоматизируется. Требует навыков работы с кодом и не видит профили БСП.

Запрос к профилям

Самый точный для БСП-конфигураций. Требует консоли запросов и понимания структуры справочников доступа.

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

Типичные ошибки
01
Проверять роли только в конфигураторе в типовой конфигурации — права через профили доступа останутся невидимыми, и аудит будет неполным
02
Искать роль по синониму вместо имени — в коде и запросах используется имя роли из метаданных, а не её представление
03
Изменять роли пользователей без резервной копии — ошибочное снятие роли может заблокировать работу сотрудника или целого отдела
04
Забывать про внешние роли COM-соединений и фоновых заданий — у служебных пользователей тоже проверяйте полномочия

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

Как проверить результат

Контрольные точки

Контрольные точки

Список пользователей с ролью
Норма

Список согласуется с должностными обязанностями сотрудников

Тревожный признак

Роль есть у уволенных или непрофильных сотрудников

Доступ в режиме предприятия
Норма

Под учётной записью пользователя доступны только нужные разделы

Тревожный признак

Пользователь видит лишние разделы или, наоборот, не может выполнить свои операции

Служебные учётные записи
Норма

Фоновые задания и обмены работают под учётками с минимально необходимыми ролями

Тревожный признак

Обмены работают под учётной записью с полными правами

Итог

Что важно запомнить

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

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

Можно ли посмотреть пользователей с ролью без доступа к конфигуратору?

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

Почему роль есть в конфигураторе, но пользователь не видит нужный раздел?

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

Как найти пользователей с полными правами?

Программным перебором с проверкой роли «ПолныеПрава» (код приведён выше) или через отчёт «Права доступа», выбрав эту роль. Регулярно проверяйте этот список — полные права должны быть только у администраторов.

Работает ли поиск в клиент-серверной базе?

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

Как выгрузить список пользователей с ролями в Excel?

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