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

· 10 мин

Содержание

Быстрее всего роль пользователя 1С узнать в Конфигураторе: Администрирование → Пользователи, откройте нужного человека и перейдите на закладку «Прочие» — там галочками отмечены все роли, которые у него реально есть. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) то же самое смотрят без Конфигуратора: Администрирование → Настройки пользователей и прав → Пользователи, карточка сотрудника, ссылка «Права доступа ».

Способы отвечают на разные вопросы. Карточка пользователя показывает группы доступа и профили — то, как права задумал администратор. Конфигуратор показывает итоговый набор ролей платформы. Код и запрос нужны, когда пользователей десятки и проверять каждого вручную долго. Если картины расходятся, это уже повод для диагностики.

Из чего складываются права пользователя в 1С

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

Типовые конфигурации строят над ролями ещё два уровня из Библиотеки стандартных подсистем (БСП):

  • 🧩 Профиль групп доступа — готовый набор ролей под должность: «Бухгалтер», «Администратор» и т. п.
  • 👥 Группа доступа — профиль плюс список участников и, при необходимости, ограничения по данным (например, только одна организация).
  • 👤 Пользователь — входит в одну или несколько групп доступа; его роли — это объединение ролей всех профилей этих групп.

Цепочка выглядит так: пользователь → группы доступа → профили → роли → пользователь информационной базы. Последнее звено — служебная учётная запись платформы. Именно ей БСП записывает итоговый список ролей, когда вы сохраняете группу доступа или профиль.

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

Отдельно стоят ограничения на уровне записей (RLS). Роль может разрешать чтение документов «Реализация», а ограничение по организациям — скрывать часть из них. Тогда роль у пользователя есть, но данных он не видит.

Как посмотреть роли пользователя в режиме 1С:Предприятие

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

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

  1. Откройте Администрирование → Настройки пользователей и прав.
  2. Нажмите «Пользователи» и найдите сотрудника в списке.
  3. Откройте карточку и перейдите по ссылке «Права доступа» на панели навигации карточки.
  4. В списке видно, в каких группах доступа состоит человек и какой профиль у каждой группы.

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

Через профили групп доступа

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

Поставляемые профили (с отметкой о поставке в составе конфигурации) менять нельзя. Чтобы собрать свой вариант, скопируйте профиль и правьте копию.

Через группы доступа

Администрирование → Настройки пользователей и прав → Группы доступа показывает обратную картину: кто входит в каждую группу. Откройте группу, на закладке участников увидите пользователей и группы пользователей. Учтите: если в участниках стоит группа пользователей («Бухгалтерия»), то все её члены получают права, хотя поимённо их в списке нет.

Проверка ролей в Конфигураторе

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

Роли конкретного пользователя

  1. Запустите базу в режиме Конфигуратор под пользователем с ролью полных прав.
  2. Меню Администрирование → Пользователи.
  3. Двойной щелчок по нужному имени.
  4. Закладка «Основные» — имя, аутентификация, признак «Показывать в списке выбора».
  5. Закладка «Прочие» — перечень ролей с галочками, основной интерфейс, язык, режим запуска.

Список ролей здесь полный, включая служебные: «Базовые права», «Запуск тонкого клиента », «Запуск веб-клиента» и прочие. Отсутствие роли запуска клиента — частая причина того, что пользователь не может войти в базу нужным клиентом.

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

Что разрешает сама роль

Чтобы понять, что конкретно даёт роль, раскройте в дереве конфигурации Общие → Роли и откройте её. Слева — дерево объектов, справа — права на выбранный объект: «Чтение», «Добавление», «Изменение», «Удаление», «Проведение», «Просмотр», «Интерактивное удаление» и другие. Если у права заполнено ограничение доступа к данным, его текст виден внизу формы.

Что проверяетеГде смотретьЧто увидите
Роли одного пользователяАдминистрирование → Пользователи → «Прочие»Итоговый список ролей
Права роли на объектОбщие → Роли → роль → объектГалочки прав и ограничения
Наличие полных правРоль «Полные права» у пользователяОтметка в списке ролей

Как проверить роль пользователя программно

Когда пользователей больше 20–30, кликать по каждому долго. Встроенный язык даёт короткие способы. Код ниже выполняйте во внешней обработке или в режиме отладки под пользователем с полными правами.

Роли текущего пользователя

Функция РольДоступна() проверяет одну роль у текущего сеанса:

Если РольДоступна("ПолныеПрава") Тогда
    Сообщить("У текущего пользователя есть полные права");
КонецЕсли;

В конфигурациях на БСП удобнее общий модуль Пользователи: Пользователи.ЭтоПолноправныйПользователь() и Пользователи.РолиДоступны("ИмяРоли1,ИмяРоли2"). Они учитывают разделение данных и привилегированный режим.

Роли всех пользователей базы

