К статье
Практический материал

Администрирование · 10 мин

Как настроить видимость команд по ролям в 1С

Пошаговая настройка видимости команд интерфейса по ролям в 1С: командный интерфейс, права доступа, подсистемы, проверка результата и типичные ошибки.

Видимость команд в интерфейсе 1С определяется двумя механизмами: правами доступа, назначенными роли, и настройками командного интерфейса подсистем. Если у пользователя нет права на объект, команда скрывается автоматически; если право есть, но команда мешает или дублируется, её видимость регулируется вручную в конфигураторе или в режиме предприятия.

Типовая задача выглядит так: менеджеру по продажам не нужны команды закрытия месяца, кассиру — отчёты по закупкам, а руководителю, наоборот, нужны все аналитические отчёты без технических обработок. Решать её через создание отдельных ролей под каждую команду — избыточно: правильный подход сочетает грамотное разграничение прав и тонкую настройку видимости команд.

Материал ориентирован на конфигурации на управляемых формах (БСП и типовые решения на её основе: ERP, УТ, КА, ЗУП, Бухгалтерия). Механика в обычных формах отличается и в статье не рассматривается.

Как 1С решает, показывать команду пользователю

Платформа применяет два фильтра последовательно. Первый — права доступа: если ни одна из ролей пользователя не даёт право Просмотр (для отчёта, обработки, документа) или Использование, команда не отображается вовсе, и никакая настройка интерфейса её не вернёт. Это фундаментальное правило: интерфейс не может показать то, на что нет прав.

Второй фильтр — настройка видимости команд в командном интерфейсе подсистемы и на формах. Она работает только в сторону скрытия: можно убрать команду у роли, у которой права есть, но нельзя «показать» команду при отсутствии права. Поэтому диагностика всегда начинается с вопроса: команда скрыта настройкой или отсутствует право?

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

Шаг 1. Проверьте права роли на объект команды

Откройте конфигуратор, найдите роль (или роли), назначенные пользователю, и проверьте права на объект, к которому относится команда. Для справочников и документов критичны права Чтение и Просмотр, для отчётов и обработок — Просмотр и Использование. Без права Просмотр команда открытия списка или формы не появится в интерфейсе.

Удобный инструмент — отчёт «Анализ прав доступа» (в типовых конфигурациях: Администрирование → Настройки прав и пользователей). Он показывает, какие роли дают доступ к конкретному объекту и каким пользователям эти роли назначены. Это избавляет от ручного перебора ролей в конфигураторе.

Для новых объектов, добавленных при доработке, не забывайте включать их в роли. Частая ситуация: разработчик создал отчёт, назначил его подсистеме, но не добавил права ни в одну роль — команда невидима для всех, кроме пользователя с полными правами.

Шаг 2. Настройте командный интерфейс подсистемы

В конфигураторе откройте нужную подсистему (Общие → Подсистемы), нажмите «Командный интерфейс». Откроется список команд панели навигации и панели действий. Для каждой команды доступна колонка «Видимость», где можно снять отображение для конкретных ролей или для всех.

Механика такова: у каждой команды есть общая видимость и видимость по ролям. Снимите флажок у ролей, которым команда не нужна. Например, команду «Закрытие месяца» оставьте только ролям главного бухгалтера и администратора, у остальных снимите. Изменения применяются после обновления конфигурации базы данных и перезахода пользователей.

Настройка видимости команды по ролям в конфигураторе
  1. 1
    Откройте конфигуратор и найдите подсистему, содержащую команду
  2. 2
    Нажмите «Командный интерфейс» в палитре свойств подсистемы
  3. 3
    Найдите команду в панели навигации или панели действий
  4. 4
    В колонке видимости снимите флажки у ролей, которым команда не нужна
  5. 5
    Обновите конфигурацию базы данных (F7)
  6. 6
    Проверьте интерфейс под пользователем с целевой ролью

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

Шаг 3. Скрытие команд в режиме предприятия

Не всё требует конфигуратора. Пользователь с правами администратора может настроить панель навигации раздела прямо в режиме предприятия: откройте раздел, нажмите кнопку настройки панели навигации (шестерёнка или «Настройка навигации» в зависимости от версии интерфейса) и перенесите лишние команды из доступных в скрытые.

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

На формах списков и объектов доступна команда «Изменить форму», где можно скрыть отдельные кнопки и пункты меню. Эти настройки тоже персональные, но в типовых конфигурациях администратор может скопировать свои настройки другим пользователям через механизм копирования настроек (Администрирование → Пользователи и настройки).

Настройка видимости команд на формах через роли

