Новый пункт в панели навигации 1С 8.3: настройка и разработка

· 9 мин

Содержание

Чтобы добавить элемент в панель навигации 1С, откройте в конфигураторе форму объекта, перейдите на закладку Командный интерфейс и перетащите нужную команду в группу Панель навигации. Для раздела верхнего уровня то же делается в командном интерфейсе подсистемы. Пользователь без конфигуратора может перенести пункты сам через настройку навигации.

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

Как устроена панель навигации в 1С 8.3

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

  • 📌 Подсистемы. Состав подсистемы определяет, какие объекты видны в разделе. Команды их списков и отчётов попадают в панель раздела.
  • 📌 Команды объекта. Для каждого справочника и документа платформа сама создаёт команды открытия списка и форм. У документов с реквизитами-ссылками появляются команды перехода к связанным данным.
  • 📌 Собственные команды. Разработчик создаёт их в конфигураторе и размещает в нужной группе.

Каждая панель делится на группы по важности: Важное, Обычное, См. также. Важное показывается всегда, обычное сворачивается под «Ещё», а «См. также» уходит в отдельный блок. От того, в какую группу вы положили команду, зависит, заметит ли её пользователь.

Что нужноГде настраиваетсяКто делает
Пункт в левой панели разделаКомандный интерфейс подсистемыРазработчик
Ссылка в форме элемента или документаЗакладка «Командный интерфейс» формыРазработчик
Порядок и видимость пунктов под себяНастройка навигации в клиентеПользователь
Показать пункт только части сотрудниковРоли и функциональные опцииАдминистратор

Подготовка: объект, подсистема и права

Прежде чем что-то перетаскивать, проверьте три вещи. Без них пункт просто не появится, и кажется, что конфигуратор «не сохранил» изменения.

  1. Объект входит в состав нужной подсистемы. В конфигураторе откройте подсистему и проверьте список Состав. Если объекта там нет, его команды в разделе не покажутся.
  2. У подсистемы включено свойство, которое выводит её в командный интерфейс. Если оно выключено, раздела в панели разделов не будет вообще.
  3. У роли пользователя есть право Просмотр на объект. Команда без права скрывается молча: ни ошибки, ни пустой строки.

Тестируйте под пользователем с обычной ролью, а не под администратором с полными правами. Администратор видит почти всё, и проблема с правами всплывёт только у сотрудников.

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

Прежде чем править рабочую базу, сделайте выгрузку информационной базы и проверьте изменения на копии. Ошибка в командном интерфейсе не портит данные, но у пользователей может пропасть доступ к нужным пунктам.

Добавление пункта в панель раздела через подсистему

Это путь для случая «хочу, чтобы справочник или отчёт показывался в левой панели нужного раздела».

Шаг 1. Включите объект в подсистему

Откройте дерево конфигурации, найдите ветку Подсистемы и нужный раздел. В свойствах подсистемы откройте Состав и добавьте объект: справочник, документ, отчёт или обработку. После этого его команды становятся доступными для размещения.

Шаг 2. Откройте командный интерфейс подсистемы

Щёлкните правой кнопкой по подсистеме и выберите пункт командного интерфейса. Откроется окно с двумя панелями: Панель навигации и Панель действий. В каждой по три группы. Нас интересует навигация.

Шаг 3. Разместите команду

Найдите команду в списке доступных и перетащите в группу. Если команды нет в списке, объект не включён в состав либо у команды выключено размещение. Порядок внутри группы меняется перетаскиванием.

Что класть в какую группу:

  • ✅ Важное — то, чем пользуются каждый день: основные документы и справочники раздела.
  • ✅ Обычное — справочные списки, которые нужны периодически.
  • ✅ См. также — служебные и редкие отчёты.

Шаг 4. Проверьте в клиенте

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

Панель навигации формы: ссылки «Перейти» у элемента или документа

Здесь панель привязана к форме конкретного объекта. Пример: в форме контрагента нужна ссылка на список его договоров или на отчёт по взаиморасчётам.

  1. Откройте форму объекта в конфигураторе.
  2. Перейдите на закладку Командный интерфейс — она рядом с Элементы, Реквизиты и Команды.
  3. Разверните Панель навигации. Здесь видны группы и команды, которые платформа уже добавила автоматически.
  4. Перетащите нужную команду из таблицы доступных команд в нужную группу.

Команды перехода к связанным объектам платформа строит сама по реквизитам-ссылкам и по документам, которые ссылаются на текущий. В списке доступных команд они появятся как команды с параметром. Если команду нужно спрятать, снимите флажок видимости возле неё: удалять её не надо.

Если форма типовая, правка допустима только в расширении. Внесённое в типовую форму изменение при обновлении конфигурации придётся переносить вручную.

Собственная команда: когда типовых мало

Бывает, что нужен пункт, которого нет среди автоматических: открыть конкретный отчёт с готовым отбором или внешнюю обработку . Тогда создаём свою команду.

Общая команда. В ветке Общие → Команды создайте команду, укажите группу размещения (например, панель навигации раздела), тип параметра, если команда должна получать выбранный объект, и модуль команды с процедурой обработки. Общая команда появится во всех формах и разделах, куда вы её разместили.

