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

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

Как проверить роль пользователя в 1С

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

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

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

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

Проверка роли через конфигуратор

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

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

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

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

Проверка прав в режиме «Предприятие» в типовых конфигурациях

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

Открыв карточку пользователя, вы увидите, в какие группы доступа он входит. Каждая группа связана с профилем, а профиль содержит набор ролей. Таким образом, чтобы понять реальные права, нужно пройти цепочку: пользователь → группы доступа → профили → роли. В карточке профиля есть отчёт по правам, который показывает, к каким объектам метаданных даёт доступ этот профиль.

Частный случай — механизм «Ограничение доступа на уровне записей» (RLS). Даже если роль пользователю назначена, он может не видеть часть данных (например, документы чужой организации), потому что действуют дополнительные ограничения по значениям доступа. Признак такой ситуации: функция в меню есть, но список документов пустой или неполный.

Программная проверка роли встроенным языком

Когда нужно проверить роль текущего пользователя из кода — например, в обработке, отчёте или при отладке — используется функция РольДоступна(). Она возвращает Истина, если указанная роль назначена текущему пользователю сеанса, и Ложь в противном случае.

Если РольДоступна("ПолныеПрава") Тогда

Сообщить("У пользователя есть полные права");

Иначе

Сообщить("Полные права отсутствуют");

КонецЕсли;

Для получения полного списка ролей конкретного пользователя (не обязательно текущего) применяют менеджер пользователей информационной базы:

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("ИвановИИ");

Если ПользовательИБ <> Неопределено Тогда

Для Каждого Роль Из ПользовательИБ.Роли Цикл

Сообщить(Роль.Имя);

КонецЦикла;

КонецЕсли;

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

bsl
Если РольДоступна("ДобавлениеИзменениеДокументов") Тогда
    Сообщить("Роль доступна");
КонецЕсли;

Как проверить права на конкретный объект

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

Если ПравоДоступа("Проведение", Метаданные.Документы.РеализацияТоваровУслуг) Тогда

Сообщить("Проведение разрешено");

КонецЕсли;

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

Способы проверки: что выбрать

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

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

Группы доступа в режиме Предприятие

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

РольДоступна() и ПравоДоступа()

Для проверки из кода и отладки. Проверяют только текущий сеанс (РольДоступна) или конкретное право на объект.

ПользователиИнформационнойБазы

Позволяет получить роли любого пользователя программно, но требует права администрирования или привилегированного режима.

Типичные ошибки и ограничения

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

Вторая частая ситуация — путаница между ролью и правом. Администратор видит, что роль назначена, но пользователь всё равно не может выполнить действие. Причины: роль не даёт нужного права на конкретный объект, действует RLS, либо пользователь работает в старом сеансе, запущенном до изменения прав. Изменения ролей применяются к новым сеансам — пользователю нужно выйти и войти заново.

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

Типичные ошибки
01
Проверка ролей в конфигураторе при управлении правами через профили — картина не соответствует реальным правам
02
Анализ прав без перезапуска сеанса пользователя — старые права действуют до повторного входа
03
Игнорирование RLS: роль есть, но записи отфильтрованы ограничениями доступа
04
Проверка прав в тестовой копии базы вместо рабочей

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

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

Для объективной проверки используйте программный способ: выполните РольДоступна() или ПравоДоступа() в сеансе пользователя (например, попросив его запустить простую обработку) или проверьте список ролей через ПользователиИнформационнойБазы в конфигураторе.

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

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

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

Сеанс пользователя
Норма

Пользователь вышел и вошёл заново после изменения прав

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

Сеанс открыт до изменения — действуют старые права

Наличие роли
Норма

РольДоступна() возвращает Истина или роль видна в карточке пользователя

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

Роль не назначена или назначена в другой базе

Доступ к данным
Норма

Пользователь видит и открывает нужные документы

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

Функция доступна, но список пуст — вероятно, работает RLS

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

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

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

Почему РольДоступна() возвращает Ложь, хотя роль назначена?

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

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

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

Роль назначена, но документы не видны. В чём причина?

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

Нужны ли полные права для просмотра ролей пользователей?

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

Как быстро найти, какая роль даёт нужное право?

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

Итог

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

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