Этот фрагмент выводит каждого пользователя информационной базы и его роли:

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

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

Запрос к данным БСП: кто через какие группы получил роли

Список пользователей платформы хранится в служебной таблице v8users, а роли в ней лежат в двоичном виде. Читать её запросом из 1С нельзя, а SQL-средствами — бессмысленно и опасно. Никогда не правьте служебные таблицы базы напрямую через SQL — так легко потерять всех пользователей.

Зато настройки БСП — обычные справочники, и их читают запросом в консоли запросов:

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

В параметр &Пользователь передайте элемент справочника «Пользователи». Запрос покажет только прямое участие. Если человек входит в группу доступа через группу пользователей, её состав смотрите в регистре сведений «Составы групп пользователей» (РегистрСведений.СоставыГруппПользователей) и подставляйте группу вместо пользователя.

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

Связь профилей, групп и ролей: сводная таблица

Чаще всего путаница возникает из-за того, что в разных местах программы видны разные уровни одной цепочки.

УровеньГде хранитсяКто меняетГде посмотреть
РольКонфигурация (метаданные)РазработчикКонфигуратор, Общие → Роли
Профиль групп доступаСправочник «Профили групп доступа»АдминистраторНастройки пользователей и прав → Профили групп доступа
Группа доступаСправочник «Группы доступа»АдминистраторНастройки пользователей и прав → Группы доступа
ПользовательСправочник «Пользователи»АдминистраторНастройки пользователей и прав → Пользователи
Пользователь ИБСлужебные данные платформыБСП автоматическиКонфигуратор, Администрирование → Пользователи

Практическое следствие простое. Права меняют на уровне группы доступа или профиля, а смотрят итог — у пользователя ИБ. В типовых конфигурациях роль «Полные права» входит в профиль «Администратор». Выдавать её «на время» бухгалтеру — плохая идея: временное в 1С обычно становится постоянным.

Почему у пользователя не хватает прав: диагностика

Типичные сообщения, с которыми приходят к администратору: Нарушение прав доступа!, Недостаточно прав для просмотра, Недостаточно прав на ... с указанием объекта. Порядок проверки — от простого к сложному.

  1. Посмотрите, под кем вошёл человек. Нередко сотрудник запускает базу под чужим именем из сохранённого списка выбора.
  2. Проверьте группы доступа в карточке пользователя. Есть ли нужный профиль?
  3. Сравните с ролями в Конфигураторе. Если в профиле роль есть, а у пользователя ИБ её нет, откройте группу доступа и сохраните её заново — БСП перезапишет роли.
  4. Проверьте ограничения по данным. В группе доступа на закладке ограничений могут быть разрешены не все организации или склады.
  5. Откройте журнал регистрации (Администрирование → Обслуживание → Журнал регистрации) и отберите события по пользователю за время ошибки. Платформа фиксирует отказы в доступе с указанием объекта.
  6. Пусть пользователь перезайдёт. Новые роли применяются к новому сеансу, в открытом сеансе они не появятся.

Проверка под тестовым пользователем

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

  1. Создайте пользователя, например «Тест_Склад», с паролем, который знаете только вы.
  2. Включите его в те же группы доступа, что и проверяемого сотрудника.
  3. Запустите второй сеанс под тестовым пользователем и повторите действие, на котором была ошибка.
  4. После проверки отключите тестовому пользователю вход в программу или пометьте его на удаление.

Этот способ занимает лицензию на время второго сеанса. Зато он показывает и роли, и ограничения на уровне записей, и состав меню — то, что не видно ни в отчёте, ни в Конфигураторе.

Не копируйте тестовому пользователю группы «на всякий случай» и не оставляйте его активным. Учётная запись с известным паролем и правами бухгалтера — лишняя дыра в базе.

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

Диагностика: выберите симптом

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

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

Как узнать свою роль, если я не администратор?
Списки групп доступа и профилей открыты только администратору. Попросите его открыть вашу карточку пользователя или отчёт по правам доступа.
Можно ли узнать роли, если в базе нет ни одного пользователя?
Если список пользователей пуст, любой вход идёт без авторизации и с полными правами. Ролей как ограничения нет, пока не создан первый пользователь.
Почему в Конфигураторе ролей больше, чем в профиле?
Профиль показывает роли, отмеченные администратором, а БСП добавляет служебные: базовые права и запуск клиентов. Поэтому список у пользователя ИБ всегда длиннее.
Как выгрузить список пользователей с ролями в таблицу?
Выполните фрагмент кода с перебором ПользователиИнформационнойБазы.ПолучитьПользователей() и вместо Сообщить пишите строки в таблицу значений. Затем сохраните её в табличный документ.
Влияет ли роль на число занятых лицензий?
Нет. Лицензию занимает сеанс, а не роль. Сотрудник, который только просматривает отчёты, расходует лицензию так же, как администратор.