Где посмотреть роли и группы доступа пользователя 1С 8.3
Содержание
Чтобы узнать роль в 1С 8.3, откройте Администрирование → Настройки пользователей и прав → Пользователи, затем карточку нужного сотрудника и ссылку «Права доступа
»: там видны группы доступа, а через них — профили и роли. Если в режиме 1С:Предприятие карточка недоступна, роли пользователя показывает Конфигуратор: Администрирование → Пользователи, вкладка «Прочие».
Способов проверить права несколько, и выбирают их по ситуации. Администратору типовой базы хватает карточки пользователя. Программисту быстрее вызвать РольДоступна() в коде. Если пользователь пришёл с ошибкой «недостаточно прав», начинают с текста ошибки и журнала регистрации, а не с перебора ролей.
| Способ | Кто может | Что покажет | Когда выбирать |
|---|---|---|---|
| Карточка пользователя | Администратор в режиме Предприятия | Группы доступа и профили | Типовые БП 3.0, ЗУП 3.1, УТ 11 |
| Профиль группы доступа | Администратор | Полный список ролей профиля | Понять, что именно даёт группа |
| Конфигуратор | Тот, у кого есть вход в Конфигуратор | Фактические роли пользователя ИБ | Нетиповые и самописные базы |
| Встроенный язык | Программист, админ | Ответ «да/нет» по роли или праву | Проверка в обработке, отладка |
| Текст ошибки и журнал | Любой, журнал — админ | На каком объекте отказ | Пользователь жалуется на ошибку |
Из чего складываются права доступа в 1С
Права в 1С 8.3 живут на двух уровнях: платформы и конфигурации. Платформа знает только роли. Роль — это объект метаданных с набором галочек: чтение, добавление, изменение, проведение, просмотр и так далее для каждого справочника, документа, регистра.
Типовые конфигурации на Библиотеке стандартных подсистем (БСП) надстраивают над ролями ещё два слоя:
- 🧩 Профиль группы доступа — набор ролей под должность: «Бухгалтер», «Кадровик», «Менеджер по продажам».
- 👥 Группа доступа — профиль плюс конкретные участники и, при необходимости, ограничения (по организациям, складам и т.п.).
- 👤 Пользователь — получает роли всех групп доступа, в которые он входит.
Итоговые роли пользователя — это объединение ролей всех его групп. Если человек состоит в группах «Бухгалтер» и «Кассир», у него обе пачки ролей сразу. Запретить роль одной группой, когда её даёт другая, нельзя: права в 1С только складываются.
Третий слой — ограничение доступа на уровне записей (RLS). Роль может дать право читать документы, а RLS оставит видимыми только документы своей организации. Включается оно в Администрирование → Настройки пользователей и прав флажком «Ограничивать доступ на уровне записей». Поэтому «роль есть, а документа не видно» — нормальная ситуация, о ней ниже.
В базах на БСП роли пользователю назначает сама программа по группам доступа. Ручные галочки ролей в Конфигураторе при следующем обновлении прав будут перезаписаны.
Как узнать роль пользователя в режиме 1С:Предприятие
Этот путь работает в БП 3.0, ЗУП 3.1, УТ 11, КА 2 и других конфигурациях на БСП. Нужны административные права.
Карточка пользователя
- Откройте
Администрирование → Настройки пользователей и прав. - Перейдите по ссылке «Пользователи» и откройте нужную запись двойным щелчком.
- Нажмите «Права доступа» в верхней части карточки.
- В списке отмечены группы доступа, в которые входит пользователь. У каждой группы указан её профиль.
Отметка у группы означает, что человек — участник. Если пользователь входит в группу не напрямую, а через группу пользователей («Отдел продаж»), снять отметку здесь не получится: участие наследуется, менять его надо в составе группы.
Состав ролей профиля
Сама карточка показывает группы, а не роли. Чтобы увидеть роли:
- Откройте
Администрирование → Настройки пользователей и прав → Профили групп доступа. - Найдите профиль, указанный у группы пользователя.
- Перейдите на вкладку «Разрешенные действия (роли)».
Здесь видны и имена ролей, и их описания. Предопределённые профили («Администратор», «Бухгалтер» и др.) поставляются с конфигурацией: их состав менять нельзя, но можно скопировать профиль и настроить копию.
Отчёт по правам
Из карточки пользователя открывается отчёт «Права доступа» (в командной панели карточки, в группе отчётов). Он показывает не роли, а итог: к каким разделам и объектам у пользователя есть чтение, изменение, добавление. Это удобнее всего, когда надо ответить на вопрос «может ли он проводить реализации», а не «какие у него роли».
Признак полного доступа — участие в группе «Администраторы» с профилем «Администратор». Он даёт роли «Полные права» и «Администратор системы». Выдавать его «на время, чтобы заработало» опасно: права потом забывают снять.
Проверка ролей в Конфигураторе
Конфигуратор показывает роли, которые реально записаны пользователю информационной базы. Это единственный надёжный способ для нетиповых баз без БСП и для старых самописных решений.
- Запустите базу в режиме «Конфигуратор».
- Откройте меню
Администрирование → Пользователи. - Дважды щёлкните по пользователю.
- На вкладке «Основные» видны имя, аутентификация и флажок «Показывать в списке выбора».
- На вкладке «Прочие» — список ролей с флажками. Отмеченные роли и есть права этого пользователя.
Там же, на вкладке «Прочие», задаются основной режим запуска и язык. Если в списке ролей отмечена «ПолныеПрава» (синоним «Полные права»), у пользователя нет ограничений на уровне ролей.
Список пользователей в Конфигураторе пуст? Значит, в базе нет ни одного пользователя, вход идёт без авторизации и у каждого, кто открыл базу, полные права. Первым создают пользователя с административными правами, иначе платформа не даст сохранить список.
Матрица «Все роли»
Чтобы понять, какая роль даёт доступ к конкретному объекту, удобна матрица прав:
- Откройте дерево конфигурации:
Конфигурация → Открыть конфигурацию. - Разверните
Общие → Роли. - Щёлкните правой кнопкой по ветке «Роли» и выберите «Все роли».
Откроется таблица: строки — объекты метаданных, столбцы — роли. Выделите документ, например «Реализация (акт, накладная)», и сразу видно, в каких ролях у него стоят права «Чтение», «Проведение», «Интерактивное удаление». Так ищут, какую роль добавить пользователю, вместо того чтобы включать всё подряд.
Не меняйте роли пользователей в Конфигураторе рабочей базы на БСП напрямую — правьте группы доступа в режиме Предприятия. Иначе картина прав в Конфигураторе и в карточке пользователя разойдётся.
Как проверить роль программно: РольДоступна и ПравоДоступа
Встроенный язык даёт три инструмента. Их вызывают во внешней обработке, в отладке или из режима «Все функции».
| Функция | Что проверяет | Пример |
|---|---|---|
РольДоступна() | Есть ли роль у текущего пользователя | РольДоступна("ПолныеПрава") |
ПравоДоступа() | Есть ли конкретное право на объект | ПравоДоступа("Проведение", Метаданные.Документы.РеализацияТоваровУслуг) |
ПользователиИнформационнойБазы | Полный список ролей любого пользователя | .ТекущийПользователь().Роли |
РольДоступна() принимает имя роли строкой или объект метаданных. Имя пишется как в Конфигураторе, без пробелов: ПолныеПрава, а не «Полные права».
Вывести все роли текущего пользователя
Код выполняется на сервере. Создайте внешнюю обработку с командой формы и такой серверной процедурой:
&НаСервере
Процедура ПоказатьМоиРолиНаСервере()
ТекущийПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
Если ПустаяСтрока(ТекущийПользовательИБ.Имя) Тогда
Сообщить("В базе нет пользователей: доступны все роли.");
Возврат;
КонецЕсли;
Для Каждого Роль Из ТекущийПользовательИБ.Роли Цикл
Сообщить(Роль.Имя + " — " + Роль.Синоним);
КонецЦикла;
КонецПроцедуры
Проверка пустого имени не лишняя. Когда в базе нет пользователей, коллекция Роли у текущего пользователя пустая, хотя на деле доступно всё.
Проверить конкретное право
Для бизнес-логики полезнее спрашивать не роль, а право. Роли переименовывают и дробят при обновлениях, а право «Проведение» у документа остаётся:
&НаСервере
Функция МожноПроводитьРеализацию()
Возврат ПравоДоступа("Проведение", Метаданные.Документы.РеализацияТоваровУслуг);
КонецФункции
Третьим параметром ПравоДоступа() можно передать роль (Метаданные.Роли.ИмяРоли) — тогда проверяется право этой роли, а не текущего пользователя. Так удобно сверять матрицу прав без переключения учётных записей.
В конфигурациях на БСП для проверки администратора есть готовая функция Пользователи.ЭтоПолноправныйПользователь(). Она учитывает логику подсистемы, поэтому в типовых доработках лучше вызывать её, а не РольДоступна("ПолныеПрава").
Чтобы открыть внешнюю обработку, нужна команда «Все функции». Включается она через главное меню: Сервис → Параметры, флажок «Отображать команду “Все функции”». У рядового пользователя может не быть права на этот режим — тогда проверку делает администратор.
Разбор ошибки «Недостаточно прав»: на какой объект нет доступа
Когда пользователь жалуется на нехватку прав, перебирать роли наугад долго. Платформа сама говорит, где отказ, — надо только прочитать.
Что смотреть в окне ошибки
- Попросите пользователя не закрывать окно, а нажать ссылку «Подробнее» (или сделать снимок экрана с ней).
- В подробном тексте обычно указаны действие и объект: например, нет права на чтение конкретного регистра или справочника.
- По имени объекта найдите в матрице «Все роли» роль, которая даёт нужное право.
- Посмотрите, в каком профиле эта роль есть, и добавьте пользователя в соответствующую группу доступа.
Частые тексты, с которыми приходят пользователи: Недостаточно прав для просмотра, Нарушение прав доступа!, Недостаточно прав на ... с названием действия и таблицы.
Журнал регистрации
Если окно уже закрыли, откройте Администрирование → Обслуживание → Журнал регистрации. Поставьте отбор по пользователю и уровню «Ошибка». В записи отказа доступа будет то же сообщение, что видел пользователь, со временем и компьютером.
Как сравнить права разных пользователей
Типичный запрос: «у Ивановой работает, у Петрова — нет». Сравнивать удобнее от групп, а не от ролей.
Через группы доступа
- Откройте
Администрирование → Настройки пользователей и прав → Группы доступа. - Пройдите по группам и посмотрите вкладку участников.
- Выпишите в две колонки, в каких группах есть Иванова и Петров.
- Разница в группах — это и есть разница в правах. Если группы одинаковые, сравните ограничения доступа внутри групп: у одного может быть доступ к двум организациям, у другого — к одной.
Через код: роли всех пользователей одним списком
Для нетиповой базы или для аудита быстрее выгрузить роли всех пользователей. Код требует административных прав и выполняется на сервере:
&НаСервере
Процедура РолиВсехПользователейНаСервере()
Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
ИменаРолей = Новый Массив;
Для Каждого Роль Из ПользовательИБ.Роли Цикл
ИменаРолей.Добавить(Роль.Имя);
КонецЦикла;
Сообщить(ПользовательИБ.Имя + ": " + СтрСоединить(ИменаРолей, ", "));
КонецЦикла;
КонецПроцедуры
Результат копируют из окна сообщений в таблицу и сравнивают построчно. СтрСоединить() доступна в платформе с номером не ниже 8.3.6 — в актуальных версиях она есть всегда.
Что ещё различается, кроме ролей
- ⚙️ Ограничения на уровне записей — набор доступных организаций, складов, подразделений в группе доступа.
- 🖥️ Режим запуска — у пользователя может быть задан толстый клиент, а не тонкий; часть форм ведёт себя иначе.
- 🔐 Вход — пароль 1С, аутентификация Windows или ОС. На права это не влияет, но объясняет «не могу зайти».
- 🧷 Персональные настройки — скрытые колонки и команды на панели. Их путают с отсутствием прав: команды «нет», а права на неё есть.
Персональные настройки сравнивают и копируют в обработке Администрирование → Настройки пользователей и прав → Настройки пользователей. Права при этом не копируются — только внешний вид и сохранённые параметры.