Меню в 1С 8.3: свой раздел, свои команды и права на них

· 9 мин

Содержание

Меню в 1С 8.3 делают двумя способами. Пользователь сам настраивает панель разделов и навигацию через пункт Вид главного меню, без Конфигуратора. Программист или администратор меняет командный интерфейс в Конфигураторе: создаёт подсистему-раздел, размещает в ней команды и ограничивает видимость ролями.

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

Статья про управляемый интерфейс «Такси» на платформе 8.3.2x. Классический вариант оформления разобран отдельным разделом в конце.

Что вы хотите сделать с меню?

Что понадобится до начала работы

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

  • 🔑 Права администратора и право на запуск Конфигуратора.
  • 📦 Понимание, на поддержке ли конфигурация. Типовую БП, ЗУП или УТ лучше не править напрямую: при каждом обновлении придётся сливать свои правки. Правильнее вынести меню в расширение конфигурации .
  • 💾 Рабочая копия базы. Командный интерфейс не ломает данные, но удобнее отрабатывать всё на копии и потом переносить.

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

Если база на поддержке, Конфигуратор спросит про изменение объекта поддержки. Снимать поддержку целиком ради одного раздела меню не нужно: достаточно расширения.

Раздел меню — это подсистема

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

Порядок действий:

  1. В дереве метаданных раскройте ветку Общие и найдите Подсистемы.
  2. Нажмите правой кнопкой по Подсистемы и выберите Добавить.
  3. Задайте Имя латиницей или кириллицей без пробелов, например ПроизводственныйУчёт, и Синоним — это то, что увидит пользователь («Производственный учёт»).
  4. Установите флажок Включать в командный интерфейс.
  5. Выберите картинку: она показывается рядом с названием в панели разделов.

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

Как наполнить раздел командами

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

После этого команды этих объектов попадают в командный интерфейс раздела автоматически. Для справочника это его список, для документа — список и команда создания, для отчёта — запуск. Где именно они лягут, определяют группы.

ЗонаГруппаЧто обычно там
Панель навигацииВажноеОсновные списки раздела
Панель навигацииОбычноеОстальные списки и журналы
Панель навигацииСм. такжеРедко нужные списки, справочники-настройки
Панель действийСоздатьКоманды создания документов и элементов
Панель действийОтчётыОтчёты раздела
Панель действийСервисСлужебные обработки

Чтобы изменить размещение, откройте командный интерфейс подсистемы (кнопка или команда Командный интерфейс в окне редактирования подсистемы). В дереве команд у каждой есть флажок видимости. Перетаскивайте команды между группами и меняйте порядок стрелками.

💡 Группа Важное — единственное, что пользователь видит сразу без раскрытия. Три-пять команд там, остальное в Обычное. Если «Важного» двадцать пунктов, оно перестаёт быть важным.

Своя кнопка: общая команда для обработки или формы

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

  1. В ветке Общие найдите Общие команды, правая кнопка → Добавить.
  2. Задайте имя и синоним (текст пункта в меню).
  3. В свойстве Группа выберите, в какой панели и в какой группе команда должна оказаться: навигация или действия.
  4. Укажите Тип параметра команды, если команда работает с выбранным объектом. Если не работает , оставьте пустым.
  5. Откройте модуль команды и напишите обработчик.

Минимальный обработчик, открывающий список номенклатуры:

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

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

У команды есть свойство Картинка — иконка для кнопки. Для панели действий она нужна почти всегда, иначе кнопка выглядит голой строкой.

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

Одно дело вывести пункт в меню, другое — показать его не всем. У видимости два механизма, и они складываются.

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

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

Правило выбора простое:

  • 👥 Разные сотрудники видят разное → роли.
  • ⚙️ Функция нужна не всем организациям или базам → функциональная опция.
  • 🔒 Нужна защита данных, а не косметика → права на объекты в ролях, одним меню тут не обойтись.

Порядок разделов и начальная страница

Порядок разделов определяется их порядком в ветке подсистем: передвиньте подсистему вверх или вниз в дереве, и раздел сместится в панели. Для расширения порядок наследуется: новый раздел встанет в конец, если не указать иное.

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

Настройка меню без Конфигуратора

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

  • Вид → Настройка панели разделов — какие разделы показывать и в каком порядке.
  • Вид → Настройка навигации — какие команды раздела и в какой группе показаны для вас.
  • Вид → Настройка панели действий — свои наборы кнопок «Создать» и «Отчёты».
  • Вид → Настройка начальной страницы — состав и расположение форм при запуске.

В окнах настройки есть кнопка сброса к значениям по умолчанию. Эти настройки хранятся отдельно для каждого пользователя и не влияют на других. Администратор может скопировать свои настройки сотруднику через пользовательские настройки в разделе администрирования пользователей.

Классический вид меню

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

Практическое следствие: после смены варианта не нужно переделывать подсистемы. Нужно только проверить, как команды выглядят и сгруппированы в новом варианте, и подправить размещение. Новую разработку лучше сразу вести под «Такси», а про режим 8.2 помнить, только если пользователи ещё на нём.

Пример: раздел «Склад и закупки» для кладовщиков

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

  1. Создайте подсистему СкладИЗакупки с синонимом «Склад и закупки», включите её в командный интерфейс.
  2. В состав добавьте справочник номенклатуры, документы поступления и перемещения, журнал складских документов и один-два отчёта по остаткам.
  3. В командном интерфейсе вынесите в Важное номенклатуру и журнал документов , остальные списки отправьте в Обычное, редкие справочники в См. также.
  4. В группу Создать панели действий оставьте только поступление и перемещение, лишние команды создания отключите.
  5. Ограничьте раздел ролью кладовщика: для остальных сотрудников раздел скройте.
  6. Запустите под тестовым пользователем с этой ролью и пройдите путь от входа до создания документа.

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

Когда меню ведёт себя не так

Диагностика: выберите симптом

Проверка и публикация изменений

Проверить результат можно, не покидая Конфигуратор: Отладка → Начать отладку (клавиша F5) запускает 1С:Предприятие с изменённой конфигурацией. Если Конфигуратор предложит обновить конфигурацию базы данных, согласитесь.

Что проверить перед выкладкой на рабочую базу:

Проверка командного интерфейса
Выполнено: 0 / 6

Перенос на рабочую базу:

  1. Если вы работали в расширении, сохраните его (Конфигурация → Расширения конфигурации) и загрузите в рабочую базу как файл .cfe, затем выполните обновление конфигурации базы данных. Это два отдельных шага.
  2. Если меняли основную конфигурацию, сохраните её в файл .cf или обновите рабочую базу через сравнение и объединение.
  3. Запускайте перенос в нерабочее время: при обновлении конфигурации базы пользователей из неё нужно вывести.

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

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

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