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