При проектировании интерфейсов в управляемом приложении платформа 1С автоматически группирует многие стандартные действия в выпадающее меню кнопки «Еще». Пользователям не всегда удобно открывать дополнительное подменю для выполнения частых операций, таких как поиск данных, установка или снятие пометок. Разберем, как сделать стандартные команды доступными прямо на панели формы или таблицы, выясним тонкости работы платформы и проанализируем частые ошибки разработчиков.
Самый надежный и простой способ вывести команду на видимую часть панели — явно перенести её в дерево элементов формы при разработке. Разберем этот процесс по шагам:
Найти, ОтменитьПоиск или команды управления флажками).КоманднаяПанель нужной таблицы или формы.ПоложениеВКоманднойПанели, установив его в значение ВКоманднойПанели (или ВКоманднойПанелиИДополнительномПодменю).ВажностьПриОтображении в значение Высокая. Дополнительно можно изменить свойство Отображение на Картинка, чтобы кнопка занимала минимум пространства.Если конфигурация находится на поддержке без возможности внесения изменений или доработку требуется применить только конкретному пользователю, задачу можно решить штатными механизмами интерфейса.
Рассмотрим, как пользователь может настроить панель самостоятельно:
Иногда разработчики пытаются изменить видимость или положение стандартной кнопки в процедуре ПриСозданииНаСервере кодом следующего вида:
// Ошибочный подход:
Элементы.ТабличнаяЧасть.КоманднаяПанель.ПодчиненныеЭлементы.СтандартнаяКоманда.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанели;
Проанализируем причину, по которой этот код вызовет исключение «Поле объекта не обнаружено». Если у панели таблицы свойство Автозаполнение установлено в значение Истина, платформа не создает элементы кнопок на сервере заранее. Стандартный состав команд генерируется динамически на стороне клиента при отрисовке интерфейса. Поэтому в коллекции ПодчиненныеЭлементы этих кнопок физически не существует в момент выполнения серверных процедур.
Программное управление свойством ПоложениеВКоманднойПанели допустимо исключительно для тех кнопок, которые были предварительно добавлены в дерево элементов разработчиком вручную или созданы через метод Элементы.Добавить().
Важно различать тип данных, с которым связана таблица на форме:
СписокЗначений, платформа автоматически предоставляет для него стандартные команды УстановитьФлажки и СнятьФлажки. Их достаточно перетащить на панель, как описано в первом способе.ТаблицаЗначений с произвольной колонкой флажка (булево), у платформы нет встроенных стандартных команд для массового выделения строк. В этом случае попытка найти готовую команду не увенчается успехом. Потребуется добавить собственную команду формы и обработать строки кодом:
&НаКлиенте
Процедура УстановитьВсеПометки(Команда)
Для Каждого Стр Из ТаблицаЗначений Цикл
Стр.Пометка = Истина;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура СнятьВсеПометки(Команда)
Для Каждого Стр Из ТаблицаЗначений Цикл
Стр.Пометка = Ложь;
КонецЦикла;
КонецПроцедуры
Созданные команды выносим в командную панель или в контекстное меню таблицы для быстрого доступа.
Если панель уже перегружена элементами, рассмотрим альтернативные варианты оптимизации работы пользователя:
Ctrl + F, а сброс поиска — комбинацией Ctrl + Q. Дополнительные кнопки на панели для этого не требуются.КонтекстноеМеню таблицы позволяет вызывать их по правому клику мыши непосредственно в строке, без необходимости перемещать курсор к верхней панели.Автозаполнение и добавить вручную только минимально необходимый набор команд. Это предотвратит вытеснение нужных кнопок в подменю «Еще».