Команды формы (кнопки командной панели, пункты «Ещё») также подчиняются правам. Если у роли нет права Изменение на объект, команды записи и проведения недоступны или скрыты. Если нет права на связанный объект (например, на печатную форму-обработку), соответствующая команда печати не появится.

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

bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если НЕ РольДоступна("ДобавлениеИзменениеЦен") Тогда
		Элементы.ФормаУстановитьЦены.Видимость = Ложь;
	КонецЕсли;
КонецПроцедуры

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

Способы управления видимостью команд

Права ролей

Основной и самый надёжный способ. Команда скрыта везде автоматически. Требует продуманного состава ролей.

Командный интерфейс подсистемы

Скрывает команды раздела по ролям без изменения прав. Требует обновления конфигурации БД.

Настройка в режиме предприятия

Быстро и без конфигуратора, но привязано к пользователю, а не к роли. Подходит для персональной чистки интерфейса.

Программное управление

Максимальная гибкость, но усложняет сопровождение и обновление конфигурации.

Проверка результата и типичные ошибки

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

Контрольные точки

Как проверить результат

Команда у целевой роли
Норма

Команда видна и открывает объект без ошибки доступа

Тревожный признак

Команда есть, но при открытии ошибка «Нарушение прав доступа» — видимость настроена, а права нет

Команда у прочих ролей
Норма

Команда отсутствует в панели навигации и меню

Тревожный признак

Команда видна — проверьте, не назначена ли пользователю лишняя роль

После обновления конфигурации
Норма

Настройки видимости сохранились

Тревожный признак

Сбросились — возможно, изменения делались в режиме предприятия и были перезаписаны

Типичные ошибки
01
Настройка видимости вместо прав: команда скрыта, но пользователь открывает объект через поиск или быстрый доступ — безопасность не обеспечена
02
Проверка под администратором: у полных прав всё видно, ошибки настройки не заметны
03
Забытое обновление конфигурации БД: настройки командного интерфейса не применились, пользователи видят старый интерфейс
04
Создание отдельной роли под каждую команду: десятки мелких ролей, которыми невозможно управлять
05
Игнорирование функциональных опций: команда скрыта отключенной опцией, а администратор ищет проблему в ролях

Отдельно предупредим о главном риске: скрытие команды — это не защита. Пользователь без команды, но с правом на объект, может открыть его через «Все функции», поиск, внешний отчёт или прямую навигационную ссылку. Если данные должны быть недоступны, ограничивайте именно права роли, а видимость команд используйте только для удобства интерфейса.

Частые вопросы

Почему команда не видна, хотя в командном интерфейсе флажок стоит?

Чаще всего у роли пользователя нет права Просмотр (или Использование) на объект команды — платформа скрывает такие команды автоматически. Проверьте права через отчёт «Анализ прав доступа». Вторая причина — отключенная функциональная опция, к которой привязан объект.

Можно ли настроить видимость команд без конфигуратора?

Да, частично. В режиме предприятия доступна настройка панели навигации раздела и команда «Изменить форму» для скрытия кнопок. Но эти настройки привязаны к пользователю, а не к роли. Ролевая дифференциация возможна только через конфигуратор и права доступа.

Пользователь видит лишнюю команду, хотя у его роли она скрыта. Почему?

Почти наверняка у пользователя назначено несколько ролей, и одна из них даёт видимость или право на объект. Настройки командного интерфейса объединяются по всем ролям пользователя. Найдите лишнюю роль через «Анализ прав доступа» и пересмотрите состав профиля группы доступа.

Сохранятся ли настройки командного интерфейса при обновлении типовой конфигурации?

Изменения, внесённые в конфигураторе в типовые объекты, могут быть затёрты при обновлении, если конфигурация на полной поддержке — тогда изменения вообще невозможны без снятия с поддержки. Рекомендуемый путь — использовать расширения конфигурации для доработок интерфейса, тогда обновления проходят без потерь.

Как скрыть команду сразу для всех пользователей?

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

Чем отличается скрытие команды от ограничения прав?

Право запрещает доступ к данным на уровне платформы: объект нельзя открыть никаким способом. Скрытие команды убирает только точку входа в интерфейсе — при сохранённом праве объект доступен через поиск, «Все функции» или ссылку. Для безопасности используйте права, для удобства — видимость.

Итог

Что важно запомнить

Видимость команды = права роли плюс настройки командного интерфейса. Сначала разграничьте права, затем скрывайте лишние команды по ролям в подсистемах. Проверяйте результат под тестовым пользователем с целевой ролью и помните: скрытие команды не заменяет ограничение доступа.