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

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

Как скрыть вкладку в 1С

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

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

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

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

Как устроены вкладки в управляемой форме

В управляемых формах 1С:Предприятия 8.3 вкладка формируется группой элементов с видом «Страница», размещённой внутри группы с видом «Страницы». Родительская группа отвечает за отображение ярлыков вкладок, а каждая дочерняя страница — за содержимое отдельной вкладки. В дереве элементов формы конфигуратора это выглядит как вложенная структура: «ГруппаСтраницы» → «СтраницаОсновное», «СтраницаДополнительно» и так далее.

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

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

Скрытие вкладки через конфигуратор

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

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

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

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

Программное скрытие вкладки

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

1c
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Элементы.СтраницаДополнительно.Видимость = Ложь;
КонецПроцедуры

Типовой сценарий — скрыть вкладку по условию. Например, показывать страницу «Доставка» только если в заказе выбран способ получения «Доставка курьером»:

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

Если условие зависит от данных, доступных только на сервере (роли пользователя, функциональные опции, данные информационной базы), устанавливайте видимость в «ПриСозданииНаСервере». Это надёжнее: форма сразу откроется с корректным набором вкладок, без мелькания лишнего ярлыка при открытии.

Скрытие по ролям и функциональным опциям

Через функциональные опции

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

Через проверку ролей в коде

Когда нужно скрыть вкладку для определённых пользователей, используется проверка роли на сервере:

1c
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
		Элементы.СтраницаНастройки.Видимость = Ложь;
	КонецЕсли;
КонецПроцедуры

Функция «ЭтоПолноправныйПользователь» доступна в конфигурациях на базе Библиотеки стандартных подсистем. В самописных конфигурациях вместо неё используют «РольДоступна("ИмяРоли")» — проверка выполняется в серверном контексте, поскольку на клиенте сведения о ролях недоступны.

Временное скрытие без изменения конфигурации

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

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

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

Конфигуратор (свойство Видимость)

Постоянное скрытие для всех. Требует изменения конфигурации, риск при обновлении типовых

Программный код в модуле формы

Гибкие условия: роли, статусы, значения реквизитов. Нужны навыки разработки

Функциональные опции

Штатный механизм без кода, дружит с обновлениями. Подходит для глобальных настроек, а не для условий по данным объекта

Настройка «Изменить форму»

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

Расширение конфигурации

Скрытие без снятия с поддержки. Требует аккуратности при обновлении расширения

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

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

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

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

Ярлык вкладки в форме
Норма

Ярлык отсутствует, соседние вкладки работают

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

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

Поведение при смене условия
Норма

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

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

Видимость меняется только после переоткрытия формы

Форма у другого пользователя
Норма

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

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

Вкладка видна всем — проверка роли не сработала

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

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

Итог

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

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

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

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

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

Почему код Элементы.ИмяСтраницы.Видимость = Ложь выдаёт ошибку?

Чаще всего причина в неверном имени элемента: имя страницы в коде должно точно совпадать с именем в дереве элементов формы, включая регистр букв. Откройте форму в конфигураторе и сверьте имя. Также ошибка возникает, если обращение идёт к группе, удалённой из формы, или код выполняется в общем модуле, где коллекция «Элементы» недоступна.

Можно ли скрыть вкладку, не трогая конфигурацию?

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

Чем скрытие отличается от отключения доступности вкладки?

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

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

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

Как вернуть скрытую вкладку обратно?

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