Команда формы. Создаётся на закладке Команды формы и размещается в панели навигации той же формы. Подходит для действия, нужного только в этом окне.

Тело обработчика чаще всего открывает другую форму. Для команды с параметром выбранный объект приходит в параметре процедуры:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	ПараметрыФормы = Новый Структура("Отбор", Новый Структура("Контрагент", ПараметрКоманды));
	ОткрытьФорму("Справочник.Договоры.ФормаСписка", ПараметрыФормы,
		ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность,
		ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры

Этот пример открывает список договоров с отбором по контрагенту, из формы которого вызвана команда. Имена справочника и поля отбора подставьте свои.

Несколько правил, которые экономят время при создании своих команд:

  • 🧩 Давайте команде понятное имя и синоним, который увидит пользователь. «Договоры контрагента» читается лучше, чем «Команда1».
  • 🧩 Для команды, которая работает с выбранным объектом, укажите тип параметра. Без него в обработчик придёт пустое значение, и отбор не сработает.
  • 🧩 Если команда открывает отчёт, передайте отбор через параметры формы, а не просите пользователя выставлять его руками.
  • 🧩 Команду для одного окна не делайте общей: в чужих формах она будет лишней и запутает людей.

После размещения проверьте команду в обеих группах: иногда она хорошо смотрится в Важное на экране разработчика и теряется в Обычное у сотрудника с узким монитором, где панель сворачивается раньше.

Видимость: роли, права и функциональные опции

Добавить пункт — половина дела. Вторая половина — чтобы его видели только нужные люди. Есть три рычага, и работают они вместе.

МеханизмЧто делаетКогда использовать
Право Просмотр в ролиСкрывает команду у тех, у кого нет права на объектВсегда: базовая защита
Функциональная опцияВключает или выключает группу команд для всей базыРаздел нужен не всем предприятиям
Видимость по ролям у командыПрячет конкретную команду от выбранных ролейОбъект доступен, а пункт не нужен

Функциональные опции задают на уровне базы: переключили константу в настройках программы, и пункты появились или исчезли у всех. Это удобно для вариантов вроде «ведём производство» или «не ведём».

Если пункт после настройки виден администратору и не виден бухгалтеру, проверьте в таком порядке:

  • 🔍 есть ли у роли бухгалтера право Просмотр на объект;
  • 🔍 не скрыта ли команда по ролям в её свойствах;
  • 🔍 не выключена ли функциональная опция, связанная с командой;
  • 🔍 перезапустил ли пользователь клиент после обновления.

Что делает сам пользователь: настройка навигации

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

Что можно, а чего нельзя:

  • ✅ скрыть лишнее и вынести нужное в Важное;
  • ✅ вернуть исходный вид, если запутались;
  • ❌ создать совсем новую команду, которой нет в конфигурации;
  • ❌ показать пункт, на который у роли нет прав.

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

Нужно, чтобы у всех пункты стояли одинаково? Тогда меняйте командный интерфейс подсистемы в конфигураторе, а не просите каждого настроить панель вручную.

Диагностика: пункт не появился или лежит не там

СимптомВероятная причинаЧто сделать
Раздела нет в панели разделовУ подсистемы выключен вывод в командный интерфейсПроверьте свойства подсистемы
Объекта нет в списке доступных командЕго нет в составе подсистемыДобавьте в Состав
Пункт есть у администратора, нет у остальныхНет права Просмотр или скрыто по ролямПроверьте роль пользователя
Правка в конфигураторе не виднаОткрытый сеанс не перечитал интерфейсПерезапустить клиент
Пункт попал в «Ещё»Стоит в группе ОбычноеПеренесите в Важное
Пункт пропал после обновления типовой конфигурацииПравка делалась в самой конфигурации, а не в расширенииПовторите в расширении
Команда нажимается, но ничего не открываетсяОшибка в обработчике или неверное имя формыПроверьте код в модуле команды

Если команда не работает , откройте её модуль и запустите клиент в режиме отладки: платформа покажет строку, на которой упало. Частая причина — опечатка в имени формы в ОткрытьФорму.

Частые вопросы

Можно ли добавить пункт в панель, не используя конфигуратор?
Новую команду нельзя. Переставить и скрыть уже существующие пункты можно через настройку навигации в клиенте.
Где панель навигации формы, а где панель разделов?
Панель разделов расположена сверху и показывает подсистемы. Панель навигации раздела находится слева в окне раздела. Панель навигации формы собрана из ссылок «Перейти» внутри открытого элемента или документа.
Почему после добавления команды её не видно в базе с поддержкой?
Типовая конфигурация закрыта от изменений, либо вы правили основную, а она заменена обновлением. Делайте правки в расширении конфигурации.
Как поменять порядок пунктов у всех пользователей сразу?
Переставьте команды в командном интерфейсе подсистемы или формы в конфигураторе и обновите базу. Личные настройки сотрудников при этом сохраняются и могут перекрыть общий порядок, так что сбросьте их, если порядок у кого-то не изменился.
Нужно ли перезапускать сервер после изменения командного интерфейса?
Обычно нет. Достаточно обновить конфигурацию базы данных и перезапустить клиентские сеансы. Перезапуск сервера оборвёт сеансы всех пользователей, поэтому без нужды его не делают.