Меню в 1С 8.3: свой раздел, свои команды и права на них
Содержание
Меню в 1С 8.3 делают двумя способами. Пользователь сам настраивает панель разделов и навигацию через пункт Вид главного меню, без Конфигуратора. Программист или администратор меняет командный интерфейс в Конфигураторе: создаёт подсистему-раздел, размещает в ней команды и ограничивает видимость ролями.
Если нужно просто убрать лишнее и переставить разделы под себя, хватит первого способа. Если нужен новый раздел для всех сотрудников или новая кнопка, которая открывает обработку, отчёт или справочник, придётся открывать Конфигуратор. Ниже оба пути, с акцентом на второй: именно он вызывает больше всего вопросов.
Статья про управляемый интерфейс «Такси» на платформе 8.3.2x. Классический вариант оформления разобран отдельным разделом в конце.
Вид в главном меню, настройка панели разделов и навигации. Конфигуратор не нужен, меняется только ваш профиль.Что понадобится до начала работы
Для пользовательских настроек ничего, кроме открытой базы. Для работы в Конфигураторе нужны три вещи:
- 🔑 Права администратора и право на запуск Конфигуратора.
- 📦 Понимание, на поддержке ли конфигурация. Типовую БП, ЗУП или УТ лучше не править напрямую: при каждом обновлении придётся сливать свои правки. Правильнее вынести меню в расширение конфигурации .
- 💾 Рабочая копия базы. Командный интерфейс не ломает данные, но удобнее отрабатывать всё на копии и потом переносить.
Откройте Конфигуратор из окна запуска (кнопка Конфигуратор), затем Конфигурация → Открыть конфигурацию. Дерево метаданных слева — ваш рабочий инструмент. Для расширения создайте его через Конфигурация → Расширения конфигурации и работайте уже в нём.
Если база на поддержке, Конфигуратор спросит про изменение объекта поддержки. Снимать поддержку целиком ради одного раздела меню не нужно: достаточно расширения.
Раздел меню — это подсистема
Верхняя панель разделов в «Такси» строится из подсистем. Каждая подсистема верхнего уровня, у которой включён флажок вывода в командный интерфейс, превращается в отдельный раздел. Вложенные подсистемы дают подразделы.
Порядок действий:
- В дереве метаданных раскройте ветку
Общиеи найдитеПодсистемы. - Нажмите правой кнопкой по
Подсистемыи выберитеДобавить. - Задайте
Имялатиницей или кириллицей без пробелов, напримерПроизводственныйУчёт, иСиноним— это то, что увидит пользователь («Производственный учёт»). - Установите флажок
Включать в командный интерфейс. - Выберите картинку: она показывается рядом с названием в панели разделов.
Подсистема пока пустая, и в меню раздел не появится, пока в нём нечего показывать. Следующий шаг — наполнение.
Как наполнить раздел командами
В подсистеме есть свойство Состав. Это список объектов метаданных, которые к ней относятся: справочники, документы, журналы, отчёты, обработки. Откройте подсистему, нажмите Состав и отметьте галочками нужные объекты.
После этого команды этих объектов попадают в командный интерфейс раздела автоматически. Для справочника это его список, для документа — список и команда создания, для отчёта — запуск. Где именно они лягут, определяют группы.
| Зона | Группа | Что обычно там |
|---|---|---|
| Панель навигации | Важное | Основные списки раздела |
| Панель навигации | Обычное | Остальные списки и журналы |
| Панель навигации | См. также | Редко нужные списки, справочники-настройки |
| Панель действий | Создать | Команды создания документов и элементов |
| Панель действий | Отчёты | Отчёты раздела |
| Панель действий | Сервис | Служебные обработки |
Чтобы изменить размещение, откройте командный интерфейс подсистемы (кнопка или команда Командный интерфейс в окне редактирования подсистемы). В дереве команд у каждой есть флажок видимости. Перетаскивайте команды между группами и меняйте порядок стрелками.
💡 Группа Важное — единственное, что пользователь видит сразу без раскрытия. Три-пять команд там, остальное в Обычное. Если «Важного» двадцать пунктов, оно перестаёт быть важным.
Своя кнопка: общая команда для обработки или формы
Не всё, что нужно вывести в меню, относится к объекту из состава. Например, нужно открыть внешнюю обработку , конкретную форму отчёта с отбором или сервисную форму. Тут помогает общая команда.
- В ветке
ОбщиенайдитеОбщие команды, правая кнопка →Добавить. - Задайте имя и синоним (текст пункта в меню).
- В свойстве
Группавыберите, в какой панели и в какой группе команда должна оказаться: навигация или действия. - Укажите
Тип параметра команды, если команда работает с выбранным объектом. Если не работает , оставьте пустым. - Откройте модуль команды и напишите обработчик.
Минимальный обработчик, открывающий список номенклатуры:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");
КонецПроцедуры
Чтобы команда появилась именно в вашем разделе, добавьте её в Состав нужной подсистемы. Общая команда в состав подсистемы включается так же, как справочник или документ: она есть в списке отмечаемых объектов. Без этого шага команда нигде не покажется.
У команды есть свойство Картинка — иконка для кнопки. Для панели действий она нужна почти всегда, иначе кнопка выглядит голой строкой.
Видимость: роли и функциональные опции
Одно дело вывести пункт в меню, другое — показать его не всем. У видимости два механизма, и они складываются.
Роли. В редакторе командного интерфейса подсистемы для команды можно указать, каким ролям она видна. Роль без права на объект всё равно не откроет его: меню показывает пункт, но данные недоступны. Поэтому видимость и права надо согласовывать. Скрыли команду от роли — проверьте, что у неё нет права на этот объект, иначе пункт всё равно можно открыть из другого места.
Функциональные опции. Если в базе отключена функциональность (например, не ведётся производство), связанные с ней разделы и команды исчезают сами. Включают и выключают опции в разделе Администрирование на страницах настроек программы. Для своей команды можно привязать функциональную опцию в свойствах: она тогда будет видна только при включённой настройке.
Правило выбора простое:
- 👥 Разные сотрудники видят разное → роли.
- ⚙️ Функция нужна не всем организациям или базам → функциональная опция.
- 🔒 Нужна защита данных, а не косметика → права на объекты в ролях, одним меню тут не обойтись.
Порядок разделов и начальная страница
Порядок разделов определяется их порядком в ветке подсистем: передвиньте подсистему вверх или вниз в дереве, и раздел сместится в панели. Для расширения порядок наследуется: новый раздел встанет в конец, если не указать иное.
Отдельно настраивается начальная страница — окно, которое открывается при запуске. Её формы собираются из форм, которые подсистемы и объекты предлагают для вывода на начальную страницу. Каждый пользователь может перераспределить их через Вид → Настройка начальной страницы. Администратор задаёт состав по умолчанию в Конфигураторе.
Настройка меню без Конфигуратора
Если права менять конфигурацию нет, пользовательские настройки закроют много задач. Открывается всё из главного меню, значок в левом верхнем углу окна:
Вид → Настройка панели разделов— какие разделы показывать и в каком порядке.Вид → Настройка навигации— какие команды раздела и в какой группе показаны для вас.Вид → Настройка панели действий— свои наборы кнопок «Создать» и «Отчёты».Вид → Настройка начальной страницы— состав и расположение форм при запуске.
В окнах настройки есть кнопка сброса к значениям по умолчанию. Эти настройки хранятся отдельно для каждого пользователя и не влияют на других. Администратор может скопировать свои настройки сотруднику через пользовательские настройки в разделе администрирования пользователей.
Классический вид меню
Платформа 8.3 умеет показывать интерфейс в двух вариантах: «Такси» и режим, совместимый с 8.2. Выбирается в свойствах конфигурации (вариант интерфейса клиентского приложения) и на уровне пользовательских параметров. В режиме 8.2 вместо панели разделов работает строка главного меню и панель функций, но подсистемы остаются основой: структура раздела, состав и командный интерфейс задаются теми же объектами.
Практическое следствие: после смены варианта не нужно переделывать подсистемы. Нужно только проверить, как команды выглядят и сгруппированы в новом варианте, и подправить размещение. Новую разработку лучше сразу вести под «Такси», а про режим 8.2 помнить, только если пользователи ещё на нём.
Пример: раздел «Склад и закупки» для кладовщиков
Допустим, кладовщикам нужен отдельный раздел только с тем, что им действительно нужно в работе. Типовой интерфейс перегружен, и они путаются в десятках пунктов.
- Создайте подсистему
СкладИЗакупкис синонимом «Склад и закупки», включите её в командный интерфейс. - В состав добавьте справочник номенклатуры, документы поступления и перемещения, журнал складских документов и один-два отчёта по остаткам.
- В командном интерфейсе вынесите в
Важноеноменклатуру и журнал документов , остальные списки отправьте вОбычное, редкие справочники вСм. также. - В группу
Создатьпанели действий оставьте только поступление и перемещение, лишние команды создания отключите. - Ограничьте раздел ролью кладовщика: для остальных сотрудников раздел скройте.
- Запустите под тестовым пользователем с этой ролью и пройдите путь от входа до создания документа.
Если кладовщик жалуется, что нужного отчёта нет, не расширяйте раздел наугад. Выясните, что именно он открывает чаще всего, и поднимите это выше, а остальное оставьте в стороне.
Когда меню ведёт себя не так
Проверка и публикация изменений
Проверить результат можно, не покидая Конфигуратор: Отладка → Начать отладку (клавиша F5) запускает 1С:Предприятие с изменённой конфигурацией. Если Конфигуратор предложит обновить конфигурацию базы данных, согласитесь.
Что проверить перед выкладкой на рабочую базу:
Перенос на рабочую базу:
- Если вы работали в расширении, сохраните его (
Конфигурация → Расширения конфигурации) и загрузите в рабочую базу как файл.cfe, затем выполните обновление конфигурации базы данных. Это два отдельных шага. - Если меняли основную конфигурацию, сохраните её в файл
.cfили обновите рабочую базу через сравнение и объединение. - Запускайте перенос в нерабочее время: при обновлении конфигурации базы пользователей из неё нужно вывести.
Нельзя заходить в рабочую базу в Конфигураторе, пока в ней работают люди и вы собираетесь обновлять структуру. Часть операций требует монопольного доступа, и сеансы пользователей оборвутся.
Частые вопросы
Почему новый раздел не появился в меню?
Включать в командный интерфейс. Также проверьте, что роль пользователя вообще видит команды из состава раздела.