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