Администрирование · 10 мин
Как сравнить права двух пользователей в 1С
Как сравнить права двух пользователей в 1С:Предприятие 8.3: роли, профили групп доступа, отчёт о правах, обработки и проверка результата.
Права пользователей в 1С расходятся незаметно: одному добавили роль «на время», другому выдали дополнительный профиль доступа, третий числится в группе, о которой все забыли. Когда один сотрудник видит документ, а второй — нет, или наоборот, у кого-то оказался лишний доступ к зарплате, первый практический вопрос — чем именно отличаются их настройки. Простого встроенного отчёта «сравни двух пользователей» в типовых конфигурациях нет, но задача решается несколькими рабочими способами.
Выбор способа зависит от конфигурации. В системах на Библиотеке стандартных подсистем (УТ 11, ERP, Бухгалтерия 3.0, ЗУП 3.1) права складываются из профилей групп доступа и ролей, и сравнивать удобнее через разложение по ролям. В простых или самописных конфигурациях права назначаются напрямую ролями в конфигураторе — там достаточно сопоставить списки ролей двух учётных записей.
Что именно нужно сравнивать: профили, роли или права на объекты
Сравнение «в лоб» по названиям профилей групп доступа часто вводит в заблуждение. Два пользователя могут входить в разные группы доступа с разными профилями, но фактический набор ролей у них совпадёт — и наоборот, одинаковый профиль не гарантирует одинаковые права, если кому-то добавили индивидуальную роль или есть ограничения на уровне записей (RLS).
Корректный уровень сравнения — итоговый набор ролей, который получает пользователь при входе в сеанс. Роль — это единица прав в платформе: она определяет доступ к конкретным объектам метаданных (документам, справочникам, регистрам) и виды доступа (чтение, добавление, изменение, удаление, интерактивные операции).
Дополнительно учитывайте ограничения доступа на уровне записей: два пользователя с одинаковыми ролями могут видеть разный объём данных, если у них разные группы доступа к организациям, складам или контрагентам. Сравнение ролей покажет, что права «одинаковые», но по факту доступ к данным будет различаться.
Сравнение через отчёт «Права доступа» в типовых конфигурациях
В конфигурациях на БСП (Управление торговлей 11, ERP, Комплексная автоматизация, ЗУП 3.1, Бухгалтерия 3.0) есть встроенный механизм анализа прав. Откройте раздел «Администрирование» → «Настройки прав и пользователей» → «Группы доступа» и посмотрите отчёт по правам — в разных версиях он называется «Права доступа», «Анализ прав доступа» или доступен из карточки пользователя по кнопке «Отчёт о правах доступа».
Практический приём: сформируйте отчёт по первому пользователю, сохраните его в файл (MXL или Excel), затем сформируйте по второму и сравните табличные документы. В отчёте видно, какие роли и на какие объекты действуют, откуда они получены (из какого профиля и группы доступа), и есть ли ограничения на уровне записей.
- 1Откройте карточку первого пользователя и сформируйте отчёт о правах доступа
- 2Сохраните отчёт в файл MXL или Excel
- 3Повторите для второго пользователя и сохраните второй файл
- 4Откройте оба файла и сравните списки ролей и источники прав
- 5Особое внимание уделите разделам с ограничениями доступа на уровне записей
Если в карточке пользователя отчёт недоступен, проверьте, что у вас самих есть права администратора или роль «Настройка прав доступа». Без полных прав на администрирование отчёт либо не открывается, либо показывает неполные данные.
Сравнение списков ролей в конфигураторе
Для конфигураций без механизма групп доступа (или когда права назначены напрямую) откройте конфигуратор: «Администрирование» → «Пользователи». В карточке пользователя на вкладке «Прочие» отображается список назначенных ролей с флажками.
Сравнивать два длинных списка визуально неудобно и чревато ошибками. Надёжнее выгрузить список ролей программно и сравнить текстом. Небольшой фрагмент кода на встроенном языке решает задачу точно:
Пользователь1 = ПользователиИнформационнойБазы.НайтиПоИмени("Иванов");
Пользователь2 = ПользователиИнформационнойБазы.НайтиПоИмени("Петров");
Для Каждого Роль Из Метаданные.Роли Цикл
ЕстьУ1 = Пользователь1.Роли.Содержит(Роль);
ЕстьУ2 = Пользователь2.Роли.Содержит(Роль);
Если ЕстьУ1 <> ЕстьУ2 Тогда
Сообщить(Роль.Имя + " | " + ?(ЕстьУ1, "только у Иванова", "только у Петрова"));
КонецЕсли;
КонецЦикла;Этот код выводит только различающиеся роли — именно то, что нужно при диагностике. Выполнить его можно через внешнюю обработку, консоль кода или временную обработку «Выполнить произвольный код», если она есть в конфигурации. Для запуска нужны права администратора.
Учтите: метод показывает роли, назначенные учётной записи напрямую. В конфигурациях с группами доступа роли пользователю обычно не назначаются в конфигураторе вовсе — они вычисляются из профилей, и сравнение нужно вести на уровне профилей.
Сравнение профилей и групп доступа
Когда права управляются через профили, сначала выгрузите состав каждого пользователя: в какие группы доступа он включён и какие профили за этими группами закреплены. В карточке пользователя (раздел «Администрирование» → «Пользователи») есть таблица групп доступа — сравните её у двух сотрудников.
Дальше возможны две ситуации. Если группы различаются — различие прав очевидно, остаётся посмотреть, какие роли даёт «лишний» профиль. Если группы совпадают, а поведение программы разное — ищите проблему глубже: в значениях разрешенных доступа (организации, склады, подразделения), в устаревшем кэше прав или в индивидуальных настройках.
Способы сравнения прав
Подходит для типовых конфигураций на БСП; наглядно, но требует ручного сопоставления двух отчётов
Точный список различий по ролям; требует прав администратора и умения запустить код
Быстро показывает разницу в источниках прав, но не раскрывает итоговый набор ролей
Удобны для регулярных проверок; требуют проверки совместимости с вашей версией конфигурации
Полезный приём — вычислить итоговые роли через профили. В конфигурациях на БСП состав ролей профиля хранится в табличной части «Роли» справочника «Профили групп доступа». Выгрузив составы профилей обоих пользователей и объединив их, вы получите два полных набора ролей, которые уже можно сравнить построчно.
Проверка результата и типичные ошибки
После сравнения и выравнивания прав проверьте результат не по настройкам, а по фактическому поведению. Войдите под вторым пользователем (или попросите его войти) и убедитесь, что нужные документы открываются, а закрытые разделы действительно недоступны. Изменения в группах доступа применяются к сеансу обычно после повторного входа — активный сеанс может продолжать работать со старым набором прав.
Отдельно проверьте флаг «Полные права» (роль администратора) у обоих пользователей. Если у одного он установлен, сравнение остальных ролей теряет смысл — пользователь с полными правами имеет доступ ко всему независимо от профилей.
Внешние обработки и когда обращаться к специалисту
Для регулярных аудитов прав удобны внешние обработки анализа: они строят сводную таблицу «пользователь — роль — объект метаданных» и позволяют отфильтровать данные по двум учётным записям. Такие обработки распространяются на профильных ресурсах; перед использованием проверьте совместимость с версией вашей конфигурации и платформы и запускайте сначала на копии базы.
Есть ситуации, где самостоятельное сравнение лучше не продолжать: если конфигурация сильно доработана и права выдаются программно в коде, если действуют сложные шаблоны RLS, или если расхождение прав касается финансовых и зарплатных данных и требует документирования для аудита. В этих случаях привлеките специалиста по 1С — ошибка в правах на таких участках ведёт либо к утечке данных, либо к остановке работы сотрудников.
Что важно запомнить
Сравнивайте не профили, а итоговый набор ролей и ограничения на уровне записей. В типовых конфигурациях используйте отчёт о правах доступа, в простых — программное сравнение списков ролей. Результат проверяйте фактическим входом под пользователем после повторной авторизации.
Частые вопросы
Почему у двух пользователей одинаковые группы доступа, но один видит документы, а второй нет?
Чаще всего причина в ограничениях на уровне записей: у пользователей разные разрешённые значения доступа (организации, склады, подразделения). Проверьте вкладку с разрешёнными значениями в группах доступа и личные настройки пользователя. Вторая возможная причина — второй пользователь не перезашёл в программу после изменения прав.
Как быстро найти, какой роли не хватает пользователю для конкретного действия?
Включите технологический журнал с событием проверки прав доступа или воспользуйтесь отчётом «Анализ прав доступа» по конкретному объекту: он покажет, какие роли дают нужное право и у кого из пользователей они есть. Затем добавьте недостающую роль через профиль, а не напрямую.
Можно ли сравнить права без прав администратора?
Полноценно — нет. Просмотр чужих учётных записей, профилей и отчётов о правах требует административных прав. Обычный пользователь может сравнить только собственное поведение программы с описанием коллеги, что не даёт точной картины.
Нужно ли перезапускать сервер 1С после изменения прав?
Нет, сервер перезапускать не требуется. Достаточно, чтобы пользователь завершил сеанс и вошёл заново — новый набор прав подхватывается при старте сеанса. В файловых базах иногда помогает также очистка локального кэша, если изменения «не применяются».
Чем сравнение прав отличается в файловой и клиент-серверной базе?
С точки зрения механики прав — ничем: роли, профили и RLS работают одинаково. Различие практическое: в клиент-серверном варианте проще централизованно завершать сеансы пользователей через консоль кластера, чтобы изменения прав вступили в силу у всех сразу.