На протяжении многих лет работа с ролями в конфигураторе 1С:Предприятие считалась одной из самых трудозатратных и монотонных задач для разработчика. Процесс настройки прав доступа в крупных прикладных решениях, таких как ERP или Комплексная автоматизация, требовал ручной установки тысяч флажков. Однако с выходом обновлений платформы (начиная с версии 8.3.25) подходы к проектированию прав доступа кардинально изменились. Разберем подробнее, какие инструменты теперь доступны разработчику и как их эффективно использовать в повседневной работе.
Ранее настройка ролей в конфигураторе была сопряжена с рядом ограничений: отсутствие поиска, невозможность массового выделения объектов и низкая производительность интерфейса при работе с большими конфигурациями. Разработчикам приходилось использовать сторонние обработки или переходить в среду EDT (Enterprise Development Tools), чтобы ускорить процесс. Рассмотрим, как новые штатные механизмы конфигуратора решают эти проблемы.
Одной из самых востребованных функций стала возможность массового изменения прав. Выясним, как это работает на практике. Теперь в дереве объектов метаданных внутри редактора роли можно выделить сразу несколько элементов, используя стандартные клавиши Shift (для выбора диапазона) или Ctrl (для выбора произвольных объектов).
Проанализируем ситуацию: вам необходимо предоставить права на "Чтение" и "Просмотр" для пятидесяти различных справочников. Вместо ста нажатий мышью, мы выполняем следующие действия:
Важный момент: при установке или снятии флажка для группы выделенных объектов действие применяется ко всем элементам одновременно. Это экономит колоссальное количество времени при создании базовых ролей или ролей для аудита.
В современных конфигурациях количество объектов метаданных исчисляется тысячами. Поиск конкретного документа ЗаказПокупателя в огромном списке вручную был крайне неэффективен. Рассмотрим новое решение — строку поиска в верхней части окна редактора роли.
Разберем по шагам, как работает фильтрация:
Это позволяет не только быстро находить нужные объекты, но и проверять установленные права для конкретных групп метаданных, просто вводя часть их префикса.
Часто возникают задачи, когда необходимо настроить права для нового объекта по аналогии с уже существующим. Например, в систему добавлен справочник Номенклатура_Дубликаты, и ему нужны точно такие же права, как у основного справочника Номенклатура.
Посмотрим на алгоритм использования функции копирования прав:
Данный механизм гарантирует идентичность настроек и исключает человеческий фактор (ошибки при случайном пропуске флажка).
Помимо работы со строками (объектами), в редакторе появились команды для работы с колонками. Это особенно полезно, когда нужно наделить роль полным набором прав на определенные действия для выбранных объектов.
Проанализируем возможности контекстного меню колонок:
Такой подход позволяет настраивать права "в одно касание", что значительно упрощает аудит безопасности конфигурации.
Многие разработчики отмечали, что при открытии редактора ролей в конфигурациях типа 1С:ERP интерфейс "замирал" на несколько секунд или даже минут. В обновленной версии платформы механизмы отрисовки дерева были оптимизированы. Теперь работа с деревом происходит плавно, без фризов.
Также стоит отметить улучшение визуальной индикации наследуемых прав. В 1С существует логическая связь между некоторыми правами. Например, установка права ИнтерактивноеДобавление автоматически влечет за собой включение права Добавление. Теперь эти зависимости отображаются более наглядно, помогая разработчику понять, почему то или иное право стало активным.
Рассмотрим ситуацию, когда нам нужно программно проанализировать состав ролей. Хотя новые визуальные инструменты предназначены для интерактивной работы в конфигураторе, не забываем о программном доступе к метаданным. При разработке собственных инструментов администрирования прав мы можем использовать встроенный язык.
Пример получения списка ролей текущего пользователя:
// Получаем список имен ролей пользователя
СписокРолей = ПользователиИнформационнойБазы.ТекущийПользователь().Роли;
Для Каждого Роль Из СписокРолей Цикл
Сообщить("У пользователя есть роль: " + Роль.Имя);
КонецЦикла;
Если же мы хотим проверить конкретное право в коде, мы используем функцию ПравоДоступа. Это важно учитывать при проектировании логики, зависящей от настроек, выполненных в конфигураторе.
// Проверка права на чтение справочника Номенклатура
Если ПравоДоступа("Чтение", Метаданные.Справочники.Номенклатура) Тогда
// Логика доступа разрешена
Иначе
// Логика доступа запрещена
КонецЕсли;
Для того чтобы в полной мере ощутить преимущества новых инструментов, рекомендуется убедиться, что версия платформы, на которой ведется разработка, не ниже 8.3.25. Несмотря на то что в некоторых обсуждениях упоминалась версия 8.5.5, основные и самые стабильные улучшения вошли именно в ветку 8.3.25.
Подведем итоги. Внедрение группового редактирования, поиска и копирования прав в конфигураторе — это не просто косметическое обновление, а серьезный шаг в сторону повышения продуктивности разработчика. Эти изменения позволяют:
Разберем еще один нюанс: работа с табличными частями. Теперь снимать галочки чтения и редактирования в подчиненных реквизитах можно также массово, выделив их в дереве под основным объектом. Это именно то, о чем просили разработчики на протяжении последних двадцати лет.
Таким образом, мы видим, что классический конфигуратор продолжает развиваться, заимствуя лучшие практики из современных сред разработки, что делает процесс сопровождения систем 1С более комфортным и профессиональным.