Какие роли назначены пользователю 1С: пять способов увидеть и проверить
Содержание
Проверить наличие роли у пользователя в 1С быстрее всего в Конфигураторе: Администрирование → Пользователи, откройте пользователя и перейдите на вкладку «Прочие» — роли с галочками и есть его роли. В режиме 1С:Предприятие роли видно не напрямую, а через профили групп доступа: Администрирование → Настройки пользователей и прав → Пользователи, карточка пользователя, команда «Права доступа
».
Чаще всего вопрос возникает, когда у сотрудника «не открывается документ» или, наоборот, бухгалтер видит лишнее. Способы ниже подходят для типовых конфигураций на платформе 8.3 (БП 3.0, ЗУП 3.1, УТ 11) и для доработанных баз на БСП. Отдельно — как проверить роль из кода и как сделать сводку по всем пользователям сразу.
Какой способ проверки ролей выбрать
У пользователя в 1С два «слоя» прав. Платформа хранит список ролей пользователя информационной базы. Типовые конфигурации поверх этого ведут свой учёт: профили групп доступа и группы доступа. Роли пользователю программа выставляет сама, исходя из того, в какие группы доступа он входит.
Отсюда разные инструменты:
| Способ | Что показывает | Кому подходит | Нужны права |
|---|---|---|---|
| Карточка пользователя в Предприятии | Профили и группы доступа | Администратору базы | Полные права |
| Конфигуратор, вкладка «Прочие» | Фактический список ролей | Тому, у кого есть вход в Конфигуратор | Администрирование |
| Консоль запросов | Сводка «пользователь → группа → профиль → роль» | Для аудита многих пользователей | Чтение справочников доступа |
РольДоступна() в коде | Есть ли роль у текущего пользователя | Разработчику | Любые |
| Внешняя обработка | Таблица по всем пользователям и ролям | Для регулярных проверок | Администрирование |
Если нужно понять, почему у конкретного человека «нет прав», начните с карточки в Предприятии. Если нужен точный ответ «стоит ли галочка роли» — с Конфигуратора.
Проверка ролей пользователя в режиме Предприятия
Пути к списку пользователей в типовых конфигурациях:
| Конфигурация | Путь к списку пользователей |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Настройки пользователей и прав → Пользователи |
| ЗУП 3.1 | Администрирование → Настройки пользователей и прав → Пользователи |
| Управление торговлей 11 | НСИ и администрирование → Настройки пользователей и прав → Пользователи |
Порядок действий:
- Откройте список пользователей и найдите сотрудника. Удобно набрать часть ФИО прямо в списке — сработает поиск.
- Откройте карточку двойным щелчком.
- Нажмите в командной панели карточки «Права доступа».
- Посмотрите, какие профили отмечены (в БП) или в каких группах доступа состоит пользователь (в ЗУП и УТ).
- Чтобы увидеть, какие роли входят в профиль, откройте сам профиль:
Настройки пользователей и прав → Профили групп доступа. Состав ролей — на вкладке с ролями внутри профиля.
Чем отличается БП от ЗУП и УТ
В Бухгалтерии по умолчанию включён упрощённый режим: профили («Бухгалтер», «Главный бухгалтер», «Администратор» и др.) отмечают галочками прямо в форме прав доступа пользователя. Группы доступа программа создаёт сама, вручную с ними работать не нужно.
В ЗУП и УТ пользователя включают в группы доступа. У каждой группы один профиль, а в профиле — набор ролей. Пользователь может состоять в нескольких группах, и его права складываются.
Отчёт по правам доступа
В разделе «Настройки пользователей и прав» есть отчёты по правам. В новых версиях БСП это отчёт «Анализ прав доступа»: он показывает, к каким таблицам и с какими действиями у пользователя есть доступ. Название ссылки на отчёты в разных релизах может немного отличаться — ищите её в том же разделе, рядом со списками пользователей и профилей.
Отчёт удобен, когда вопрос звучит не «какая роль», а «может ли Иванова изменять документ поступления». Он отвечает сразу на уровне объектов.
Проверка «глазами» сотрудника
Самый наглядный тест — зайти в базу под учётной записью сотрудника. Сделайте это на копии базы или договоритесь с ним заранее: менять чужой пароль в рабочей базе без предупреждения нельзя.
Порядок такой:
- Разверните копию базы
из свежей выгрузки
.dtили создайте тестового пользователя. - Тестовому пользователю назначьте те же профили или группы доступа, что у сотрудника.
- Войдите под ним и повторите действие, которое не получается: откройте документ, проведите, сформируйте отчёт.
- Текст ошибки вида «Недостаточно прав для просмотра» или «Нарушение прав доступа» запишите дословно — по нему видно, на какой объект не хватает прав.
Так вы проверяете не роли по отдельности, а итоговый результат: роли плюс ограничения групп доступа.
Как посмотреть роли пользователя в Конфигураторе
Конфигуратор показывает «сырой» список ролей платформы — ровно то, что проверяется при каждом действии пользователя.
- Запустите базу в режиме «Конфигуратор» под пользователем с правом администрирования.
- Откройте
Администрирование → Пользователи. - Дважды щёлкните по нужному пользователю.
- На вкладке «Основные» проверьте имя и способ аутентификации, на вкладке «Прочие» — список ролей. Отмеченные галочкой роли назначены пользователю.
Обратная задача — узнать, что разрешает конкретная роль. Раскройте в дереве метаданных ветку Общие → Роли, откройте роль и выделите объект слева — справа будут права на него: «Чтение», «Добавление», «Изменение», «Проведение» и т. д.
В типовых конфигурациях не назначайте роли вручную в Конфигураторе. При следующем изменении групп доступа программа перезапишет роли по профилям, и ваши правки пропадут. Права меняйте через профили и группы доступа в режиме Предприятия.
Признаки полных прав
Если у пользователя отмечены роли ПолныеПрава и АдминистраторСистемы, он видит и меняет всё. Проверять отдельные роли у такого пользователя смысла нет. Именно эти роли получает профиль «Администратор».
Если роль-администратор в Конфигураторе снята у всех пользователей, войти в Конфигуратор под администратором уже не получится. Перед правкой списка ролей убедитесь, что хотя бы у одной учётной записи полные права остаются.
Аудит ролей через консоль запросов
Когда пользователей десятки, открывать каждую карточку долго. Сводку «кто в какой группе и с какими ролями» удобно получить запросом. Подойдёт любая внешняя обработка «Консоль запросов», открытая через Файл → Открыть.
Запрос к справочникам БСП:
ВЫБРАТЬ
Участники.Пользователь КАК Участник,
Участники.Ссылка КАК ГруппаДоступа,
Участники.Ссылка.Профиль КАК Профиль,
РолиПрофиля.Роль КАК Роль
ИЗ
Справочник.ГруппыДоступа.Пользователи КАК Участники
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.Роли КАК РолиПрофиля
ПО Участники.Ссылка.Профиль = РолиПрофиля.Ссылка
ГДЕ
НЕ Участники.Ссылка.ПометкаУдаления
И НЕ Участники.Ссылка.Профиль.ПометкаУдаления
УПОРЯДОЧИТЬ ПО
Участник,
ГруппаДоступа
Что учитывать при чтении результата:
- 👥 в колонке «Участник» бывают не только пользователи, но и группы пользователей. Если группа доступа включает группу «Все пользователи», роль получают все;
- 🗂️ одна и та же роль может прийти из двух разных групп — это нормально;
- 🔍 чтобы найти владельцев конкретной роли, отфильтруйте результат по колонке «Роль» прямо в консоли.
Запрос показывает, что задумано в настройках БСП. Фактический список ролей платформы смотрите в Конфигураторе или обработкой из раздела про автоматизацию. Обычно они совпадают, расхождение — признак ручной правки ролей.
Можно ли проверить роль SQL-запросом к базе
Технически пользователи клиент-серверной базы лежат в таблице v8users в базе на MS SQL или PostgreSQL. Но список ролей там хранится в служебном поле в закодированном виде. Обычным SELECT вы увидите имена пользователей, но не их роли.
Справочники БСП (группы и профили доступа) лежат в таблицах с именами вида _Reference123. Чтобы понять, какая таблица чему соответствует, нужна структура хранения. Её возвращает метод ПолучитьСтруктуруХраненияБазыДанных(), вызванный из 1С.
Практический вывод:
- ✅ для чтения имён учётных записей SQL годится, например, чтобы сверить список пользователей разных баз;
- ❌ для проверки ролей SQL неудобен: дольше и ненадёжнее, чем запрос 1С в консоли;
- ⛔ изменять таблицы
v8usersи справочников доступа напрямую нельзя: это обходит платформу, ломает согласованность данных и не поддерживается.
Если доступ к 1С есть, проверяйте роли средствами 1С. SQL оставьте для случаев, когда база не открывается, а список учётных записей нужен срочно. Перед любыми операциями с таблицами сделайте резервную копию базы.
Группы доступа: почему роль есть, а прав не хватает
Частая ситуация: роль у пользователя есть, а документ всё равно не открывается. Причины обычно такие:
- 🔒 ограничение на уровне записей. Группа доступа может разрешать работу только с определёнными организациями, складами или подразделениями. Роль даёт право «вообще», группа сужает его до списка значений;
- 🧩 роль пришла не из той группы. Если в одной группе стоит нужная организация, а в другой нужная роль, права не складываются крест-накрест: ограничения применяются в пределах каждой группы;
- 🗑️ профиль или группа помечены на удаление. Помеченные группы не дают прав;
- 🚫 пользователь недействителен или ему запрещён вход. Это видно в карточке пользователя;
- 🕒 сеанс открыт до изменения прав. Пользователю нужно перезапустить 1С, чтобы получить новые роли.
Проверку ограничений ведите в самой группе доступа: откройте её и посмотрите вкладку с видами доступа. Там видно, какие значения разрешены — например, только одна организация из трёх.
Администрирование → Пользователи → вкладка «Прочие». Это самый точный ответ.РольДоступна() или Пользователи.РолиДоступны() в конфигурациях на БСП.Проверка роли в коде и автоматизация внешней обработкой
Роль текущего пользователя
Встроенная функция РольДоступна возвращает Истина, если роль есть у текущего пользователя:
Если РольДоступна("ПолныеПрава") Тогда
// показать служебные команды
КонецЕсли;
В конфигурациях на БСП удобнее общий модуль Пользователи. Функция Пользователи.РолиДоступны принимает список имён ролей через запятую и учитывает привилегированный режим:
Если Пользователи.РолиДоступны("ДобавлениеИзменениеКонтрагентов, ПолныеПрава") Тогда
// у пользователя есть хотя бы одна из ролей
КонецЕсли;
Имена ролей в примере условные — берите точные имена из ветки Общие → Роли в Конфигураторе. Имя роли пишется латиницей или кириллицей так, как задано в свойстве «Имя», а не в синониме.
Право на объект без перебора ролей
Иногда важнее не роль, а итог: может ли пользователь читать справочник. Для этого есть ПравоДоступа. Третьим параметром передайте пользователя информационной базы:
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("Иванова");
Если ПользовательИБ <> Неопределено Тогда
МожноЧитать = ПравоДоступа("Чтение", Метаданные.Справочники.Контрагенты, ПользовательИБ);
Сообщить("Чтение контрагентов: " + ?(МожноЧитать, "есть", "нет"));
КонецЕсли;
Функция проверяет права уровня ролей. Ограничения по организациям и другим значениям она не учитывает.
Внешняя обработка: кто владеет ролью
Для регулярного аудита создайте внешнюю обработку
: в Конфигураторе Файл → Новый → Внешняя обработка, добавьте форму и команду. В модуль формы вставьте код:
&НаКлиенте
Процедура ПроверитьРоль(Команда)
ПроверитьРольНаСервере("ПолныеПрава");
КонецПроцедуры
&НаСервере
Процедура ПроверитьРольНаСервере(ИмяРоли)
МетаРоль = Метаданные.Роли.Найти(ИмяРоли);
Если МетаРоль = Неопределено Тогда
Сообщить("Роль " + ИмяРоли + " в конфигурации не найдена");
Возврат;
КонецЕсли;
Найдено = 0;
Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
Если ПользовательИБ.Роли.Содержит(МетаРоль) Тогда
Найдено = Найдено + 1;
Сообщить(ПользовательИБ.Имя + " (" + ПользовательИБ.ПолноеИмя + ")");
КонецЕсли;
КонецЦикла;
Сообщить("Всего пользователей с ролью: " + Формат(Найдено, "ЧН=0; ЧГ=0"));
КонецПроцедуры
Обработка перебирает всех пользователей базы и выводит тех, у кого стоит роль. Открывать её нужно под пользователем с правом администрирования: остальным список пользователей ИБ недоступен.
Чтобы вывести все роли одного пользователя, замените тело цикла перебором Для Каждого Роль Из ПользовательИБ.Роли Цикл и выводите Роль.Имя. Для отчётов на 50+ пользователей результат лучше складывать в таблицу значений и выгружать в табличный документ или Excel.
Обработка только читает данные. Не добавляйте в неё изменение ролей для типовой конфигурации: управление правами там идёт через группы доступа, и программа перезапишет роли.
Кто и когда менял права
Если роль появилась у пользователя неожиданно, откройте журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Отберите события по пользователям и группам доступа за нужный период. Журнал покажет, кто изменил запись и когда.