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