Панель навигации в 1С 8.3: свои команды и разделы

· 9 мин

Содержание

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

Здесь речь про 1С 8.3 с интерфейсом «Такси». Панель навигации в нём бывает двух видов. Есть панель разделов (верхняя полоса или левая колонка с разделами «Главное», «Банк и касса», «Зарплата») и есть панель навигации формы (ссылки «Связанные документы», «Файлы», «Кэш» на форме элемента или документа). Настраиваются они по-разному.

Из чего состоит навигация в 1С

Прежде чем что-то добавлять, полезно понять, откуда команда берётся.

  • Каждая команда принадлежит подсистеме. Подсистема — это раздел верхнего уровня или его вложенный пункт.
  • Раздел в панели разделов — это подсистема первого уровня. Его команды разложены по группам: «Панель навигации» (слева) и «Панель действий» (справа от списка команд).
  • Внутри панели навигации команды делятся на три группы: обычные, важные и «См. также». Важные выделены жирным и стоят выше остальных.
  • На форме объекта есть своя панель навигации. Её команды — это команды самой формы или связанные с объектом списки и отчёты.

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

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

Добавление команды через конфигуратор

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

Шаг 1. Подготовьте команду

Команда должна существовать. Это может быть:

  • команда общего назначения (ветка «Общие» → «Общие команды» в дереве метаданных);
  • команда, которую платформа создаёт автоматически для списка справочника, документа или отчёта;
  • команда формы.

Для нового пункта чаще всего заводят общую команду. У неё задают группу, обработчик и, при необходимости, тип параметра команды. Если команда открывает форму отчёта или обработки, обработчик содержит одну строку открытия формы.

Шаг 2. Включите команду в подсистему

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

Без этого шага команда в разделе не появится. Это самая частая причина вопроса «я создал команду, а где она».

Шаг 3. Разместите команду в нужной группе

  1. Правой кнопкой по подсистеме → пункт, открывающий командный интерфейс подсистемы.
  2. Найдите команду в списке. Слева стоят группы панели навигации, справа — панели действий.
  3. Перетащите команду в «Обычное», «Важное» или «См. также». Порядок внутри группы задаётся перетаскиванием.
  4. Установите флажок видимости, если команда по умолчанию должна быть показана.

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

Шаг 4. Проверьте результат

Запустите 1С:Предприятие из конфигуратора (или обновите базу, если работаете с расширением). Войдите под пользователем с ограниченной ролью, а не под администратором. Администратор видит всё и ошибку скрытия не заметит.

Как работать через расширение

Для типовых конфигураций порядок такой, и он одинаков для БП, ЗУП и УТ.

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

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

Для расширения заведите тестовую базу-копию. Ошибка в расширении при старте может блокировать вход всем, и разбираться с этим лучше не на рабочей базе. Если вход всё-таки заблокирован, расширение отключают через конфигуратор.

Команда на панели навигации формы

Если нужна ссылка не в разделе, а на форме конкретного справочника или документа, настройка идёт в редакторе формы.

  1. Откройте форму элемента в конфигураторе.
  2. Перейдите на вкладку «Командный интерфейс» редактора формы.
  3. В дереве слева есть «Панель навигации» и «Панель действий формы». Нажмите на нужную группу и добавьте команду из списка доступных.
  4. Если нужной команды нет, сначала создайте её на вкладке «Команды» формы и привяжите к обработчику.

Здесь работает полезный приём. Нужна ссылка на «Список документов, связанных с этим контрагентом»? Не пишите команду с нуля: у реквизитов-ссылок платформа сама предлагает навигационные команды для связанных объектов. Их достаточно включить в панель.

Для типовой формы без снятия с поддержки такие правки недоступны. Выход тот же — расширение, где форма заимствуется и дорабатывается.

Персональная настройка в режиме Предприятия

Пользователю конфигуратор не нужен. Свою панель можно настроить прямо в работе.

Панель разделов

  1. Откройте главное меню (значок с тремя полосками или пункт «Файл» в зависимости от оформления).
  2. Выберите Вид → Настройка панели разделов.
  3. В левой части окна — доступные разделы, справа — отображаемые. Переносите кнопками между ними.
  4. Стрелками меняйте порядок.
  5. Нажмите ОК.

