Подменю в 1С 8.3: где оно встречается и как его настроить

· 9 мин

Содержание

Подменю в 1С — это пункт меню или командной панели, который не выполняет действие сам, а раскрывает список вложенных команд. Вы нажимаете на кнопку со стрелкой, видите выпадающий список и выбираете нужную команду. Так в управляемых формах 8.3 прячут команды, которые нужны не каждый день: «Печать», «Создать на основании», «Ещё».

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

Где подменю встречается в интерфейсе

Под словом «подменю» в 1С 8.3 скрываются разные вещи. Это полезно различать, иначе легко искать настройку не там.

Где вы его видитеКак выглядитКто настраивает
Командная панель формы документа или спискаКнопка со стрелкой: «Создать на основании», «Печать», «Ещё»Разработчик; пользователь — частично
Контекстное меню (правая кнопка мыши)Пункт со стрелкой вправо, раскрывает вложенный списокРазработчик
Панель разделов и панель навигацииГруппы команд внутри раздела: «Сервис», «Отчёты», «Справочники»Пользователь и разработчик
Главное меню окна программыПункты с вложенным спискомПлатформа

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

Быстрая проверка: подведите курсор к кнопке. У подменю нет собственного действия — нажатие только раскрывает список. У команды нажатие сразу что-то делает.

Чем подменю отличается от раздела и группы команд

Новички путают три понятия. Они выглядят похоже, но устроены по-разному.

  • 📂 Раздел — верхний уровень навигации. В интерфейсе «Такси» это пункты панели разделов: «Главное», «Продажи», «Банк и касса», «Зарплата». В конфигурации раздел — это подсистема верхнего уровня.
  • 🧩 Группа команд — набор команд внутри раздела. Команды объединены по смыслу и показываются в панели навигации или в панели действий. Отдельной кнопки у группы нет, это просто блок.
  • 🔽 Подменю — кнопка, которая раскрывает вложенный список. Применяется там, где места мало: в командной панели формы или списка.

Главное отличие: раздел и группа команд организуют навигацию по программе, а подменю экономит место в панели конкретного окна. Группу вы видите сразу целиком, подменю — только после нажатия.

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

Как создать подменю в Конфигураторе

Этот раздел для тех, кто дорабатывает конфигурацию. Пользователю без права на изменение конфигурации он не нужен.

Подменю создаётся в редакторе формы. Порядок такой:

  1. Откройте нужную форму объекта в Конфигураторе: найдите объект в дереве конфигурации, раскройте «Формы» и откройте редактор.
  2. На вкладке «Командный интерфейс» или в элементах формы выберите командную панель, куда хотите добавить кнопку.
  3. Добавьте новую группу и задайте ей вид «Подменю» — в свойствах группы это отдельное значение, отличное от «Обычная группа» и «Командная панель».
  4. Переименуйте группу: заголовок виден пользователю, имя нужно для обращения из кода.
  5. Перетащите в группу команды формы. Они станут вложенными пунктами.
  6. Сохраните форму и запустите 1С:Предприятие в режиме отладки — проверьте, что список раскрывается.

Заголовок подменю делайте коротким: два-три слова. Длинную подпись платформа обрежет, а в узкой панели она занимает место, ради экономии которого подменю и создавалось.

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

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

Подменю в командном интерфейсе: порядок и состав

В командном интерфейсе подсистем подменю как отдельного объекта нет, но порядком и составом команд управляют так же, как в подменю формы. У каждой подсистемы есть своё окно «Командный интерфейс». В нём команды разложены по группам: панель навигации (важные, обычные, смотрите также) и панель действий (создать, отчёты, сервис).

Что можно сделать с командой:

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

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

Как пользователь настраивает меню под себя

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

Откройте главное меню программы и найдите пункт «Вид». Там расположены настройки интерфейса. Основные из них:

  • ⚙️ Настройка панели разделов — включить, выключить и переставить разделы. Лишние разделы можно убрать, чтобы они не мешали.
  • 🧭 Настройка панели навигации — выбрать, какие команды показывать в текущем разделе и в каком порядке.
  • ⚡ Настройка панели действий — то же для команд «Создать», «Отчёты» и «Сервис».

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

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

