Кнопка «Еще» в командной панели формы 1С: скрыть, заменить или перенести команды
Содержание
Кнопка «Еще» в 1С не отдельный элемент, который можно просто удалить одной галочкой. Это подменю, куда платформа сама складывает команды, не поместившиеся в командную панель. Убирают её так: освобождают место в панели, переносят нужные кнопки в видимую часть или прячут лишние команды. Какой способ выбрать, зависит от того, кто вы: пользователь, администратор или разработчик.
Ниже по порядку: почему кнопка появляется, что можно сделать без программирования, как управлять командами в конфигураторе и из кода, как не потерять изменения при обновлении. Речь об управляемых формах 1С 8.3 с интерфейсом «Такси».
Откуда берётся «Еще» в командной панели
Платформа раскладывает кнопки панели слева направо, пока хватает ширины. Остальные уходят в подменю «Еще» (три точки или слово «Еще», в зависимости от режима отображения). Поэтому один и тот же документ у двух пользователей может выглядеть по-разному.
Типичные причины:
- 📏 узкое окно формы или маленький экран, ширины панели не хватает;
- 🧩 в форму добавлено много команд: стандартные, свои, подключённые расширением;
- 🏷 у кнопок длинные заголовки, и каждая занимает много места;
- ⚙ у команды в свойствах задано размещение «в дополнительном подменю», и она попадает в «Еще» принудительно.
Последняя причина самая неочевидная. Если кнопка живёт в «Еще» по настройке, расширение окна ничего не изменит. Сначала выясните, какой из случаев ваш: растяните окно на весь экран . Если часть кнопок вернулась на панель, дело в ширине. Если «Еще» осталась и в ней всё те же команды, дело в настройке размещения.
Подменю «Еще» в списках и документах содержит и стандартные команды платформы. Полностью убрать его нельзя, пока в панели есть что в него складывать. Цель обычно другая: чтобы в «Еще» не оказалось нужных команд.
Что может сделать пользователь без конфигуратора
Права разработчика не нужны, если нужно лишь вынести привычные кнопки на видное место. Откройте подменю «Еще» и поищите в нём команду изменения формы (в разных формах она называется похоже: «Изменить форму…»). В открывшемся окне настройки видно дерево элементов формы, включая командную панель, и можно:
- отметить кнопки, которые нужны на панели постоянно;
- снять отметки с кнопок, которыми вы не пользуетесь;
- перетащить команды вверх или вниз, чтобы важные стояли первыми;
- сохранить настройку.
Настройка хранится для вашего пользователя и конкретной формы, на других пользователей не действует. Если после обновления конфигурации форма «поехала», в том же окне есть сброс к стандартному виду.
Второй способ без кода: изменить размер окна. В 1С окно формы запоминает размер, так что достаточно один раз растянуть его и закрыть.
Если форму настраивали раньше, а потом разработчик добавил новые кнопки, они могут не появиться у вас на панели: пользовательская настройка перекрывает стандартную. Сбросьте настройку формы и посмотрите ещё раз.
Скрытие кнопки через свойства формы в конфигураторе
Для разработчика основной инструмент — редактор формы. Откройте нужную форму в Конфигураторе, перейдите на вкладку «Элементы» и найдите командную панель (обычно элемент с именем вроде ФормаКоманднаяПанель или КоманднаяПанель).
Куда положить кнопку: свойство размещения
У каждой кнопки есть свойство, определяющее, где она показывается. У значения «Авто» поведение зависит от места в панели: что не влезло, то уйдёт в «Еще». Явные значения такие:
| Значение | Что произойдёт |
|---|---|
| Авто | Платформа сама решает: вмещается — на панели, нет — в «Еще» |
| В командной панели | Кнопка остаётся на панели, пока хватает места |
| В дополнительном подменю | Кнопка всегда лежит в «Еще» |
| В командной панели и в подменю | Кнопка есть и там, и там |
Чтобы нужная команда не пряталась, ставьте «В командной панели». Чтобы второстепенная команда не занимала место, наоборот, переведите её в подменю. Так вы сами решаете, что окажется под «Еще», а платформа не режет панель по случайному признаку.
Автозаполнение панели
У командной панели есть свойство автозаполнения. Когда оно включено, платформа сама добавляет в панель команды формы и стандартные команды. Если вы хотите собрать панель полностью вручную, автозаполнение отключают, а нужные кнопки добавляют по одной. Это даёт полный контроль, но нужно помнить: новые команды, которые позже появятся в форме, сами не добавятся.
Группы кнопок
Когда команд много, их удобно собрать в группы: «Печать», «Создать на основании», «Сервис». Одна кнопка-группа занимает меньше места, чем пять отдельных, и «Еще» не включается. Для этого в панели создают элемент «Группа» с видом «Подменю» или «Командная панель» и переносят в него кнопки перетаскиванием.
Короткие заголовки тоже экономят место. Если у кнопки заголовок из четырёх слов, замените на одно: «Провести и закрыть» оставьте как есть, а «Распечатать комплект документов на подпись» сократите до «Комплект».
Управление видимостью кнопки из кода
Если кнопку нужно прятать по условию (например, для роли без прав или для определённого вида документа), используют код формы. Обращаются к элементу формы через коллекцию Элементы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Скрываем кнопку для пользователей без нужной роли
Элементы.ФормаСлужебнаяКоманда.Видимость = РольДоступна("Администратор");
// Делаем кнопку недоступной, но видимой
Элементы.ФормаДругаяКоманда.Доступность = Ложь;
КонецПроцедуры
Имя ФормаСлужебнаяКоманда здесь условное: подставьте имя кнопки из вашей формы. Свойство Видимость убирает кнопку с панели и из «Еще» полностью. Доступность оставляет её серой.
Когда в «Еще» остаются только скрытые элементы, подменю само исчезает: пустой список платформа не показывает. Это самый чистый способ избавиться от кнопки «Еще» целиком, но он годится, только если в подменю не останется ни одной нужной команды.
Управлять видимостью можно также через свойство команды в зависимости от функциональных опций. Если команда привязана к функциональной опции, то при выключенной опции она пропадает из интерфейса у всех, и в «Еще» тоже.
Не скрывайте служебные кнопки, не проверив, что пользователи ими не пользуются. Кнопка, убранная из панели, часто нужна администратору для разовых операций. Лучше оставить такую команду в подменю.
Командный интерфейс и группы разделов
Есть путаница, которую стоит развести. Кнопка «Еще» в панели формы и подменю «Еще» в панели разделов или в навигационной панели списка — разные вещи.
- В командной панели формы «Еще» собирает кнопки самой формы.
- В навигационной панели (ссылки «Перейти», связанные списки) команды берутся из командного интерфейса объекта.
- В панели разделов верхнего уровня видимость настраивается через командный интерфейс конфигурации и права ролей.
Чтобы убрать пункт из командного интерфейса, у объекта метаданных (справочника, документа) в свойствах находят команды и снимают видимость для нужных ролей, либо настраивают интерфейс в режиме пользователя. Для общей команды отключают видимость по ролям или по функциональной опции.
Если у вас кнопка находится в навигационной панели, а не в командной, правка формы ничего не изменит. Определить просто: кнопка «Еще» над списком — это панель формы, а слева или справа в виде ссылок — навигация.
Режимы совместимости и версия платформы
Внешний вид командной панели зависит от того, какой интерфейс выбран и с каким режимом совместимости работает конфигурация. Что стоит знать на практике:
- Интерфейс «Такси» (платформа 8.3.2x) показывает «Еще» как отдельную кнопку и опирается на свойства размещения команд.
- В старых режимах совместимости набор доступных свойств панели меньше. Если нужного свойства нет в палитре, проверьте режим совместимости в свойствах конфигурации.
- Поведение «Авто» не меняется между версиями без причины, но алгоритм раскладки по ширине доработан от релиза к релизу. После перехода на новую платформу панель может лечь иначе. Если у вас жёсткие требования к виду, задайте размещение явно.
Версии платформы сравнивайте по номеру, а не по ощущению: смотрите в окне «О программе». Перед тем как ссылаться на «изменилось в новой платформе», посмотрите, не поменялся ли заодно режим совместимости.
Расширения конфигурации: как поменять типовую форму и не потерять правку
Типовую форму из поставки (БП, ЗУП, УТ) править напрямую неудобно: при обновлении правка слетает или мешает обновлению. Для этой цели используют расширение конфигурации (оно появилось в платформе 8.3.6).
Порядок такой:
- В Конфигураторе создайте расширение и добавьте в него нужную форму (через заимствование объекта и формы).
- В заимствованной форме измените свойства кнопок или добавьте код в обработчик
ПриСозданииНаСервере, как показано выше. - Сохраните расширение, затем загрузите его в базу и примените командой обновления конфигурации базы данных.
- Проверьте результат под пользователем с обычными правами, а не под администратором.
Расширение не затирает типовой код, а надстраивается над ним. Поэтому при обновлении релиза конфигурации ваша правка остаётся на месте. Если типовая форма изменилась радикально, заимствованные элементы нужно проверить вручную.
Меняйте расширение сначала в копии базы. Загрузка расширения в рабочую базу при работающих пользователях обновляет структуру и может потребовать их выхода из программы.
Частые ошибки и почему «Еще» не исчезает
Разберём ситуации, когда всё вроде бы сделано, а кнопка на месте.
Ещё одна ловушка: разработчик меняет форму, но не проверяет её в разных размерах окна. В Конфигураторе панель выглядит нормально, а на ноутбуке с небольшим экраном часть кнопок уезжает в «Еще». Проверяйте форму в окне нормального пользовательского размера.
Проверку удобно провести по короткому списку:
Если форм много, начните с тех, которыми пользуются чаще всего: списки документов и карточки справочников. Для редко открываемых форм достаточно, чтобы важные команды находились хотя бы в подменю и пользователь знал, где их искать. Заодно стоит договориться внутри команды об общих правилах: какие кнопки всегда на панели, какие уходят в подменю. Тогда формы разных разработчиков будут вести себя одинаково, а жалоб на «пропавшие» кнопки станет заметно меньше.