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