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