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

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

1С: как запретить пользователю менять интерфейс

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

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

В типовых конфигурациях на платформе 1С:Предприятие 8.3 нет одного «волшебного» флажка «запретить менять интерфейс». Ограничения собираются из нескольких механизмов: прав на объекты метаданных, профилей групп доступа, ролей «Базовые права», настроек вариантов отчётов и программного кода в модуле формы. Ниже разобраны рабочие варианты для файловых и клиент-серверных баз, с проверкой результата и типичными ошибками.

Что именно пользователь может менять в интерфейсе

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

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

Пользователь теряет разделы менюМенял настройку панели разделов

Проверьте, доступна ли команда настройки навигации в главном меню

Слетают колонки в спискахПользователь правит настройку списка

Проверьте доступность команды «Изменить форму» и «Настроить список»

Отчёт считает неправильноПерезаписан вариант отчёта

Проверьте права на сохранение пользовательских вариантов отчётов

Изменения у всех пользователейПравится общий вариант или форма в конфигурации

Проверьте, нет ли у пользователя прав администратора или настройки конфигурации

Ограничение прав через профили групп доступа

Основной инструмент в конфигурациях на Библиотеке стандартных подсистем (БСП) — «Администрирование — Настройки пользователей и прав — Группы доступа — Профили групп доступа». Создайте отдельный профиль для рядовых пользователей и включите в него только необходимые роли. Принцип простой: чем меньше ролей с широкими правами, тем меньше возможностей что-то сломать, включая интерфейс.

Обратите внимание на роли вроде «Добавление и изменение базовой нормативно-справочной информации», «Настройка и администрирование» и подобных — они часто тащат за собой доступ к сервисным командам. Роль «Администратор системы» или «Полные права» даёт пользователю практически неограниченные возможности, включая изменение настроек других пользователей и общих вариантов отчётов. Такие роли должны быть только у администраторов.

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

Запрет сохранения пользовательских вариантов отчётов

Частая жалоба: пользователь настроил отчёт под себя, сохранил вариант поверх общего — и теперь у всех отчёт «считает неправильно». В БСП за это отвечает механизм вариантов отчётов. В настройках варианта отчёта (в режиме предприятия через «Ещё — Сохранить вариант отчёта» или в разделе настройки вариантов) указывается видимость: «Только автор» или «Всем пользователям». Общие варианты должны создавать и менять только администраторы.

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

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

Программный запрет изменения форм и настроек списка

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

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

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

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

Типичные ошибки
01
Запретили команду только в одной форме списка — пользователь открыл форму выбора и настроил там
02
Сняли конфигурацию с поддержки ради мелкой правки интерфейса — усложнили все будущие обновления
03
Выдали роль «Полные права» ради одной нужной операции — пользователь получил доступ ко всем настройкам
04
Забыли проверить результат под учётной записью пользователя — запрет работает только у администратора

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

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

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

В клиент-серверном варианте настройки хранятся в таблицах хранилища системных настроек базы данных, в файловом — внутри файла базы. Напрямую в эти таблицы лезть не нужно: используйте штатные обработки или методы платформы «ХранилищеСистемныхНастроек» в коде.

Порядок действий для запрета изменений
  1. 1
    Определите, какие изменения интерфейса создают проблемы: панель разделов, колонки списков, варианты отчётов
  2. 2
    Создайте профиль группы доступа с минимально необходимым набором ролей, без административных
  3. 3
    Проверьте и ограничьте права на сохранение общих вариантов отчётов
  4. 4
    Программно отключите команды «Изменить форму» в ключевых формах через расширение
  5. 5
    Настройте эталонное рабочее место и скопируйте настройки пользователям
  6. 6
    Проверьте результат, войдя под учётной записью рядового пользователя

Проверка результата и границы безопасной работы

Любой запрет нужно проверять под учётной записью самого пользователя, а не администратора. Войдите в базу под тестовой учёткой с целевым профилем и пройдите по сценариям: открыть список документов, попробовать изменить форму, сохранить вариант отчёта, открыть настройку навигации. Команды должны быть либо недоступны, либо недолжны сохранять результат.

Безопасные границы самостоятельной работы: настройка профилей, копирование настроек, создание расширения с отключением команд — всё это обратимые операции. К рискованным относятся: прямое редактирование ролей типовой конфигурации в конфигураторе (ломает обновление), удаление настроек через нештатные обработки без резервной копии, изменение общих вариантов отчётов, на которых завязан учёт. Перед такими действиями сделайте выгрузку базы.

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

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

Команда «Изменить форму» у пользователя
Норма

Команды нет в меню «Ещё» или она недоступна

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

Команда открывается и сохраняет изменения

Сохранение варианта отчёта
Норма

Пользователь сохраняет только свой вариант, общий не меняется

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

Перезаписывается общий вариант для всех

Панель разделов после перезахода
Норма

Состав разделов соответствует эталону

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

Пользователь видит self-made порядок разделов

Права профиля
Норма

В профиле только рабочие роли

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

Есть роли администрирования или полные права

Часто задаваемые вопросы

Можно ли запретить изменение интерфейса сразу для всех форм одной настройкой?

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

Пользователь настроил список и всё сломалось. Как вернуть как было?

Откройте тот же список, в меню «Ещё» выберите «Установить стандартные настройки». Если не помогло, администратор может полностью очистить персональные настройки пользователя через штатный механизм настроек в разделе администрирования.

Нужно ли снимать конфигурацию с поддержки для запрета команд?

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

Почему запрет не сработал, хотя роль убрана из профиля?

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

Можно ли запретить пользователю менять масштаб и положение окон?

Настройки масштаба и геометрии окон платформа сохраняет автоматически, и штатного запрета на них нет. Обычно это не создаёт проблем, так как влияет только на самого пользователя. Критичные изменения — состав форм и варианты отчётов — закрываются описанными способами.

Что делать, если эталонные настройки нужно регулярно обновлять у всех?

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

Итог

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

Единого переключателя «запретить менять интерфейс» в 1С нет: собирайте запрет из минимального профиля прав, ограничения на общие варианты отчётов и программного отключения команд персонализации через расширение. Эталонные настройки распространяйте копированием, а результат всегда проверяйте под учётной записью пользователя.