Если нужной команды нет в меню
Выполнено: 0 / 5

Видимость подменю и ролевая модель

Подменю видно не всем. Что именно покажет программа, зависит от трёх вещей, и их полезно проверять по порядку.

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

2. Функциональные опции. Администратор включает и выключает возможности программы в настройках. Выключили «Учёт по нескольким организациям» — команды, связанные с ним, исчезли у всех, независимо от прав. Настройки функциональности лежат в разделе Администрирование.

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

Чтобы быстро понять причину, используйте простую схему:

Команда или подменю не отображается — что проверять?

Права смотрит администратор: в режиме 1С:Предприятие они задаются в Администрирование → Настройки пользователей и прав, а список пользователей и ролей — в одноимённых справочниках этого раздела.

Показ подменю по условию из кода

Иногда подменю нужно показывать не всегда: например, только для проведённого документа или только пользователям с определённым правом. Для этого у элемента формы есть свойство видимости, которое меняют из модуля формы.

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Элементы.ПодменюДополнительно.Видимость = ЭтаФорма.Объект.Проведен;
КонецПроцедуры

Здесь ПодменюДополнительно — имя группы-подменю, заданное в редакторе формы. Подставьте своё. Для вычисления условия на сервере используйте процедуру ПриСозданииНаСервере, а на клиенте — вызов после открытия формы, если условие зависит от данных, которые меняются при работе.

Два замечания на практике:

  • 🔍 Имя группы в коде должно совпадать с именем в редакторе формы буква в букву. Заголовок, который видит пользователь, для кода значения не имеет.
  • 🧪 После правки откройте форму под ролью обычного пользователя, а не только под администратором: у администратора часть условий выполняется автоматически, и ошибка не проявится.

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

Типичные ошибки при работе с подменю

Здесь собраны ошибки, которые возникают именно с подменю, а не с интерфейсом в целом.

  • 🕳️ Пустое подменю. Разработчик создал группу, но перенёс в неё не те команды или команды недоступны ролям. Решение — перенести команды и проверить права.
  • 🔁 Команда продублирована. Одна команда добавлена и в подменю, и на панель напрямую. Оставьте её в одном месте: двойное размещение путает пользователей.
  • 📏 Слишком вложенная структура. Подменю внутри подменю. На практике после второго уровня пользователи перестают находить команды. Держите один уровень.
  • 🏷️ Неинформативный заголовок. «Прочее», «Дополнительно» — в такое подменю складывают всё подряд, и искать там неудобно. Называйте по смыслу: «Печать», «Создать на основании».
  • 🧱 Правка типовой формы напрямую. После обновления конфигурации изменения пропадают или вызывают конфликт при объединении. Используйте расширение.
  • 🙈 Команда спрятана, но доступна другим способом. Скрытие в меню не отключает право. Если пользователю нельзя выполнять действие, закройте его правами роли, а не только скройте кнопку.

Последний пункт стоит запомнить: видимость — это удобство, а не защита. Защищают права.

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

Подменю и выпадающий список — это одно и то же?
В командной панели — по сути да: кнопка раскрывает список вложенных команд. Но настоящий выпадающий список в поле ввода — другой элемент: он выбирает значение, а не запускает команду.
Можно ли отключить подменю только для одного пользователя?
Через настройку панелей пользователь скрывает только то, что допускает платформа. Чтобы скрыть команду от конкретного человека, меняют его роли или настраивают видимость по ролям. Отдельной кнопки «скрыть для Иванова» нет.
Почему у меня подменю «Печать» есть, а у коллеги нет?
Чаще всего у коллеги нет права на документ или на конкретную печатную форму. Сравните роли в разделе Администрирование.
Нужно ли программировать, чтобы создать подменю?
Нет, для самого подменю код не нужен: оно собирается из элементов формы в редакторе. Код потребуется, если нужно показывать пункты по условию.
Настройки интерфейса сбросились — что делать?
Откройте настройку нужной панели и расставьте команды заново либо воспользуйтесь кнопкой возврата к настройкам по умолчанию. Сохранённые настройки привязаны к пользователю, так что при работе под другой учётной записью вы увидите стандартный вид.