Администрирование · 10 мин
Как определить роль пользователя в 1С
Как определить роль пользователя в 1С: через конфигуратор, администрирование, запросы и встроенный язык. Пошаговые инструкции, проверка прав и типичные ошибки.
Роль в 1С — это набор прав доступа к объектам конфигурации: справочникам, документам, отчётам, регистрам. Одному пользователю может быть назначено несколько ролей, и итоговые права складываются из их объединения. Поэтому вопрос «какая роль у пользователя» обычно возникает в трёх ситуациях: при настройке доступа нового сотрудника, при разборе ошибки «Нарушение прав доступа» и при аудите безопасности.
Определить роль можно несколькими способами: через конфигуратор, через список пользователей в режиме предприятия, программно на встроенном языке или через обработку анализа прав. Выбор зависит от того, есть ли у вас доступ к конфигуратору, работаете ли вы в файловой или клиент-серверной базе и нужна ли разовая проверка или массовая выгрузка.
Ниже разобраны все рабочие методы с точными действиями, ограничениями и способами проверить результат. Материал применим к типовым конфигурациям на платформе 8.3 (Управление торговлей, ERP, Бухгалтерия, ЗУП), а также к самописным решениям.
Что такое роль и чем она отличается от профиля группы доступа
Роль — это объект метаданных конфигурации, который жёстко задан разработчиком. Изменить состав роли можно только в конфигураторе. Роли назначаются пользователю напрямую и определяют, какие объекты он видит и что может с ними делать: читать, добавлять, изменять, удалять.
В типовых конфигурациях поверх ролей работает механизм профилей групп доступа. Профиль — это настройка в режиме предприятия, которая объединяет несколько ролей без входа в конфигуратор. Пользователю назначается профиль, а профиль уже включает нужные роли. Поэтому в типовых базах проверять нужно и то, и другое: роль в конфигураторе и профиль в пользовательском режиме.
Способ 1. Определить роль через конфигуратор
Это самый надёжный метод, он показывает роли, назначенные напрямую, независимо от механизмов типовой конфигурации. Нужен доступ к конфигуратору и право администрирования.
Порядок действий: откройте конфигуратор, перейдите в меню «Администрирование → Пользователи». В списке найдите нужного пользователя и откройте его карточку двойным щелчком. Роли отображаются на вкладке «Прочие» (в ряде версий — отдельная вкладка «Роли»). Установленные флажки — это назначенные роли.
Обратите внимание: список может быть длинным, а роли отсортированы по имени. Используйте поиск по списку или сортируйте по колонке с флажками, чтобы увидеть только назначенные. Если у пользователя установлен флажок «Полные права» (роль ПолныеПрава), фактически ему доступно всё, и разбирать остальные роли нет смысла.
- 1Откройте конфигуратор и войдите в базу под администратором
- 2Меню Администрирование → Пользователи
- 3Откройте карточку нужного пользователя
- 4Перейдите на вкладку «Прочие» и найдите список ролей
- 5Отсортируйте по флажкам — отмеченные роли и есть назначенные
Способ 2. Посмотреть роль в режиме предприятия
В типовых конфигурациях администратор может посмотреть права без конфигуратора. Путь зависит от конфигурации, но обычно это «Администрирование → Настройка пользователей и прав → Пользователи». Откройте карточку пользователя — там видны группы доступа и профили, в которые он включён.
Чтобы понять, какие именно роли даёт профиль, откройте «Профили групп доступа», найдите нужный профиль и посмотрите его состав. В типовых решениях рядом с названием роли часто есть пояснение, какие возможности она открывает. Это удобно при подборе прав новому сотруднику: вы назначаете профиль, а не копаетесь в метаданных.
Ограничение метода: в режиме предприятия видны только профили и группы доступа. Если кому-то назначили роль напрямую через конфигуратор в обход профилей, здесь это не отобразится. При расхождениях между ожидаемыми и фактическими правами сверяйтесь с конфигуратором.
Способ 3. Определить роль программно
Когда нужно проверить роль из кода — например, для условного отображения кнопки или записи в журнал — используется встроенный язык. Основная функция: РольДоступна("ИмяРоли") — возвращает Истина, если указанная роль назначена текущему пользователю.
Для получения ролей произвольного пользователя применяется менеджер ПользователиИнформационнойБазы. Найдите пользователя по имени или уникальному идентификатору и переберите коллекцию его ролей. Ниже пример вывода всех ролей конкретного пользователя:
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("ИвановИИ");
Если ПользовательИБ <> Неопределено Тогда
Для Каждого Роль Из ПользовательИБ.Роли Цикл
Сообщить(Роль.Имя);
КонецЦикла;
Иначе
Сообщить("Пользователь не найден");
КонецЕсли;
Для выгрузки ролей всех пользователей оберните код в цикл по ПользователиИнформационнойБазы.ПолучитьПользователей() и выведите результат в табличный документ. Это удобно для аудита: получаете полную матрицу «пользователь — роль» одним проходом.
Если РольДоступна("ПолныеПрава") Тогда
Сообщить("У текущего пользователя полные права");
КонецЕсли;Способ 4. Найти, у кого есть конкретная роль
Обратная задача встречается не реже: нужно найти всех обладателей определённой роли, например «ПолныеПрава», при проверке безопасности. В конфигураторе прямого отчёта «пользователи по роли» нет, поэтому придётся либо открывать каждого пользователя, либо использовать программный перебор.
Программный вариант: переберите всех пользователей информационной базы и проверьте наличие роли через ПользовательИБ.Роли.Найти(Метаданные.Роли.ИмяРоли). Для типовых конфигураций альтернатива — отчёт по правам доступа или стандартная обработка копирования настроек пользователей, где видно распределение профилей.
При аудите обращайте внимание на неактивных пользователей с широкими правами: уволенные сотрудники с сохранённым доступом — типичная находка. Таких пользователей следует отключать (снять флажок аутентификации), а не удалять, чтобы сохранить историю в документах.
Как проверить, какие права даёт конкретная роль
Знать название роли мало — важно понимать, что она разрешает. В конфигураторе откройте дерево конфигурации, найдите ветку «Общие → Роли», откройте нужную роль. Справа отобразится матрица: объекты метаданных и права на них (чтение, добавление, изменение, удаление, просмотр, интерактивное удаление и другие).
Для быстрого сравнения двух ролей или проверки прав на конкретный объект удобно окно «Все роли»: правый клик по объекту конфигурации → «Дополнительно» или через настройку прав, где видно, какие роли дают доступ к выбранному объекту. Это помогает найти минимальную роль для конкретной задачи вместо назначения избыточной.
Практическая проверка результата: после назначения роли войдите в базу под тестовым пользователем и попробуйте выполнить целевое действие — открыть документ, провести его, сформировать отчёт. Убедитесь также, что лишние разделы не появились в интерфейсе.
Как проверить результат
Пользователь входит, видит только свои разделы
Ошибка прав доступа при входе или видны лишние разделы
Документ открывается, проводится, отчёт строится
Сообщение «Нарушение прав доступа» при операции
Назначены только нужные роли
Присутствуют ПолныеПрава или лишние роли
Типичные ошибки и ограничения
Частая ошибка — проверять роль только по имени. В разных конфигурациях роли с похожими названиями дают разные права, а в типовых решениях базовые и «профильные» роли различаются тонко. Всегда открывайте состав роли, прежде чем делать выводы.
Вторая ошибка — забывать про механизм RLS (ограничение доступа на уровне записей). Пользователь может иметь роль с полным правом чтения справочника, но видеть только часть записей из-за ограничений по организации или подразделению. Если пользователь «не видит» данные при формально правильной роли, проверяйте настройки групп доступа и параметры ограничений.
Третья типичная ситуация — кэш прав. В клиент-серверном режиме изменения ролей могут применяться не мгновенно: пользователю нужно перезайти, а иногда требуется обновление кэша на сервере. Прежде чем искать ошибку в настройках, попросите пользователя перезапустить сеанс.
Частые вопросы
Как узнать свою роль, если нет доступа к конфигуратору?
В типовых конфигурациях попросите администратора открыть вашу карточку в разделе «Администрирование → Пользователи» — там видны профили и группы доступа. Самостоятельно можно косвенно оценить права по доступным разделам меню и реакции системы на попытку открыть объект.
Чем роль отличается от права?
Право — это отдельное разрешение на действие с объектом (чтение, изменение, удаление). Роль — это набор таких прав по множеству объектов. Пользователю назначаются роли, а итоговые права складываются из всех его ролей по принципу объединения.
Почему функция РольДоступна() возвращает Ложь, хотя роль назначена?
Проверьте точное имя роли — оно должно совпадать с именем в метаданных, без пробелов и в правильном регистре букв не требуется, но опечатки критичны. Также убедитесь, что пользователь перезашёл после назначения роли, и что проверка выполняется от имени нужного пользователя, а не привилегированного сеанса.
Можно ли посмотреть роли всех пользователей одним списком?
Штатного отчёта в конфигураторе нет. Используйте программный перебор через ПользователиИнформационнойБазы с выводом в табличный документ или типовые отчёты по правам доступа в режиме предприятия, если они есть в вашей конфигурации.
Что делать, если пользователю не хватает прав, но какой роли не хватает — непонятно?
Воспроизведите ошибку и посмотрите текст сообщения «Нарушение прав доступа» — в нём указан объект и действие. Затем в конфигураторе найдите, какие роли дают это право на данный объект, и выберите минимально достаточную. Технологический журнал также фиксирует события отказа в доступе.
Опасно ли менять состав роли в конфигураторе?
Изменение роли затрагивает всех пользователей, которым она назначена. Перед правкой сделайте выгрузку базы, проверьте изменения на копии и убедитесь, что конфигурация не типовая на полной поддержке — иначе при обновлении изменения могут быть затёрты.
Что важно запомнить
Роль пользователя определяется в конфигураторе через список пользователей, в режиме предприятия — через профили и группы доступа, программно — через РольДоступна() и ПользователиИнформационнойБазы. Всегда проверяйте состав роли, учитывайте RLS и перезаход пользователя после изменения прав.