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