К статье
Практический материал

Администрирование · 10 мин

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

Как сравнить права двух пользователей в 1С:Предприятие 8.3: роли, профили групп доступа, отчёт о правах, обработки и проверка результата.

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

Выбор способа зависит от конфигурации. В системах на Библиотеке стандартных подсистем (УТ 11, ERP, Бухгалтерия 3.0, ЗУП 3.1) права складываются из профилей групп доступа и ролей, и сравнивать удобнее через разложение по ролям. В простых или самописных конфигурациях права назначаются напрямую ролями в конфигураторе — там достаточно сопоставить списки ролей двух учётных записей.

Что именно нужно сравнивать: профили, роли или права на объекты

Сравнение «в лоб» по названиям профилей групп доступа часто вводит в заблуждение. Два пользователя могут входить в разные группы доступа с разными профилями, но фактический набор ролей у них совпадёт — и наоборот, одинаковый профиль не гарантирует одинаковые права, если кому-то добавили индивидуальную роль или есть ограничения на уровне записей (RLS).

Корректный уровень сравнения — итоговый набор ролей, который получает пользователь при входе в сеанс. Роль — это единица прав в платформе: она определяет доступ к конкретным объектам метаданных (документам, справочникам, регистрам) и виды доступа (чтение, добавление, изменение, удаление, интерактивные операции).

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

Сравнение через отчёт «Права доступа» в типовых конфигурациях

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

Практический приём: сформируйте отчёт по первому пользователю, сохраните его в файл (MXL или Excel), затем сформируйте по второму и сравните табличные документы. В отчёте видно, какие роли и на какие объекты действуют, откуда они получены (из какого профиля и группы доступа), и есть ли ограничения на уровне записей.

Сравнение через отчёт о правах
  1. 1
    Откройте карточку первого пользователя и сформируйте отчёт о правах доступа
  2. 2
    Сохраните отчёт в файл MXL или Excel
  3. 3
    Повторите для второго пользователя и сохраните второй файл
  4. 4
    Откройте оба файла и сравните списки ролей и источники прав
  5. 5
    Особое внимание уделите разделам с ограничениями доступа на уровне записей

Если в карточке пользователя отчёт недоступен, проверьте, что у вас самих есть права администратора или роль «Настройка прав доступа». Без полных прав на администрирование отчёт либо не открывается, либо показывает неполные данные.

Сравнение списков ролей в конфигураторе

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

Сравнивать два длинных списка визуально неудобно и чревато ошибками. Надёжнее выгрузить список ролей программно и сравнить текстом. Небольшой фрагмент кода на встроенном языке решает задачу точно:

bsl
Пользователь1 = ПользователиИнформационнойБазы.НайтиПоИмени("Иванов");
Пользователь2 = ПользователиИнформационнойБазы.НайтиПоИмени("Петров");

Для Каждого Роль Из Метаданные.Роли Цикл
    ЕстьУ1 = Пользователь1.Роли.Содержит(Роль);
    ЕстьУ2 = Пользователь2.Роли.Содержит(Роль);
    Если ЕстьУ1 <> ЕстьУ2 Тогда
        Сообщить(Роль.Имя + " | " + ?(ЕстьУ1, "только у Иванова", "только у Петрова"));
    КонецЕсли;
КонецЦикла;

Этот код выводит только различающиеся роли — именно то, что нужно при диагностике. Выполнить его можно через внешнюю обработку, консоль кода или временную обработку «Выполнить произвольный код», если она есть в конфигурации. Для запуска нужны права администратора.

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

Сравнение профилей и групп доступа

Когда права управляются через профили, сначала выгрузите состав каждого пользователя: в какие группы доступа он включён и какие профили за этими группами закреплены. В карточке пользователя (раздел «Администрирование» → «Пользователи») есть таблица групп доступа — сравните её у двух сотрудников.

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

Способы сравнения прав

Отчёт о правах доступа

Подходит для типовых конфигураций на БСП; наглядно, но требует ручного сопоставления двух отчётов

Код на встроенном языке

Точный список различий по ролям; требует прав администратора и умения запустить код

Сравнение профилей групп доступа

Быстро показывает разницу в источниках прав, но не раскрывает итоговый набор ролей

Внешние обработки анализа прав

Удобны для регулярных проверок; требуют проверки совместимости с вашей версией конфигурации

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

Проверка результата и типичные ошибки

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

Типичные ошибки при сравнении прав
01
Сравнение профилей вместо итоговых ролей — разные профили могут давать одинаковые роли, и вывод о различии прав будет ложным
02
Игнорирование ограничений на уровне записей — роли совпадают, но пользователь видит меньше данных из-за разных разрешённых значений
03
Проверка в активном сеансе — пользователь не перезашёл после изменения прав, и старые права продолжают действовать
04
Наличие полных прав у одного из пользователей — роль «Полные права» перекрывает любые сравнения, её нужно учитывать первой
05
Забытые индивидуальные роли, назначенные напрямую в конфигураторе в обход механизма профилей

Отдельно проверьте флаг «Полные права» (роль администратора) у обоих пользователей. Если у одного он установлен, сравнение остальных ролей теряет смысл — пользователь с полными правами имеет доступ ко всему независимо от профилей.

Внешние обработки и когда обращаться к специалисту

Для регулярных аудитов прав удобны внешние обработки анализа: они строят сводную таблицу «пользователь — роль — объект метаданных» и позволяют отфильтровать данные по двум учётным записям. Такие обработки распространяются на профильных ресурсах; перед использованием проверьте совместимость с версией вашей конфигурации и платформы и запускайте сначала на копии базы.

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

Итог

Что важно запомнить

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

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

Почему у двух пользователей одинаковые группы доступа, но один видит документы, а второй нет?

Чаще всего причина в ограничениях на уровне записей: у пользователей разные разрешённые значения доступа (организации, склады, подразделения). Проверьте вкладку с разрешёнными значениями в группах доступа и личные настройки пользователя. Вторая возможная причина — второй пользователь не перезашёл в программу после изменения прав.

Как быстро найти, какой роли не хватает пользователю для конкретного действия?

Включите технологический журнал с событием проверки прав доступа или воспользуйтесь отчётом «Анализ прав доступа» по конкретному объекту: он покажет, какие роли дают нужное право и у кого из пользователей они есть. Затем добавьте недостающую роль через профиль, а не напрямую.

Можно ли сравнить права без прав администратора?

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

Нужно ли перезапускать сервер 1С после изменения прав?

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

Чем сравнение прав отличается в файловой и клиент-серверной базе?

С точки зрения механики прав — ничем: роли, профили и RLS работают одинаково. Различие практическое: в клиент-серверном варианте проще централизованно завершать сеансы пользователей через консоль кластера, чтобы изменения прав вступили в силу у всех сразу.