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

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

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

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

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

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

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

Определитесь со способом: что подходит под вашу задачу

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

От ответов зависит инструмент. Личное удобство решается настройкой формы без прав администратора. Скрытие для всех — конфигуратором или расширением. Скрытие по условию — программным кодом. Защита данных — только правами и RLS.

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

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

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

Способ 1. Скрыть поле через настройку формы без конфигуратора

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

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

Чтобы вернуть поле обратно, снова откройте «Изменить форму» и поставьте флажок. Полный сброс делается через «Ещё → Установить стандартные настройки» (название пункта может отличаться в зависимости от конфигурации).

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

Способ 2. Скрыть поле в конфигураторе для всех пользователей

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

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

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

Способ 3. Программное скрытие по условию

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

Типовой шаблон выглядит так. В обработчике «ПриСозданииНаСервере» или в клиентском обработчике изменения управляющего поля вызывается процедура, которая выставляет видимость:

&НаКлиенте

Процедура ВидКонтрагентаПриИзменении(Элемент)

УстановитьВидимостьПолей();

КонецПроцедуры

&НаСервере

Процедура УстановитьВидимостьПолей()

ЭтоЮрЛицо = (Объект.ВидКонтрагента = Перечисления.ВидыКонтрагентов.ЮридическоеЛицо);

Элементы.ИНН.Видимость = ЭтоЮрЛицо;

Элементы.СерияПаспорта.Видимость = НЕ ЭтоЮрЛицо;

КонецПроцедуры

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

Типичные ошибки
01
Установка видимости только в обработчике изменения поля — при открытии существующего объекта форма показывает неверный набор полей. Дублируйте вызов в «ПриСозданииНаСервере» и «ПриОткрытии».
02
Обращение к реквизиту вместо элемента формы: «Объект.ИНН.Видимость» вызовет ошибку, видимость есть только у элементов формы.
03
Скрытие единственного обязательного поля — при записи объекта пользователь получит ошибку незаполненного реквизита, которого не видит. Снимайте проверку заполнения или заполняйте значение программно.
04
Скрытие поля, участвующего в условном оформлении или связанных элементах, без проверки зависимостей — форма может вести себя непредсказуемо.

Способ 4. Скрыть колонку в списке или табличной части

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

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

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

Способ 5. Функциональные опции и права доступа

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

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

Проверка результата и откат изменений

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

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

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

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

Отображение поля на форме
Норма

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

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

Поле видно у всех или исчезло независимо от условия

Запись объекта
Норма

Объект сохраняется и проводится без сообщений об ошибках

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

Ошибка «Поле не заполнено» по скрытому реквизиту

Сохранность данных
Норма

Ранее введённые значения видны в отчётах и списках

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

Значения очищены или недоступны

Поведение у других пользователей
Норма

У остальных пользователей форма не изменилась (для личной настройки)

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

Личная настройка повлияла на всех — значит, меняли форму в конфигураторе

Итог

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

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

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

Скрытое поле всё равно видно в списке документов. Почему?

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

Как скрыть поле только для определённых пользователей?

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

Объект не записывается после скрытия поля. Что делать?

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

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

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

Чем скрытие поля отличается от свойства «Доступность»?

«Видимость» полностью убирает поле с формы — пользователь его не видит. «Доступность = Ложь» оставляет поле на форме, но делает его неактивным (серым): значение видно, но редактировать нельзя. Выбирайте доступность, когда значение важно показать, а видимость — когда поле не нужно вовсе.

Как скрыть поле в обычных (неуправляемых) формах?

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