Боковая панель в 1С 8.3: настройка интерфейса и добавление на форму
Содержание
Боковая панель в 1С — это два разных объекта, и вопрос «как сделать» относится к обоим. Первый — панели интерфейса «Такси»: панель разделов и панель инструментов, которые пользователь настраивает сам, без программирования. Второй — боковая область на конкретной управляемой форме: группа элементов у левого или правого края, которую добавляет разработчик.
Если нужно просто убрать лишнее из меню или вынести нужные разделы под руку, хватит настроек интерфейса. Если нужна своя панель с фильтрами, ссылками или списком внутри формы документа, придётся открыть Конфигуратор и поработать с формой. Ниже оба пути с оговорками, где что ломается.
Какой способ боковой панели подходит вашей задаче
Сначала определитесь с целью. Выбор способа почти всегда очевиден по тому, кому и зачем нужна панель.
| Задача | Способ | Нужен ли программист |
|---|---|---|
| Свои разделы и порядок пунктов в левой панели | Настройка панели разделов | Нет |
| Быстрые команды всегда под рукой | Настройка панели инструментов и избранного | Нет |
| Боковой блок на форме своей разработки | Группа формы в Конфигураторе | Да |
| Боковой блок на форме типовой конфигурации | Расширение конфигурации | Да |
| Список или фильтры в панели, меняющиеся по данным | Реквизит формы + запрос на сервере | Да |
Правка типовой формы напрямую делает конфигурацию «изменённой» и усложняет каждое обновление. Для типовых баз берите расширение: оно живёт отдельно от основной конфигурации.
Настройка панели разделов и командного интерфейса
В интерфейсе «Такси» панель разделов — это список разделов (Продажи, Покупки, Склад и так далее) вдоль края окна. Настраивается она штатно, права разработчика не нужны.
Откройте меню Вид (в «Такси» оно доступно через главное меню — кнопку со стрелкой в верхнем левом углу) и найдите команду настройки панели разделов. В открывшемся окне:
- Слева перечислены доступные разделы, справа — те, что уже стоят в панели.
- Переносите нужные разделы вправо стрелками, ненужные убирайте.
- Меняйте порядок кнопками «вверх» и «вниз».
- Нажмите
ОК, чтобы сохранить.
Рядом в меню Вид есть настройка навигации и действий конкретного раздела: там задают, какие команды показываются в левой части и в командной панели раздела. Пункты можно прятать и менять местами.
Настройки сохраняются для пользователя. Если администратору нужно раздать одну раскладку всем, он правит набор по умолчанию в разделе Администрирование, а не ходит по рабочим местам.
Если раздел или команда не появляется в списке доступных, дело, скорее всего, в правах роли или в том, что функциональная опция отключена. Настройка интерфейса не выдаст то, что запрещено ролью.
Что даёт избранное и история
Для быстрого доступа есть избранное: в «Такси» значок звезды у заголовка окна или команда в меню Вид. Добавьте туда часто открываемые формы, и боковой список получится почти бесплатно. Панель открытых окон и история тоже настраиваются пользователем и не требуют кода.
Боковая группа на управляемой форме
Теперь про разработку. В управляемой форме «боковая панель» — это обычная группа элементов, расположенная рядом с основным содержимым. Платформа не содержит отдельного объекта «боковая панель», поэтому её собирают из группировок.
Порядок работы в Конфигураторе:
- Откройте нужную форму объекта в режиме редактирования.
- На вкладке
Элементыдобавьте две группы верхнего уровня: основную (в ней всё содержимое формы) и боковую. - Поставьте у родительской группы горизонтальную группировку подчинённых элементов, чтобы основная часть и боковая стояли рядом.
- Перетащите в боковую группу нужные поля, таблицы и команды.
- Задайте у боковой группы ограничение по ширине и отключите растягивание, иначе она займёт половину формы.
Родительский контейнер должен идти по горизонтали, а внутренности каждой группы — по вертикали. Эти два свойства путают чаще всего, и панель получается вверху, а не сбоку.
Скрыть и показать по кнопке
Часто боковую панель делают сворачиваемой. Для этого добавьте команду формы и привяжите видимость группы к её нажатию:
&НаКлиенте
Процедура ПереключитьПанель(Команда)
Элементы.БоковаяПанель.Видимость = Не Элементы.БоковаяПанель.Видимость;
КонецПроцедуры
Имя БоковаяПанель здесь — имя вашей группы в дереве элементов. Чтобы после закрытия формы выбор не терялся, храните флаг в настройках пользователя и читайте его в ПриСозданииНаСервере.
Боковая панель через расширение конфигурации
Для типовой конфигурации на поддержке правильный способ — расширение. Оно появилось в платформе 8.3.6, а на современных релизах «Такси» это основной путь доработки. Типовые модули и формы при этом не меняются, обновление проходит без ручного слияния.
Порядок такой:
- Создайте расширение в Конфигураторе (меню
Конфигурация→Расширения конфигурации) и задайте ему имя и префикс. - Включите нужную форму в расширение командой из контекстного меню объекта основной конфигурации.
- Откройте форму уже в расширении и добавьте боковую группу так же, как в предыдущем разделе.
- Сохраните расширение в базу и обновите конфигурацию базы данных.
Перед первым запуском проверьте, что у расширения не включена защита от опасных действий, которая блокирует работу кода в базе. Это настройка при создании или в свойствах расширения.
Если элементы удобнее создавать программно, в процедуре расширения создайте их на лету:
&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Группа = Элементы.Добавить("Расш1_БоковаяПанель", Тип("ГруппаФормы"));
Группа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
Группа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
Группа.Заголовок = "Справка";
КонецПроцедуры
Поля, которые нужно связать с данными, получают через ИзменитьРеквизиты(): сначала формируют список новых реквизитов, затем вызывают метод, и только после этого создают поля, привязанные к ним. Наоборот не работает
.
Префикс в именах элементов и процедур обязателен. Без него имя может совпасть с типовым, и форма откажется открываться.
Навигационная панель формы и её связь с данными
У формы объекта (например, элемента справочника) уже есть встроенная навигация — панель со ссылками на связанные списки. Она отображается с краю формы, и именно её чаще всего имеют в виду, когда говорят «боковая панель». Её состав задаётся командами в свойствах формы: в группе навигации объекта перечислены связанные подчинённые списки и отчёты. Добавляются команды из навигационной панели или перетаскиванием из списка команд формы.
Когда панель должна показывать данные, а не только ссылки, наполнение делают в три шага:
- В реквизитах формы создайте реквизит типа «Таблица значений» с колонкой
Наименование. - Выведите его на форму таблицей в боковой группе.
- Заполните на сервере запросом.
&НаСервере
Процедура ЗаполнитьПанель()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 10
| Организации.Наименование КАК Наименование
|ИЗ
| Справочник.Организации КАК Организации
|УПОРЯДОЧИТЬ ПО
| Организации.Наименование";
ТаблицаПанели.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
Здесь ТаблицаПанели — имя реквизита. Колонки результата запроса сопоставляются с колонками таблицы по именам, поэтому псевдоним в запросе должен совпадать.
Вызывайте процедуру из ПриСозданииНаСервере и повторно из обработчика ПриИзменении того поля, от которого зависит содержимое панели.
Когда панель должна реагировать на выбор
Если нужно перерисовывать боковой список после выбора контрагента или периода, повесьте на поле обработчик ПриИзменении и в нём вызовите серверную процедуру. На клиенте не держите запросы к базе: каждый вызов сервера уходит по сети, а на тонком клиенте это заметно.
Для длинных списков ограничивайте выборку и добавьте отбор по текущему объекту формы. Панель на 5000 строк сворачивать нечем, она сама станет источником тормозов.
Изменить форму без Конфигуратора
Часть задач решается ещё проще. В режиме 1С:Предприятие почти у каждой управляемой формы есть команда изменения формы: в меню Ещё (три точки в командной панели) или в контекстном меню формы. Она открывает окно, где пользователь с нужными правами может:
- 🔸 скрыть поля и группы, которые ему не нужны;
- 🔸 переставить элементы и вынести часть из них в отдельную группу;
- 🔸 добавить команды из общего списка.
Это не разработка: настройка хранится в пользовательских данных и не меняет конфигурацию. Сделать полноценную сворачиваемую панель так не выйдет, но убрать лишнее из правой или левой части формы и получить «узкую» раскладку получится за пару минут.
Есть и ограничение. Права на изменение формы выдаются ролью, и в некоторых базах администратор их отключает. Тогда команды не будет вовсе, и это не ошибка.
Свойства группы, которые стоит знать
| Свойство | На что влияет | Типичное значение для панели |
|---|---|---|
| Группировка подчинённых | Куда выстраиваются вложенные элементы | Вертикальная для самой панели |
| Ширина | Сколько места занимает группа | Фиксированная, 25-35 знаков |
| Растягивание по горизонтали | Забирает ли группа свободное место | Выключено |
| Отображение | Рамка и заголовок группы | Обычное или без рамки |
| Видимость | Показана ли группа | Управляется командой |
Ширину в знаках задают числом, а не пикселями: платформа сама пересчитывает её под шрифт и масштаб экрана.
Что чаще всего ломается и как исправить
Главные причины, по которым панель «не получилась»:
- 🔸 Группа стоит под основной частью, а не рядом. Проверьте группировку родителя: должна быть горизонтальная.
- 🔸 Панель занимает половину экрана. Задайте ширину группы и отключите растягивание по горизонтали.
- 🔸 В расширении форма не открывается. Скорее всего, совпало имя элемента с типовым или забыт префикс.
- 🔸 Данные в панели не обновляются. Процедура заполнения вызвана только при создании формы, а не после изменения поля.
- 🔸 Команда из навигации не видна пользователю. Дело в правах роли на связанный объект.
- 🔸 После обновления конфигурации правка пропала. Это следствие правки типового кода напрямую: перенесите её в расширение.
Прежде чем искать ошибку в коде, проверьте, что вы работаете с формой расширения, а не с её копией в основной конфигурации.
Готовые схемы для типичных случаев
Несколько раскладок, которые встречаются в практике:
Справка по контрагенту рядом с документом. Боковая группа справа содержит ИНН, договор, остаток взаиморасчётов. Данные берут запросом при выборе контрагента. Подходит для расширения формы документа реализации.
Фильтры слева от списка. Список в основной части, слева группа с полями отбора. Поля связывают с динамическим списком через отбор. Хорошо работает в формах справочников с большим числом элементов.
Быстрые действия. Узкая панель только с командами: «Создать на основании», «Печать», «Открыть связанные документы». Команды берут из списка команд формы, кода почти нет.
Рабочий стол руководителя. На начальной странице несколько форм и узкая боковая область с задачами и напоминаниями. Начальную страницу настраивают в Администрирование → настройка начальной страницы, а не кодом.
Везде одно правило: одна задача на панель. Если в боковой области помещается всё сразу, форма превращается в приборную доску, которой не пользуются.
Частые вопросы
Можно ли сделать боковую панель без программирования?
Вид. Боковой блок на конкретной форме без Конфигуратора не добавить.Чем расширение лучше правки типовой формы?
Почему боковая группа внизу формы?
Как сохранить, свёрнута панель или нет?
ПриСозданииНаСервере.