Как узнать, у кого из пользователей 1С есть нужная роль

· 9 мин

Содержание

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

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

Откуда у пользователя берутся роли

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

В конфигурациях на БСП (Бухгалтерия предприятия 3.0, ЗУП 3.1, Управление торговлей 11, ERP и другие типовые) всё устроено в несколько слоёв:

  1. Профиль группы доступа — набор ролей. Например, профиль «Бухгалтер» включает десятки ролей.
  2. Группа доступа — привязывает профиль к людям. В группу входят пользователи или группы пользователей.
  3. Пользователь — получает объединение ролей из всех групп доступа, в которые входит.

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

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

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

Способ 1. Отчёт по правам доступа

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

Что можно получить:

  • 👤 права конкретного пользователя — какие объекты ему доступны и с какими действиями (чтение, добавление, изменение, проведение);
  • 👥 права по группе доступа — что даёт участникам группа;
  • 📄 права на объект — кто и какие действия может выполнять, например, с документом «Поступление товаров и услуг».

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

Если нужно именно название роли, идите вторым путём — через профили.

Что делать, если отчёта нет в меню

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

Способ 2. Профили и группы доступа вручную

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

  1. Откройте список профилей групп доступа (раздел Администрирование, настройки пользователей и прав, профили групп доступа).
  2. Откройте профиль, который подозреваете. В нём табличная часть со списком ролей. Роли называются так же, как в Конфигураторе, и в списке есть поиск.
  3. Закройте профиль и перейдите в группы доступа. Отберите те, где указан этот профиль, — в списке есть колонка с профилем и отбор по ней.
  4. Откройте каждую группу и посмотрите вкладку с участниками.

Для крупной базы это долго: профилей бывает 30–40, групп ещё больше. Если нужно проверить одну-две роли, подойдёт. Для аудита всей организации лучше следующий способ.

Чем карточка пользователя помогает

В карточке пользователя (справочник «Пользователи») видны его группы доступа и итоговые права. Это ответ на обратный вопрос: что есть у Иванова. Когда нужно проверить конкретного человека — например, бухгалтер жалуется, что не видит документ, — карточка и кнопка просмотра прав доступа решают дело за две минуты.

Для вопроса «кто ещё так может» карточка не годится, потому что перебирать сотню пользователей по одному никто не станет.

Способ 3. Запрос в консоли: все пользователи с нужной ролью

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

В БСП эти данные лежат в справочниках ПрофилиГруппДоступа и ГруппыДоступа. У профиля есть табличная часть Роли, у группы — реквизит Профиль и табличная часть Пользователи.

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

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

Что важно учесть в результате:

  • ⚠️ в колонке «Пользователь» может оказаться не человек, а группа пользователей — тогда роль получают все её члены; раскройте группу отдельным запросом по составу;
  • ⚠️ встречаются пользователи с пометкой недействительности — их стоит отфильтровать, если смотрите реальный круг доступа;
  • ⚠️ учитывайте, что один человек может попасть в результат несколько раз через разные группы; РАЗЛИЧНЫЕ это скрывает только при одинаковых колонках.

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

Способ 4. Обход пользователей кодом: когда БСП нет

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

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

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

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

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

Файловая и клиент-серверная база: что меняется

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

ВопросФайловый вариантКлиент-серверный вариант
Где хранится список пользователейв самой базев самой базе
Кто может читать базу в обход 1Слюбой, у кого есть доступ к папке с файломтолько администратор СУБД
Права в каталоге с базойопределяют, кто вообще сможет открыть файлопределяются настройками сервера
Аутентификацияпо паролю 1С или по учётной записи ОСто же, плюс возможны доменные схемы

Главное для аудита: в файловой базе права в 1С не защищают сам файл. Если у сотрудника есть доступ к папке, он может скопировать базу домой. Поэтому проверку ролей стоит дополнять проверкой прав на папку с файлом 1Cv8.1CD. В клиент-серверном режиме эта угроза смещается на уровень СУБД и сервера.

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

Что ломается при аудите прав

Типичные ошибки встречаются у тех, кто делает проверку впервые.

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

Не добавляйте роль «Полные права» ради проверки. Она открывает всё, и потом трудно выяснить, кто и зачем её получил. Для диагностики хватает роли администратора на отдельной учётной записи.

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

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

  1. Выгрузите итог запроса или отчёта в таблицу: пользователь, подразделение, группа доступа, профиль.
  2. Добавьте колонку «Основание» — кто и по какой заявке выдал доступ. Для критичных ролей (администратор, закрытие периода , зарплата) без основания запись лучше не оставлять.
  3. Отправьте список руководителям подразделений. Они лучше знают, кому доступ ещё нужен.
  4. Сохраните файл с датой в названии. Через три месяца повторите запрос и сравните: появившиеся строки — это новые доступы, которые стоит проверить в первую очередь.

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

Чек-лист перед аудитом

Подготовка к проверке прав
Выполнено: 0 / 5

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

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