Как получить отчет по правам пользователей в 1С:УПП 1.3?

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

При работе с крупными базами на платформе 1С, такими как УПП 1.3, администраторы и программисты часто сталкиваются с необходимостью провести аудит безопасности. Типовые средства конфигурации на обычных формах не всегда позволяют наглядно увидеть, какие именно права есть у конкретного сотрудника или отдела, особенно когда роли пересекаются или используются сложные ограничения на уровне записей (RLS). Разберем наиболее эффективные инструменты и методы для формирования отчета по правам пользователей.

Использование консоли Инструменты разработчика (ИР)

Одним из самых мощных и проверенных средств является комплекс Инструменты разработчика (автор TormozIT). Рассмотрим подробнее, как этот инструмент помогает в анализе прав. В составе ИР есть специализированная консоль Анализ прав доступа. Она позволяет не просто увидеть список назначенных ролей, а получить итоговую картину по каждому объекту метаданных (справочнику, документу, регистру).

Проанализируем основные варианты использования ИР для нашей задачи:

  1. Портативный вариант: Вы можете запустить ИР как набор внешних обработок. Это удобно, так как не требует внесения изменений в конфигурацию. Однако стоит учитывать, что в портативной версии функционал анализа прав может быть ограничен из-за особенностей взаимодействия с метаданными в обычном приложении.
  2. Встраивание в конфигурацию: Для получения полного доступа ко всем возможностям рекомендуется объединить подсистему ИР с вашей базой. Это добавит необходимые объекты в дерево метаданных, и вы сможете формировать детальные отчеты по правам непосредственно из интерфейса программы.
  3. Расширение конфигурации: Если ваша платформа выше версии 8.3.9, можно использовать вариант с расширением. Это позволит избежать снятия конфигурации с поддержки, при этом сохранив высокую скорость работы инструмента.

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

Специализированная обработка Настройка и анализ прав доступа

Существует проверенное временем решение, часто упоминаемое специалистами для работы в обычном приложении. Эта обработка позволяет построить так называемую матрицу прав. Разберем по шагам, чем она полезна:

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

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

Выгрузка в Excel: Часто отчет по правам требуется предоставить руководству или службе безопасности. Данная обработка поддерживает корректный вывод матрицы в табличный документ, который затем легко сохранить в формат Excel для дальнейшего анализа вне системы 1С.

Программный метод получения данных о правах

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

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


// Пример получения списка ролей пользователя
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("ИвановИИ");
Для Каждого Роль Из ПользовательИБ.Роли Цикл
    Сообщить("У пользователя назначена роль: " + Роль.Имя);
КонецЦикла;

// Проверка конкретного права на объект
Если ПравоДоступа("Чтение", Метаданные.Документы.РеализацияТоваровУслуг, ПользовательИБ) Тогда
    Сообщить("Пользователь может просматривать реализации.");
КонецЕсли;

Для построения отчета «по отделам» в УПП 1.3 нам нужно связать данные из справочника Пользователи (где обычно хранится информация о подразделении сотрудника) с объектами ПользователиИнформационнойБазы. Выясним причину, почему это важно: права назначаются на уровне платформы (Пользователь ИБ), а оргструктура хранится в данных (Справочник).

Особенности работы на платформе 8.3 в режиме совместимости

Поскольку УПП 1.3 работает в режиме совместимости с версией 8.2.13, при использовании современных обработок могут возникать нюансы. Разберем их подробнее:

  1. Толстый клиент: Большинство инструментов для анализа прав в обычном приложении требуют запуска базы именно в режиме толстого клиента. В тонком клиенте многие методы работы с метаданными и ролями будут недоступны.
  2. Общие модули: При использовании внешних обработок (например, при переносе из других баз) может возникнуть ошибка доступа к серверным модулям. Проверьте, чтобы в свойствах общих модулей, к которым обращается обработка, стояла галочка Клиент (обычное приложение).
  3. RLS (Record Level Security): Помните, что обычный отчет по ролям не показывает ограничения на уровне записей. Если пользователю разрешено чтение документов, но настроен RLS по организации, он увидит только «свои» данные. Инструменты типа ИР позволяют анализировать и эти настройки, что крайне важно для корректного аудита в УПП.

Подводя итог, для быстрого и качественного выявления прав в УПП 1.3 оптимальным решением будет использование Инструментов разработчика или специализированных матричных отчетов с порталов сообщества 1С. Это позволит избежать ручного перебора ролей в конфигураторе и даст наглядную картину доступа в разрезе структуры предприятия.

← На главную