Какие права реально получает пользователь 1С и где это увидеть

· 9 мин

Содержание

Проверить роль пользователя на клиенте 1С быстрее всего так: откройте Администрирование → Настройки пользователей и прав → Пользователи, карточку сотрудника и команду «Права доступа » — там видны группы доступа, а через их профили и сами роли. Чтобы убедиться, что права работают, запустите клиент под этим пользователем. В коде клиентского модуля роль проверяет функция РольДоступна("ИмяРоли").

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

Инструкция для 1С:Предприятия 8.3 в интерфейсе «Такси». Пути даны для БП 3.0 и ЗУП 3.1, отличия для УТ 11 указаны отдельно.

Где посмотреть роли пользователя в режиме Предприятия

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

Путь по конфигурациям

КонфигурацияГде список пользователей и групп доступа
Бухгалтерия предприятия 3.0Администрирование → Настройки пользователей и прав
ЗУП 3.1Администрирование → Настройки пользователей и прав
Управление торговлей 11НСИ и администрирование → Настройки пользователей и прав

В этом разделе три ссылки, которые нужны для проверки: «Пользователи», «Группы доступа» и «Профили групп доступа».

Пошагово: от пользователя к ролям

  1. Откройте список «Пользователи» и найдите сотрудника. Если его нет — проверьте отбор: недействительные пользователи по умолчанию могут быть скрыты.
  2. Откройте карточку и нажмите «Права доступа». Откроется перечень групп доступа, в которые он входит.
  3. Отметьте для себя, какие группы назначены. Чаще всего проблема видна уже здесь: сотрудник не в той группе или вообще ни в одной.
  4. Откройте группу доступа и перейдите к её профилю.
  5. В карточке профиля посмотрите список разрешённых действий — это и есть роли конфигурации, только с понятными названиями.
  6. Если в группе настроены ограничения (по организациям, складам, подразделениям), проверьте, какие значения разрешены именно этой группе.

Если у пользователя стоит отметка о полных правах или он входит в группу «Администраторы», проверять отдельные роли бессмысленно: ему доступно всё. Ищите причину отказа в другом месте — например, в закрытом периоде или в настройках самого документа.

Что даёт проверка через Предприятие

  • ✅ видно не только роли, но и ограничения по значениям — то, чего нет в Конфигураторе;
  • ✅ не нужно выгонять пользователей из базы;
  • ⚠️ видно то, что назначено, но не то, что получил текущий сеанс.

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

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

Список пользователей

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

Здесь роли видны под техническими именами из дерева метаданных. Например, ПолныеПрава, а не «Полные права».

Не меняйте роли пользователей в Конфигураторе, если в конфигурации есть группы доступа (БП, ЗУП, УТ, ERP и другие типовые). Подсистема прав пересчитывает роли из профилей и при следующей записи группы или обновлении вернёт всё как было. Ручная правка проживёт до первого пересчёта.

Окно «Все роли»

Второй инструмент Конфигуратора отвечает на обратный вопрос: какие роли дают право на конкретный объект.

  1. В дереве конфигурации раскройте Общие → Роли.
  2. Вызовите контекстное меню на ветке «Роли» и выберите «Все роли».
  3. Откроется таблица: слева объекты метаданных, сверху роли, на пересечениях — флажки прав.
  4. Найдите нужный справочник или документ и посмотрите, в каких ролях стоит право «Чтение», «Изменение» или «Проведение».

Так удобно разбирать жалобу «не могу провести документ »: находите роли с правом «Проведение» на этот документ и сверяете их со списком на вкладке «Прочие».

Там же видно, есть ли у права ограничение доступа к данным (RLS). Если в роли для объекта задан текст ограничения, пользователь получит доступ не ко всем записям, а только к разрешённым условием.

Анализ журнала регистрации: кто менял права

Журнал регистрации не покажет текущие роли. Зато он отвечает на вопрос «вчера работало, сегодня нет — что изменилось».

Где открыть:

  • в Предприятии: Администрирование → Обслуживание → Журнал регистрации;
  • в Конфигураторе: Администрирование → Журнал регистрации.

Какие события смотреть

СобытиеЧто оно показывает
«Пользователи. Изменение»Кто и когда изменил пользователя информационной базы, в том числе его роли
«Сеанс. Аутентификация»Под каким именем и с какого компьютера вошли в базу
Записи групп доступа и профилейИзменение состава группы или набора ролей в профиле (данные справочника)
«Доступ. Отказ в доступе»Попытка обратиться к данным без права. Регистрация событий доступа по умолчанию обычно выключена

Как отфильтровать

  1. Нажмите «Установить отбор».
  2. В отборе по событию оставьте только события группы «Пользователи».
  3. Укажите период: с последнего дня, когда всё работало.
  4. При необходимости отберите по пользователю — но учтите, что в событии фиксируется тот, кто вносил изменения, а не тот, чьи права меняли.

В поле «Данные» события «Пользователи. Изменение» указан изменённый пользователь. Двойной щелчок по строке открывает подробности события.

Если в журнале пусто, проверьте уровень логирования: Администрирование → Настройка журнала регистрации в Конфигураторе. При уровне «Не регистрировать» история не пишется.

Тестирование прав: запуск клиента под пользователем

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

Через параметры командной строки

Если вы знаете пароль тестовой учётной записи, запустите клиент с параметрами /N и /P:

"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Тестов" /P"Pa55word"

Для клиент-серверной базы вместо /F укажите /S"имя_сервера\имя_базы". Номер версии в пути замените на установленный у вас.

