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