При работе с крупными конфигурациями, такими как ERP 2.2 или Комплексная автоматизация, администраторы часто сталкиваются с ситуацией, когда пользователю назначено огромное количество ролей (иногда счет идет на десятки). В таких условиях становится сложно контролировать безопасность: пользователь внезапно получает возможность зайти в Конфигуратор или запустить Толстый клиент, хотя в его основном профиле эти возможности не предусмотрены. Разберем детально механизмы платформы «1С:Предприятие 8.3», которые управляют этими доступами.
Прежде всего, проанализируем фундаментальный принцип работы системы прав. В 1С права доступа работают по принципу логического «ИЛИ». Это означает, что если у пользователя назначено, к примеру, 73 роли, и хотя бы в одной из них установлена галочка, разрешающая запуск определенного клиента, то пользователь получим этот доступ. Платформа не будет искать запреты в других ролях — ей достаточно одного разрешения.
Рассмотрим ситуацию: вы проверили 72 роли, и там все корректно, но в одной «забытой» или вспомогательной роли (например, для запуска какой-то специфической обработки) стоит флаг Толстый клиент. В этом случае пользователь беспрепятственно зайдет в систему под толстым клиентом.
Многие ошибочно полагают, что для входа в Конфигуратор нужна роль с названием «Администратор». На самом деле, название роли в дереве метаданных может быть любым. Возможность запуска режима разработки и администрирования определяется набором общих прав внутри роли. Выясним, какие именно флаги позволяют войти в этот режим:
Важный нюанс: зайти в Конфигуратор и иметь возможность редактировать код — это разные вещи. Для редактирования структуры метаданных и программных модулей должно быть активно право Сохранение данных конфигурации или Редактирование конфигурации. Если у пользователя есть только Администрирование, он сможет зайти в Конфигуратор, запустить тестирование и исправление, но дерево конфигурации может быть для него недоступно для изменений.
Запуск Толстого клиента регулируется отдельным флагом в свойствах роли. Проанализируем список доступных видов клиентов в окне редактирования роли на вкладке «Общие»:
Тонкий клиентВеб-клиентТолстый клиентВнешнее соединениеЕсли вы хотите, чтобы пользователь работал исключительно через Тонкий клиент (что является стандартом для ERP), необходимо убедиться, что во всех его 73 ролях флаг Толстый клиент снят. В режиме Толстого клиента 1С выполняет код непосредственно на компьютере пользователя, что дает больше возможностей для использования внешних компонент и прямых COM-соединений, но создает дополнительные риски безопасности и увеличивает нагрузку на сеть.
Чтобы не перебирать 73 роли вручную, проанализируем встроенные инструменты Конфигуратора. Самый эффективный способ — использование Отчета по правам доступа. Разберем пошагово, как это сделать:
Конфигуратор.Толстый клиент или Администрирование.Этот метод позволяет сэкономить массу времени и точно определить ту самую «лишнюю» роль, которую нужно подправить.
В некоторых случаях, особенно когда мы имеем дело с динамически назначаемыми ролями или сложными профилями БСП, полезно выполнить проверку программно. Рассмотрим пример кода, который можно запустить во внешней обработке, чтобы выяснить, какие роли текущего пользователя разрешают запуск толстого клиента:
Для Каждого РольПользователя Из ПользователиИнформационнойБазы.ТекущийПользователь().Роли Цикл
Если ПравоДоступа("ТолстыйКлиент", Метаданные, , РольПользователя) Тогда
Сообщить("Внимание! Роль '" + РольПользователя.Имя + "' разрешает запуск Толстого клиента.");
КонецЕсли;
Если ПравоДоступа("Администрирование", Метаданные, , РольПользователя) Тогда
Сообщить("Внимание! Роль '" + РольПользователя.Имя + "' разрешает Администрирование (вход в Конфигуратор).");
КонецЕсли;
КонецЦикла;
Данный скрипт перебирает все роли, назначенные текущему пользователю в информационной базе, и проверяет наличие конкретных прав доступа. Это «чистый» способ увидеть ситуацию глазами платформы.
В конфигурации ERP 2.2 управление ролями обычно происходит не напрямую, а через Профили групп доступа. Проанализируем эту структуру:
Если вы обнаружили «лишнее» право в типовой роли, не спешите ее редактировать. Лучше выясните, какой профиль группы доступа содержит эту роль. Возможно, пользователю ошибочно назначен профиль Администратор или специальный профиль Открытие толстого клиента, который часто создают для разработчиков или продвинутых пользователей, которым нужно использовать внешние отчеты и обработки, требующие толстого клиента.
Также помните, что право на Интерактивное открытие внешних обработок часто идет «рука об руку» с толстым клиентом. В тонком клиенте запуск внешних обработок требует их предварительной загрузки в справочник Дополнительные отчеты и обработки, в то время как толстый клиент позволяет открывать их напрямую через меню «Файл - Открыть».
Подведем итог. Чтобы закрыть доступ к Конфигуратору и Толстому клиенту, мы должны убедиться, что ни в одной из назначенных ролей у пользователя нет флагов Администрирование и Толстый клиент соответственно. Использование Отчета по правам доступа является самым быстрым и надежным способом решения этой задачи.