Команды внутри раздела

  1. Перейдите в нужный раздел.
  2. Вид → Настройка навигации.
  3. В правой колонке список команд, которые сейчас видны. В левой — доступные, но скрытые.
  4. Добавьте нужные, уберите лишние, расставьте порядок.

Тот же принцип работает и для панели действий: в меню Вид есть отдельный пункт настройки действий.

Названия пунктов в меню Вид могут слегка отличаться в зависимости от конфигурации и релиза. Если нужного пункта нет, откройте меню и найдите слово «настройка» рядом со словами «навигация», «действия» или «панель».

В списке доступных пользователь видит только то, что разрешено его ролью. Скрытую командой разработчика (флажок видимости снят) не получится включить даже вручную, если нет права на эту подсистему.

Настройка хранится в данных пользователя информационной базы. Поэтому она сохраняется после перезапуска, но не переезжает на другой компьютер вместе с профилем Windows. Её можно перенести через сохранение и загрузку настроек пользователя, если нужная обработка есть в вашей конфигурации. Тип хранилища (файловая база или сервер) не важен: настройки лежат в самой базе.

Хороший пример персональной настройки. Бухгалтер каждый день открывает один и тот же отчёт «Оборотно-сальдовая ведомость». Он идёт в раздел, где отчёт лежит в «См. также», открывает настройку навигации и переносит команду выше. Через минуту отчёт у него под рукой, и никто больше этого не заметил. Для одного человека этого достаточно, нанимать программиста не нужно.

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

Сбросить настройки

В окне настройки навигации есть кнопка возврата к стандартным значениям. Нажмите её, если после экспериментов команды перемешались.

Кому видна команда: роли и функциональные опции

У команды в подсистеме три «замка», и сработать должны все.

  1. Право на объект. Если у роли нет права «Просмотр» на документ, отчёт или справочник, к которым привязана команда, она будет скрыта.
  2. Функциональная опция. Каждый объект метаданных может быть связан с опцией. Выключена опция, например, «Вести учёт по нескольким организациям» — и команда пропала.
  3. Флажок видимости по умолчанию. Если он снят, команда доступна в списке настройки, но в панели появится только после того, как пользователь сам её включит.

Отсюда рабочий алгоритм диагностики, если команду «не видно»:

  • Проверьте под нужным пользователем. Роль администратора скажет мало.
  • Откройте настройку навигации и поищите команду в левой колонке. Она там есть, но не включена? Значит, дело в флажке видимости.
  • Команды нет и в левой колонке? Либо нет права, либо опция выключена, либо объект не включён в подсистему.

Чтобы дать команду только отдельной группе, разработчик не создаёт для неё отдельный интерфейс. Достаточно роли с правом на объект: у остальных ролей права нет, и команда у них не появляется.

Динамическая навигация: что можно и что нельзя

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

Что реально работает:

  • Видимость элементов формы из кода. Если команда размещена на самой форме как кнопка, её видимостью управляют программно в процедуре открытия формы или в обработчике события. Условие может быть любым: данные в базе, роль, дата.
  • Функциональные опции. Меняется константа — меняется набор команд для всех. Подходит для переключения режима учёта.
  • Параметры функциональных опций. Если опция зависит от организации или периода, команды появляются в зависимости от выбранной организации.

А вот показать команду в панели разделов по условию из кода в реальном времени нельзя: состав этой панели определяется при старте сеанса.

Типичные ошибки при настройке

Здесь только то, что не следует из шагов выше.

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

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

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

Переименовали команду, а в меню старое имя. У пользователя сохранена своя настройка, где название осталось прежним. Сбросьте её кнопкой возврата к стандартным значениям.

Команда открывает пустую форму или выдаёт ошибку. Проверьте тип параметра команды. Если она работает со списком и ожидает выделенный элемент, а вы вызвали её из раздела без параметра, форма получит пустую ссылку.

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

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

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

Что проверить перед запуском для всех

Прежде чем рассылать пользователям сообщение «новая команда готова», пройдите короткий чек-лист.

Проверка новой команды
Выполнено: 0 / 5