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

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Метод 1. Свойство формы в конфигураторе (Основной способ)

Самый простой и эффективный метод полностью закрыть доступ к команде «Изменить форму» — это использование встроенных свойств объекта в конфигураторе. Проанализируем, как это работает на уровне метаданных.

Для того чтобы запретить пользователю любые манипуляции с составом элементов, выполним следующие шаги:

  1. Откроем нужную форму в конфигураторе.
  2. Перейдем в палитру свойств формы (нажав F4 или выбрав соответствующий пункт в контекстном меню).
  3. Найдем группу свойств «Использование».
  4. Снимем флажок у свойства «Разрешить изменение состава» (в английской версии — Allow modification of content).

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

Метод 2. Управление правами доступа через роли

Иногда требуется запретить сохранение настроек не для конкретной формы, а для пользователя в целом или для определенной группы лиц. Рассмотрим, как это реализовать через механизм ролей. В системе 1С существуют специфические права, отвечающие за работу с пользовательскими данными.

Выясним, какие права влияют на возможность кастомизации:

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

Метод 3. Программное управление доступностью и режимом «Только просмотр»

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

У формы есть свойство ТолькоПросмотр. Рассмотрим пример его установки в модуле формы:


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

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

Метод 4. Ограничение добавления «вложенных реквизитов»

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

Проанализируем особенности этого процесса:

Метод 5. Использование функциональных опций

Рассмотрим более продвинутый метод управления видимостью. Если мы хотим, чтобы определенные поля были недоступны даже для выбора в окне «Изменить форму», мы можем использовать Функциональные опции.

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

Метод 6. Особенности для динамических списков

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

В свойствах Динамического списка (на вкладке «Настройка компоновки данных») мы можем управлять тем, какие поля доступны для пользовательских настроек. Если мы снимем галочку «Включать в пользовательские настройки» для определенных элементов, пользователь не сможет манипулировать ими в стандартных диалогах отбора или группировки.

Заключение

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

← На главную