Через Конфигуратор в режиме отладки

  1. Откройте Сервис → Параметры → Запуск 1С:Предприятия.
  2. На вкладке «Основные» укажите пользователя и пароль.
  3. Запустите отладку (F5). Клиент откроется под указанным пользователем.

Удобно разработчику: можно поставить точку останова и посмотреть, на какой строке возникает отказ.

Тестовый двойник вместо чужого пароля

Не сбрасывайте пароль реального сотрудника ради проверки — он потеряет доступ, а все действия в журнале запишутся на его имя.

Правильнее завести тестового пользователя:

  1. Скопируйте карточку сотрудника в списке «Пользователи» (команда копирования или F9).
  2. Задайте имя вроде «Тест_Иванов» и свой пароль.
  3. Проверьте, что группы доступа совпадают с оригиналом. Если копия их не унаследовала — включите вручную.
  4. Войдите под тестовой учётной записью и повторите действие, на которое жалуется пользователь.
  5. После проверки сделайте пользователя недействительным или удалите.

Роли читаются при входе в базу. Если вы изменили права, пользователь должен закрыть 1С и зайти заново. Пока открыт старый сеанс, работают старые роли.

Проверка роли в коде на клиенте

Разработчику часто нужно другое: проверить роль программно, чтобы скрыть кнопку или не дать запустить обработку. Для этого в платформе есть две функции.

ФункцияЧто проверяетГде удобнее вызывать
РольДоступна("ИмяРоли")Назначена ли текущему пользователю рольРаботает и в клиентском, и в серверном контексте
ПравоДоступа("Изменение", Метаданные.Справочники.Номенклатура)Есть ли право на объект с учётом всех ролейВ серверном контексте

РольДоступна принимает имя роли из метаданных, а не синоним. Можно передать и сам объект: РольДоступна(Метаданные.Роли.ПолныеПрава).

Пример: проверка роли в клиентской команде

&НаКлиенте
Процедура ЗагрузитьЦены(Команда)

    Если Не РольДоступна("ПолныеПрава") Тогда
        ПоказатьПредупреждение(, "Загрузка цен доступна только администратору.");
        Возврат;
    КонецЕсли;

    ЗагрузитьЦеныНаСервере();

КонецПроцедуры

Пример: проверка права на сервере и передача флага на клиент

Проверять роль по имени хрупко: роли переименовывают, дробят, добавляют новые. Надёжнее спрашивать само право.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    МожноМенятьНоменклатуру = ПравоДоступа("Изменение", Метаданные.Справочники.Номенклатура);
    Элементы.ФормаЗагрузитьЦены.Доступность = МожноМенятьНоменклатуру;

КонецПроцедуры

Здесь ФормаЗагрузитьЦены — имя кнопки в командной панели формы. Замените его на своё.

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

Функции проверки ролей не учитывают ограничения на уровне записей. ПравоДоступа вернёт Истина, а конкретный документ чужой организации всё равно не откроется.

Сравнение способов проверить роль

СпособЧто показываетКогда использоватьОграничения
Карточка пользователя и группы доступаГруппы, профили, роли, ограничения по значениямПервая проверка при любой жалобеНе показывает действующий сеанс
Конфигуратор, вкладка «Прочие»Роли пользователя ИБНетиповые базы без групп доступаНужен доступ в Конфигуратор
Конфигуратор, «Все роли»Какие роли дают право на объект«Не могу провести / изменить X»Не связано с конкретным пользователем
Журнал регистрацииКто и когда менял права«Вчера работало, сегодня нет»Только при включённом логировании
Вход под тестовым пользователемРеальное поведение клиентаФинальная проверка после настройкиНужна тестовая учётная запись
РольДоступна, ПравоДоступаПрава в текущем сеансеДоработка форм и командНе видит RLS

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

Почему роль назначена, а доступа нет

Ниже — ситуации, когда проверка показывает «всё есть», а пользователь видит Нарушение прав доступа! или не находит команду.

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

Конфликты ролей

Права в 1С складываются. Если одна роль разрешает изменение, а другая не даёт его, пользователь изменять сможет. Запретить право другой ролью нельзя.

Отсюда два практических вывода:

  • 🔸 чтобы сузить доступ, убирайте лишние роли, а не добавляйте «запрещающие»;
  • 🔸 ограничения RLS в разных ролях тоже объединяются: если одна роль даёт доступ ко всем записям без условия, условие другой роли перестаёт действовать.

Второй случай — частая причина, почему сотрудник вдруг видит данные чужой организации. Проверьте, нет ли у него группы доступа с широким профилем вроде полного доступа к справочникам.

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

Можно ли узнать роли текущего пользователя, не будучи администратором?
Нет, список пользователей и групп доступа открывается только при административных правах. Обычный пользователь видит лишь последствия: доступные разделы и команды.
Чем роль отличается от профиля группы доступа?
Роль — объект конфигурации, её создаёт разработчик. Профиль — набор ролей, который собирает администратор в Предприятии без изменения конфигурации.
Нужно ли выгонять пользователей из базы, чтобы поменять роли?
Нет. Изменение ролей не требует монопольного доступа. Новые права начнут действовать, когда пользователь войдёт в базу заново.
Почему РольДоступна возвращает Истина, а форма всё равно не открывается?
Роль может не давать права на саму форму или связанный с ней объект. Проверьте право на объект через ПравоДоступа и ограничения на уровне записей.
Как проверить права в веб-клиенте?
Так же, как в тонком клиенте: роли общие для всех видов клиента. Войдите в веб-клиент под тестовым пользователем и повторите действие.