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