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