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