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

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

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

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

Страницы (закладки) формы в 1С используются, чтобы компактно разместить большое количество реквизитов: «Основное», «Дополнительно», «Адреса и контакты» и тому подобное. Но не всегда все страницы нужны конкретному пользователю или в конкретном режиме работы. Типовые задачи — скрыть служебную вкладку от менеджеров, показать страницу только при определённом виде операции, убрать пустую закладку, чтобы не путать пользователей.

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

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

Как скрыть страницу в конфигураторе без программирования

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

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

Порядок действий в конфигураторе
  1. 1
    Откройте конфигуратор и найдите объект с нужной формой
  2. 2
    Откройте форму, в дереве элементов найдите группу «Страницы»
  3. 3
    Выделите конкретную страницу и в палитре свойств снимите флажок «Видимость»
  4. 4
    Сохраните конфигурацию (Ctrl+S) и обновите конфигурацию БД (F7)
  5. 5
    Запустите 1С:Предприятие и откройте форму для проверки

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

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

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

Обращение к странице выполняется через коллекцию Элементы по имени элемента формы. Имя можно посмотреть в конфигураторе в дереве элементов формы — это не заголовок закладки, а именно имя элемента (например, «СтраницаДоставка», а не «Доставка»).

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

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

Скрытие страницы по условию на клиенте

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

bsl
&НаКлиенте
Процедура ТребуетсяМонтажПриИзменении(Элемент)
	Элементы.СтраницаМонтаж.Видимость = Объект.ТребуетсяМонтаж;
КонецПроцедуры

Как скрыть страницу в обычной форме

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

Обращение выглядит как ЭлементыФормы.Панель1.Страницы.Страница2.Видимость = Ложь. Код размещают в обработчиках ПриОткрытии или ПередОткрытием модуля формы. Если конфигурация работает в режиме совместимости, уточните, какой тип формы реально используется у объекта — от этого зависит синтаксис.

Чем скрытие страницы отличается от функциональных опций и прав

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

Сравнение способов скрытия страницы

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

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

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

Гибкий вариант для условий: роль, вид операции, значение реквизита. Минус: код нужно поддерживать при обновлениях.

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

Правильный путь для вкладок, зависящих от настроек учёта. Минус: требует доработки структуры метаданных.

Права доступа (RBS)

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

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

Типичные ошибки при скрытии страниц

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

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

Как проверить результат и не сломать форму

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

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

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

Открытие формы
Норма

Форма открывается без ошибок, скрытой закладки нет

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

Ошибка «Поле объекта не обнаружено» или закладка видна

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

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

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

Сообщение о незаполненном поле, которое находится на скрытой странице

Переключение условий
Норма

При смене реквизита-условия страница появляется и исчезает корректно

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

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

Работа под ограниченной ролью
Норма

У пользователя без прав страница скрыта, ошибок доступа нет

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

Ошибки нарушения прав при открытии формы

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

FAQ: частые вопросы о скрытии страниц в 1С

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

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

Почему страница скрыта, но её содержимое всё равно влияет на форму?

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

Как скрыть страницу только для новых документов?

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

Что делать, если код выдаёт ошибку «Поле объекта не обнаружено»?

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

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

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

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

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

Итог

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

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