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

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

Как скрыть реквизит в 1С: практическое руководство

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

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

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

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

Определите цель: убрать с формы или закрыть доступ к данным

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

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

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

Как выбрать способ

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

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

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

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

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

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

Способ 2. Отключить видимость в конфигураторе

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

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

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

Способ 3. Функциональные опции — скрытие по настройке системы

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

Чтобы привязать реквизит к функциональной опции, в конфигураторе создайте объект «Функциональная опция», укажите её хранилище (обычно константа типа «Булево») и в составе опции отметьте нужный реквизит объекта. После этого поле будет показываться только когда опция включена. Этот способ идеален, когда видимость зависит от учётной политики организации, а не от роли пользователя.

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

Когда видимость реквизита зависит от контекста — вида операции, статуса документа, значения другого поля — используют встроенный язык. Логика размещается в модуле формы: в обработчиках «ПриСозданииНаСервере», «ПриОткрытии» и в обработчиках изменения управляющих полей.

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

1c
&НаСервере
Процедура УстановитьВидимостьРеквизитов()
    Элементы.КомментарийВнутренний.Видимость =
        (Объект.ВидОперации = Перечисления.ВидыОпераций.Возврат);
КонецПроцедуры

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

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

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

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

Сравнение способов

Изменить форму (Ещё)

Быстро, без программирования, но действует только для текущего пользователя и не защищает данные

Видимость в конфигураторе

Скрывает для всех, требует доработки конфигурации или расширения, данные остаются доступны в отчётах

Функциональная опция

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

Программная видимость

Гибкие условия, но требует поддержки кода при обновлениях

Роли и права

Единственный способ реально защитить данные; настройка сложнее, влияет на все механизмы доступа

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

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

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

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

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

Поле не отображается, форма открывается без ошибок

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

Поле видно или при открытии возникает ошибка обращения к элементу

Отчёт или динамический список по объекту
Норма

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

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

Поле можно добавить в настройках отчёта — значит, данные защищены только визуально

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

Настройка через расширение или функциональную опцию сохраняется

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

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

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

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

Итог

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

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

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

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

Да. В конфигураторе видимость настраивается отдельно для каждой формы: откройте форму списка и снимите видимость у колонки, форму элемента при этом не трогайте. Через «Ещё → Изменить форму» в режиме предприятия настройка тоже выполняется для той формы, которая открыта в данный момент.

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

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

Как скрыть реквизит в печатной форме документа?

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

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

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

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

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