Как найти, в какой роли назначены права на общую команду, и проанализировать права роли в 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе администрирования и доработки конфигураций на платформе 1С:Предприятие разработчики часто сталкиваются с ситуацией, когда у пользователя с минимальными правами внезапно отображаются интерфейсные элементы или команды, доступ к которым должен быть ограничен. Типичный пример — общая команда ПерсональныеНастройки в конфигурации «Зарплата и управление персоналом» (ЗУП 3), которая неожиданно появляется в меню «Главное» у пользователя без административных прав. Выяснить вручную, какая именно роль предоставляет доступ к объекту, бывает крайне сложно из-за сотен существующих ролей в современных типовых решениях.

В этой статье мы подробно разберем, как быстро найти роль, дающую права на общую команду, как исключить это право и как эффективно проанализировать весь состав прав конкретной роли без ручного перебора всех объектов метаданных.

Метод 1. Поиск роли через форму «Все роли» в Конфигураторе

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

  1. Откроем Конфигуратор и найдем в дереве метаданных интересующий нас объект. В нашем случае перейдем в ветку Общие -> Общие команды -> ПерсональныеНастройки.
  2. Нажмем правой кнопкой мыши по объекту и выберем пункт Дополнительно (или откроем палитру свойств объекта).
  3. Перейдем на закладку Права. Перед нами откроется список всех ролей, существующих в системе.
  4. Для удобства анализа мы можем отфильтровать список. Обратите внимание на флажки в верхней части окна прав. Сняв лишние отметки, мы сможем увидеть только те роли, у которых установлен флаг напротив права Просмотр или Прослушивание для данной команды.

Именно этот метод позволяет быстро обнаружить, что помимо роли ПолныеПрава, отметка также установлена в малозаметных ролях, таких как БазовыеПраваЗарплатаКадрыРасширенная.

Метод 2. Анализ связей через поиск ссылок на объект

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

  1. В дереве метаданных Конфигуратора нажмем правой кнопкой мыши на общую команду ПерсональныеНастройки.
  2. Выберем пункт Поиск ссылок на объект.
  3. Проанализируем окно результатов. Программа покажет, в каких элементах интерфейса задействована команда. Например, мы можем обнаружить её использование в:
    • Панели навигации рабочего стола (в разделе «Сервис»);
    • Командном интерфейсе конкретных подсистем (например, подсистемы «Настройка»);
    • Функциональных опциях, которые могут динамически управлять видимостью команды в зависимости от настроек программы.

Метод 3. Получение отчета по правам роли в Конфигураторе

Когда вы обнаружили подозрительную роль (например, БазовыеПраваЗарплатаКадрыРасширенная) и хотите понять, какие еще права она предоставляет пользователю, перещелкивать каждый объект метаданных вручную не имеет смысла. Для этого в платформе предусмотрен штатный механизм выгрузки отчета.

Рассмотрим по шагам, как сформировать отчет по правам роли:

  1. В главном меню Конфигуратора выберем пункт Конфигурация -> Отчеты -> Отчет по конфигурации.
  2. В открывшемся окне настроек нажмем кнопку Настройка.
  3. В списке объектов снимем все флажки, кроме раздела Роли.
  4. Раскроем список ролей и установим флажок только напротив интересующей нас роли (например, БазовыеПраваЗарплатаКадрыРасширенная).
  5. Нажмем кнопку ОК, а затем Сформировать.

Полученный отчет покажет детальную структуру роли: все объекты метаданных и конкретные разрешенные действия (Чтение, Просмотр, Изменение, Редактирование и т. д.). Данный отчет можно сохранить в текстовый документ или таблицу Excel для последующего поиска и анализа.

Метод 4. Сквозной поиск через выгрузку конфигурации в XML-файлы

Для разработчиков, привыкших работать с текстовыми редакторами, существует еще более прогрессивный и быстрый метод поиска прав по всей конфигурации. Он особенно полезен при работе с крупными базами данных:

  1. В меню Конфигуратора выберем Конфигурация -> Выгрузка конфигурации в файлы....
  2. Укажем пустую локальную папку на диске и дождемся завершения процесса выгрузки. Платформа преобразует всю структуру метаданных в текстовые файлы формата XML.
  3. Откроем выгруженную папку в любом продвинутом текстовом редакторе, поддерживающем сквозной поиск по файлам (например, VS Code или Notepad++).
  4. Запустим поиск по всей папке (сочетание клавиш Ctrl + Shift + F) по ключевому имени нашей команды: CommonCommand.ПерсональныеНастройки
  5. Поисковая выдача моментально отобразит все файлы ролей (файлы с расширением .role), в которых содержится упоминание этой команды с установленными правами доступа. Пример структуры прав в XML-файле роли выглядит следующим образом:

<object>
    <name>CommonCommand.ПерсональныеНастройки</name>
    <right>
        <name>View</name>
        <value>true</value>
    </right>
</object>

Метод 5. Анализ прав в режиме «1С:Предприятие»

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

Разберем, как воспользоваться встроенным отчетом по правам доступа:

  1. Авторизуемся в программе под правами администратора.
  2. Перейдем в раздел Администрирование -> Настройки пользователей и прав -> Пользователи (или откроем справочник «Профили групп доступа»).
  3. Выберем интересующего нас сотрудника, у которого отображается лишняя команда, и нажмем на панели кнопку Права доступа.
  4. В открывшейся форме перейдем на вкладку Анализ прав доступа.
  5. Этот интерактивный отчет позволяет выбрать конкретный объект метаданных (нашу общую команду) и наглядно увидеть дерево ролей и профилей групп доступа, через которые пользователь получает права на этот объект.

Если стандартных отчетов БСП недостаточно, можно воспользоваться внешними обработками с порталов для разработчиков (например, «Матрица прав доступа»). Такие инструменты позволяют в удобной графической форме сопоставить роли и объекты метаданных.

Почему команда «Персональные настройки» доступна базовым ролям?

Выяснив техническую сторону вопроса, важно понять логику разработчиков фирмы «1С». Почему роль БазовыеПраваЗарплатаКадрыРасширенная, которая должна быть максимально ограниченной, содержит права на команду ПерсональныеНастройки?

Дело в том, что базовые права спроектированы как обязательный технологический фундамент для любого пользователя информационной базы. Без этой роли сеанс работы просто не сможет корректно инициализироваться. Команда Персональные настройки включена в этот перечень намеренно: любой сотрудник, даже обладающий доступом только к просмотру расчетного листка, должен иметь возможность индивидуально настроить интерфейс под себя — изменить масштаб отображения форм, отрегулировать вывод оповещений, настроить параметры печати или выбрать принтер. Ограничение этих базовых сервисных функций обычно не несет практической пользы для безопасности системы, поэтому разработчики оставляют их доступными по умолчанию для всех категорий пользователей.

← На главную