Почему не отображается добавленная страница на форме в 1С и как это исправить

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Основная причина: Автоматическая оптимизация интерфейса

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

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

Решение 1: Добавление декоративных элементов

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

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

Поскольку декорация является визуальным элементом, платформа сочтет страницу заполненной и выведет её вкладку в интерфейс.

Решение 2: Проверка видимости и доступности

Иногда элементы на странице есть, но она все равно скрыта. Выясним причину, изучив свойства элементов. Важно различать два свойства: Видимость (Visibility) и Доступность (Enabled).

Если у единственного элемента на странице свойство Видимость установлено в значение Ложь, страница будет скрыта. Проанализируем программный код в процедуре ПриСозданииНаСервере. Часто разработчики скрывают элементы программно:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Если условие не выполняется, элемент скрывается, 
    // и если он на странице один — страница тоже исчезнет
    Элементы.ГруппаДополнительныеДанные.Видимость = Ложь;
КонецПроцедуры

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

Решение 3: Функциональные опции и права доступа

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

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

Что нужно сделать:

Решение 4: Настройки отображения группы страниц

Посмотрим на свойства родительского элемента — группы, в которой находятся ваши страницы. У этой группы (тип «Группа - Страницы») есть критически важное свойство — Отображение закладок.

Если в этом свойстве выбрано значение Не отображать, то вкладки сверху (или снизу) просто не будут отрисованы, хотя сами страницы технически существуют. В таком режиме переключение между ними обычно реализуется программно. Убедитесь, что там установлено Закладки сверху или другое подходящее вам значение.

Решение 5: Пользовательские настройки формы

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

Чтобы решить эту проблему, выполним следующие действия:

  1. В пользовательском режиме откроем нужную форму.
  2. Нажмем кнопку Еще — Установить стандартные настройки.

Это сбросит кэш настроек формы и заставит платформу отрисовать её строго по метаданным, которые вы определили в конфигураторе.

Программное управление страницами

Рассмотрим пример того, как можно управлять текущей страницей программно. Это полезно, когда мы хотим принудительно переключить пользователя на нужную вкладку при наступлении определенного события. Для этого используется свойство ТекущаяСтраница группы страниц.


&НаКлиенте
Процедура ПослеВыполненияДействия(Команда)
    // Переключаем пользователя на страницу с результатами
    Элементы.ГруппаОсновнаяПанель.ТекущаяСтраница = Элементы.СтраницаРезультаты;
КонецПроцедуры

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

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

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

Итоги

Подведем итог нашему разбору. Если вы добавили страницу, а она не появилась, пройдите по этому чек-листу: 1. Есть ли на странице хотя бы один видимый элемент (не пустой реквизит, а именно элемент формы)? 2. Установлена ли видимость этих элементов в истину? 3. Нет ли ограничений по функциональным опциям или правам доступа (RLS)? 4. Не скрыты ли закладки в свойствах родительской группы? 5. Помогает ли сброс формы к стандартным настройкам?

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

← На главную