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

Разработка и Конфигурация · 10 мин

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

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

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

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

Как дополнительные реквизиты попадают на форму

В конфигурациях на базе Библиотеки стандартных подсистем (Управление торговлей, ERP, Бухгалтерия, Зарплата и управление персоналом и других) дополнительные реквизиты подключаются через общий механизм «Свойства». Администратор открывает карточку объекта, переходит в «Ещё — Дополнительные реквизиты» или через «Администрирование — Общие настройки — Дополнительные реквизиты и сведения» и добавляет свойство в набор нужного вида объектов.

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

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

Способ 1. Скрыть реквизит через «Изменить форму»

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

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

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

Порядок действий
  1. 1
    Откройте объект с нужным реквизитом и выполните «Ещё — Изменить форму»
  2. 2
    Найдите группу «Дополнительные реквизиты» в дереве элементов
  3. 3
    Снимите флажок с реквизита, который нужно скрыть
  4. 4
    Нажмите «ОК» и проверьте форму объекта заново
  5. 5
    При необходимости скопируйте настройку формы остальным пользователям

Способ 2. Ограничить доступ через права на дополнительные сведения

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

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

Способ 3. Программное управление видимостью через расширение

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

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

bsl
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Для Каждого Элемент Из Элементы Цикл
		Если СтрНайти(Элемент.Имя, "ДополнительныйРеквизитЗначение") > 0 Тогда
			// уточнить имя конкретного элемента через «Изменить форму»
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

Более надёжный подход — найти конкретный элемент по точному имени и установить Элементы.ИмяЭлемента.Видимость = Ложь;. Условие можно привязать к функции Пользователи.ЭтоПолноправныйПользователь() или к проверке роли, чтобы реквизит видели только администраторы.

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

Способ 4. Убрать реквизит из набора свойств — с потерей данных

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

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

Как выбрать подходящий способ

Чтобы не переделывать решение, определите исходную задачу: кого и от чего нужно «оградить». Визуальная чистка формы, разграничение доступа к данным и условная видимость решаются разными инструментами.

Маршрут решения

Как выбрать действие

Реквизит мешает на форме у всех пользователей, данные не секретныеСнимите флажок в «Изменить форму» и распространите настройку на всех
Часть пользователей не должна видеть значения реквизитаНастройте права на дополнительные сведения через профили групп доступа
Видимость зависит от условий (роль, вид документа, статус)Создайте расширение с программным управлением свойством Видимость
Реквизит больше не нужен вообщеСделайте копию базы и удалите свойство из набора

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

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

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

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

Форма объекта под целевым пользователем
Норма

Реквизит не отображается, остальные поля на месте

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

Реквизит виден или пропали соседние элементы

Значения в базе
Норма

Ранее введённые значения сохранились и видны в отчётах

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

Значения пропали — вероятно, реквизит был удалён из набора

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

Настройки и расширение продолжают работать

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

Реквизит снова появился — сброшены настройки формы или изменились имена элементов

Типичные ошибки
01
Удаление реквизита из набора вместо скрытия — теряются введённые данные
02
Настройка формы только у себя — у коллег реквизит остаётся видимым
03
Проверка под администратором — права и видимость у обычных пользователей не проверены
04
Жёсткая привязка к имени элемента без проверки после обновления — расширение перестаёт работать
05
Скрытие с формы при конфиденциальных данных вместо настройки прав — значения доступны через отчёты

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

Почему реквизит снова появился после обновления конфигурации?

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

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

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

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

Реквизит выводится прямо на форму объекта и хранится в его табличной части, сведение хранится в отдельном регистре и открывается по команде «Дополнительные сведения». У сведений есть штатное разграничение прав на просмотр и изменение, у реквизитов — нет.

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

Настройте форму под администратором и скопируйте пользовательские настройки остальным через «Администрирование — Настройки пользователей и прав — Копирование настроек». Точный путь зависит от конфигурации.

Будет ли скрытый реквизит участвовать в обмене данными и отчётах?

Да. Скрытие элемента с формы никак не влияет на хранение и обработку данных: реквизит по-прежнему доступен в отчётах, СКД, обменах и программном коде. Влияет только визуальное отображение.

Можно ли скрыть реквизит в списке, а не в карточке объекта?

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

Итог

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

Для простого скрытия достаточно «Изменить форму», для разграничения доступа — прав, для условной видимости — расширения. Удаление реквизита из набора — крайняя мера с потерей данных. Результат всегда проверяйте под обычным пользователем и после обновлений конфигурации.