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

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

Как создать страницы в форме 1С

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

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

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

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

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

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

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

Создание страниц в редакторе формы конфигуратора

Откройте конфигуратор, найдите нужный объект (справочник, документ, обработку) и откройте его форму. Если формы ещё нет, создайте её: в дереве объекта перейдите на вкладку «Формы» и добавьте новую, например форму элемента или документа. Редактор формы покажет дерево элементов в правой части окна.

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

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

Порядок действий в конфигураторе
  1. 1
    Откройте форму объекта в конфигураторе
  2. 2
    Добавьте группу и установите вид «Страницы»
  3. 3
    Добавьте внутрь дочерние группы с видом «Страница»
  4. 4
    Задайте каждой странице имя и заголовок
  5. 5
    Переместите или добавьте элементы внутрь страниц
  6. 6
    Запустите проверку формы и отладку в режиме предприятия

Программное создание страниц кодом

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

ГруппаСтраниц = Элементы.Добавить("ГруппаСтраниц", Тип("ГруппаФормы"));

ГруппаСтраниц.Вид = ВидГруппыФормы.Страницы;

СтраницаОсновное = Элементы.Добавить("СтраницаОсновное", Тип("ГруппаФормы"), ГруппаСтраниц);

СтраницаОсновное.Вид = ВидГруппыФормы.Страница;

СтраницаОсновное.Заголовок = "Основное";

СтраницаДополнительно = Элементы.Добавить("СтраницаДополнительно", Тип("ГруппаФормы"), ГруппаСтраниц);

СтраницаДополнительно.Вид = ВидГруппыФормы.Страница;

СтраницаДополнительно.Заголовок = "Дополнительно";

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

Настройка отображения и поведения вкладок

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

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

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

Маршрут решения

Как выбрать способ создания страниц

Состав вкладок фиксирован и одинаков для всех пользователейСоздавайте страницы визуально в редакторе формы
Набор вкладок зависит от вида операции, роли или настроекСоздавайте страницы программно в ПриСозданииНаСервере
Нужен мастер пошагового заполнения без видимых вкладокУстановите ОтображениеСтраниц = Нет и переключайте ТекущуюСтраницу кнопками
Форма типовой конфигурации без права измененияИспользуйте расширение конфигурации и доработку заемной формы

Страницы в расширении конфигурации

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

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

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

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

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

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

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

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

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

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

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

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

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

Все страницы видны, заголовки читаемы, переключение работает

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

Вкладка отсутствует, заголовок пустой или обрезан

Расположение полей
Норма

Каждое поле находится на своей вкладке

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

Поле видно на всех вкладках — оно добавлено вне страницы

Проверка заполнения
Норма

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

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

Сообщение об ошибке есть, но нужная вкладка не активна

Форма после обновления конфигурации
Норма

Доработанные расширением вкладки на месте

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

Вкладки пропали или структура формы нарушена

Частые вопросы о страницах в формах 1С

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

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

Как сделать, чтобы вкладка открывалась по условию?

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

Как программно переключить пользователя на нужную вкладку?

Установите свойство ТекущаяСтраница у группы-страниц: Элементы.ГруппаСтраниц.ТекущаяСтраница = Элементы.ИмяНужнойСтраницы. Это работает и на клиенте, и на сервере в рамках обработчиков формы. Приём часто используют при проверке заполнения, чтобы показать пользователю вкладку с ошибкой.

Почему поле видно на всех вкладках, хотя я добавил его на одну?

Элемент добавлен не внутрь группы-страницы, а на уровень формы или в родительскую группу-страницы. Откройте дерево элементов формы и проверьте иерархию: поле должно быть вложено именно в группу с видом «Страница». Перетащите его мышью в нужную вкладку или исправьте родителя в коде.

Можно ли расположить вкладки слева, а не сверху?

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

Что произойдёт со страницами из расширения после обновления конфигурации?

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

Итог

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

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