Какие права реально получает пользователь 1С и где это увидеть
Содержание
Проверить роль пользователя
на клиенте 1С быстрее всего так: откройте Администрирование → Настройки пользователей и прав → Пользователи, карточку сотрудника и команду «Права доступа
» — там видны группы доступа, а через их профили и сами роли. Чтобы убедиться, что права работают, запустите клиент под этим пользователем. В коде клиентского модуля роль проверяет функция РольДоступна("ИмяРоли").
Частая ошибка администратора — смотреть только на список ролей. Роль может быть назначена, а документ всё равно не открывается: мешает ограничение на уровне записей, старый сеанс или роль, которую перезаписала подсистема прав. Поэтому проверка ролей 1С — это три вопроса: что назначено, что действует в сеансе и что пользователь видит на экране.
Инструкция для 1С:Предприятия 8.3 в интерфейсе «Такси». Пути даны для БП 3.0 и ЗУП 3.1, отличия для УТ 11 указаны отдельно.
Где посмотреть роли пользователя в режиме Предприятия
В типовых конфигурациях роли напрямую не раздают. Работает цепочка: пользователь → группа доступа → профиль → роли. Администратор включает сотрудника в группу доступа, а набор ролей задаётся профилем этой группы.
Путь по конфигурациям
| Конфигурация | Где список пользователей и групп доступа |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Настройки пользователей и прав |
| ЗУП 3.1 | Администрирование → Настройки пользователей и прав |
| Управление торговлей 11 | НСИ и администрирование → Настройки пользователей и прав |
В этом разделе три ссылки, которые нужны для проверки: «Пользователи», «Группы доступа» и «Профили групп доступа».
Пошагово: от пользователя к ролям
- Откройте список «Пользователи» и найдите сотрудника. Если его нет — проверьте отбор: недействительные пользователи по умолчанию могут быть скрыты.
- Откройте карточку и нажмите «Права доступа». Откроется перечень групп доступа, в которые он входит.
- Отметьте для себя, какие группы назначены. Чаще всего проблема видна уже здесь: сотрудник не в той группе или вообще ни в одной.
- Откройте группу доступа и перейдите к её профилю.
- В карточке профиля посмотрите список разрешённых действий — это и есть роли конфигурации, только с понятными названиями.
- Если в группе настроены ограничения (по организациям, складам, подразделениям), проверьте, какие значения разрешены именно этой группе.
Если у пользователя стоит отметка о полных правах или он входит в группу «Администраторы», проверять отдельные роли бессмысленно: ему доступно всё. Ищите причину отказа в другом месте — например, в закрытом периоде или в настройках самого документа.
Что даёт проверка через Предприятие
- ✅ видно не только роли, но и ограничения по значениям — то, чего нет в Конфигураторе;
- ✅ не нужно выгонять пользователей из базы;
- ⚠️ видно то, что назначено, но не то, что получил текущий сеанс.
Проверка ролей 1С через Конфигуратор
Конфигуратор показывает роли, записанные за пользователем информационной базы. Это уровень платформы — без групп доступа и профилей.
Список пользователей
- Запустите базу в режиме Конфигуратора.
- Откройте
Администрирование → Пользователи. - Дважды щёлкните по пользователю и перейдите на вкладку «Прочие».
- Флажками отмечены роли, которые у него есть.
Здесь роли видны под техническими именами из дерева метаданных. Например, ПолныеПрава, а не «Полные права».
Не меняйте роли пользователей в Конфигураторе, если в конфигурации есть группы доступа (БП, ЗУП, УТ, ERP и другие типовые). Подсистема прав пересчитывает роли из профилей и при следующей записи группы или обновлении вернёт всё как было. Ручная правка проживёт до первого пересчёта.
Окно «Все роли»
Второй инструмент Конфигуратора отвечает на обратный вопрос: какие роли дают право на конкретный объект.
- В дереве конфигурации раскройте
Общие → Роли. - Вызовите контекстное меню на ветке «Роли» и выберите «Все роли».
- Откроется таблица: слева объекты метаданных, сверху роли, на пересечениях — флажки прав.
- Найдите нужный справочник или документ и посмотрите, в каких ролях стоит право «Чтение», «Изменение» или «Проведение».
Так удобно разбирать жалобу «не могу провести документ »: находите роли с правом «Проведение» на этот документ и сверяете их со списком на вкладке «Прочие».
Там же видно, есть ли у права ограничение доступа к данным (RLS). Если в роли для объекта задан текст ограничения, пользователь получит доступ не ко всем записям, а только к разрешённым условием.
Анализ журнала регистрации: кто менял права
Журнал регистрации не покажет текущие роли. Зато он отвечает на вопрос «вчера работало, сегодня нет — что изменилось».
Где открыть:
- в Предприятии:
Администрирование → Обслуживание → Журнал регистрации; - в Конфигураторе:
Администрирование → Журнал регистрации.
Какие события смотреть
| Событие | Что оно показывает |
|---|---|
| «Пользователи. Изменение» | Кто и когда изменил пользователя информационной базы, в том числе его роли |
| «Сеанс. Аутентификация» | Под каким именем и с какого компьютера вошли в базу |
| Записи групп доступа и профилей | Изменение состава группы или набора ролей в профиле (данные справочника) |
| «Доступ. Отказ в доступе» | Попытка обратиться к данным без права. Регистрация событий доступа по умолчанию обычно выключена |
Как отфильтровать
- Нажмите «Установить отбор».
- В отборе по событию оставьте только события группы «Пользователи».
- Укажите период: с последнего дня, когда всё работало.
- При необходимости отберите по пользователю — но учтите, что в событии фиксируется тот, кто вносил изменения, а не тот, чьи права меняли.
В поле «Данные» события «Пользователи. Изменение» указан изменённый пользователь. Двойной щелчок по строке открывает подробности события.
Если в журнале пусто, проверьте уровень логирования: Администрирование → Настройка журнала регистрации в Конфигураторе. При уровне «Не регистрировать» история не пишется.
Тестирование прав: запуск клиента под пользователем
Самая надёжная проверка роли на клиенте — войти в базу так, как входит сотрудник. Всё остальное показывает настройки, а этот способ — результат.
Через параметры командной строки
Если вы знаете пароль тестовой учётной записи, запустите клиент с параметрами /N и /P:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Тестов" /P"Pa55word"
Для клиент-серверной базы вместо /F укажите /S"имя_сервера\имя_базы". Номер версии в пути замените на установленный у вас.
Через Конфигуратор в режиме отладки
- Откройте
Сервис → Параметры → Запуск 1С:Предприятия. - На вкладке «Основные» укажите пользователя и пароль.
- Запустите отладку (F5). Клиент откроется под указанным пользователем.
Удобно разработчику: можно поставить точку останова и посмотреть, на какой строке возникает отказ.
Тестовый двойник вместо чужого пароля
Не сбрасывайте пароль реального сотрудника ради проверки — он потеряет доступ, а все действия в журнале запишутся на его имя.
Правильнее завести тестового пользователя:
- Скопируйте карточку сотрудника в списке «Пользователи» (команда копирования или F9).
- Задайте имя вроде «Тест_Иванов» и свой пароль.
- Проверьте, что группы доступа совпадают с оригиналом. Если копия их не унаследовала — включите вручную.
- Войдите под тестовой учётной записью и повторите действие, на которое жалуется пользователь.
- После проверки сделайте пользователя недействительным или удалите.
Роли читаются при входе в базу. Если вы изменили права, пользователь должен закрыть 1С и зайти заново. Пока открыт старый сеанс, работают старые роли.
Проверка роли в коде на клиенте
Разработчику часто нужно другое: проверить роль программно, чтобы скрыть кнопку или не дать запустить обработку. Для этого в платформе есть две функции.
| Функция | Что проверяет | Где удобнее вызывать |
|---|---|---|
РольДоступна("ИмяРоли") | Назначена ли текущему пользователю роль | Работает и в клиентском, и в серверном контексте |
ПравоДоступа("Изменение", Метаданные.Справочники.Номенклатура) | Есть ли право на объект с учётом всех ролей | В серверном контексте |
РольДоступна принимает имя роли из метаданных, а не синоним. Можно передать и сам объект: РольДоступна(Метаданные.Роли.ПолныеПрава).
Пример: проверка роли в клиентской команде
&НаКлиенте
Процедура ЗагрузитьЦены(Команда)
Если Не РольДоступна("ПолныеПрава") Тогда
ПоказатьПредупреждение(, "Загрузка цен доступна только администратору.");
Возврат;
КонецЕсли;
ЗагрузитьЦеныНаСервере();
КонецПроцедуры
Пример: проверка права на сервере и передача флага на клиент
Проверять роль по имени хрупко: роли переименовывают, дробят, добавляют новые. Надёжнее спрашивать само право.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
МожноМенятьНоменклатуру = ПравоДоступа("Изменение", Метаданные.Справочники.Номенклатура);
Элементы.ФормаЗагрузитьЦены.Доступность = МожноМенятьНоменклатуру;
КонецПроцедуры
Здесь ФормаЗагрузитьЦены — имя кнопки в командной панели формы. Замените его на своё.
В конфигурациях на БСП есть серверная функция Пользователи.РолиДоступны("Роль1,Роль2"). Она учитывает полноправных пользователей. Для проверки администратора используют Пользователи.ЭтоПолноправныйПользователь().
Функции проверки ролей не учитывают ограничения на уровне записей. ПравоДоступа вернёт Истина, а конкретный документ чужой организации всё равно не откроется.
Сравнение способов проверить роль
| Способ | Что показывает | Когда использовать | Ограничения |
|---|---|---|---|
| Карточка пользователя и группы доступа | Группы, профили, роли, ограничения по значениям | Первая проверка при любой жалобе | Не показывает действующий сеанс |
| Конфигуратор, вкладка «Прочие» | Роли пользователя ИБ | Нетиповые базы без групп доступа | Нужен доступ в Конфигуратор |
| Конфигуратор, «Все роли» | Какие роли дают право на объект | «Не могу провести / изменить X» | Не связано с конкретным пользователем |
| Журнал регистрации | Кто и когда менял права | «Вчера работало, сегодня нет» | Только при включённом логировании |
| Вход под тестовым пользователем | Реальное поведение клиента | Финальная проверка после настройки | Нужна тестовая учётная запись |
РольДоступна, ПравоДоступа | Права в текущем сеансе | Доработка форм и команд | Не видит RLS |
Порядок на практике: карточка пользователя → «Все роли» для спорного объекта → вход под тестовым двойником. Журнал подключайте, когда права менялись недавно.
Почему роль назначена, а доступа нет
Ниже — ситуации, когда проверка показывает «всё есть», а пользователь видит Нарушение прав доступа! или не находит команду.
Конфликты ролей
Права в 1С складываются. Если одна роль разрешает изменение, а другая не даёт его, пользователь изменять сможет. Запретить право другой ролью нельзя.
Отсюда два практических вывода:
- 🔸 чтобы сузить доступ, убирайте лишние роли, а не добавляйте «запрещающие»;
- 🔸 ограничения RLS в разных ролях тоже объединяются: если одна роль даёт доступ ко всем записям без условия, условие другой роли перестаёт действовать.
Второй случай — частая причина, почему сотрудник вдруг видит данные чужой организации. Проверьте, нет ли у него группы доступа с широким профилем вроде полного доступа к справочникам.