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