Как убрать лишние элементы и колонки динамического списка на управляемой форме 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Разработка интерфейсов на управляемой платформе «1С:Предприятие 8.3» предоставляет разработчику гибкие инструменты для вывода списков данных. Основным инструментом для этого служит элемент формы типа Таблица, связанный с реквизитом ДинамическийСписок. Однако при создании новых форм или добавлении списков на существующие страницы разработчики часто сталкиваются с тем, что платформа автоматически генерирует множество вспомогательных элементов. Это могут быть строка поиска, панель состояния просмотра, управление поиском, стандартные кнопки командной панели и избыточные колонки.

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

Выясняем причину: почему появляются лишние элементы поиска?

Начиная с версии платформы «1С:Предприятие 8.3.3», для таблиц, связанных с динамическими списками, по умолчанию активирован механизм быстрого полнотекстового поиска. Платформа автоматически добавляет к таблице три сервисных элемента:

  1. Строка поиска — поле ввода в верхней части таблицы для быстрого нахождения текстовых данных.
  2. Состояние просмотра — информационная панель (обычно внизу), в которой отображаются текущие отборы, установленные пользователем.
  3. Управление поиском — сервисные кнопки управления параметрами поиска.

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

Шаг 1. Отключение автоматических элементов поиска

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

  1. Откроем нужную управляемую форму в Конфигураторе.
  2. В левом верхнем окне (дерево Элементы) найдем нашу таблицу динамического списка и выделим ее.
  3. Откроем палитру свойств этой таблицы (нажав клавишу F4).
  4. Прокрутим список свойств до раздела Использование.
  5. Найдем свойство Положение строки поиска и установим для него значение Нет (по умолчанию там указано Авто).
  6. Найдем свойство Положение состояния просмотра и также установим его в значение Нет.
  7. Найдем свойство Положение управления поиском и выберем значение Нет.

После изменения этих настроек служебные поисковые поля исчезнут из дерева элементов конфигуратора и больше не будут отображаться в режиме «1С:Предприятие». Для интерактивной настройки и проверки свойств элементов без перезапуска конфигуратора можно использовать редактор свойств форм в режиме «1С:Предприятие».

Шаг 2. Отключение командной панели таблицы

По умолчанию над таблицей динамического списка выводится стандартная командная панель с кнопками «Создать», «Изменить», «Найти» и другими. Если ваша задача — сделать простой и лаконичный список (например, для подбора или отображения связанных ссылок), эту панель также следует отключить.

Для этого в палитре свойств нашей таблицы найдем свойство Положение командной панели. Изменим его значение с Авто (или Верх) на Нет. Стандартная панель с кнопками будет скрыта.

Шаг 3. Удаление лишних колонок из таблицы

Часто при переносе динамического списка на форму платформа автоматически добавляет в таблицу все доступные поля из запроса этого списка. Нам же может потребоваться отобразить всего одну колонку (например, только наименование или ссылку).

Здесь важно понимать фундаментальное различие между Реквизитами формы (данными) и Элементами формы (их визуальным представлением):

Важный нюанс: Чтобы платформа при последующем изменении или обновлении запроса динамического списка заново автоматически не добавила все удаленные колонки на форму, обязательно выделите элемент Таблица и в палитре свойств снимите флажок (установите в значение Ложь) свойство Автозаполнение.

Шаг 4. Почему в существующих формах этих элементов не было видно изначально?

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

  1. Режим совместимости конфигурации. Если ваша конфигурация работает в режиме совместимости с версиями платформы 8.3.4 или ниже, то механизмы автоматического поиска для таблиц по умолчанию выключены на уровне всей системы. В новых формах, создаваемых на современной платформе без совместимости, эти свойства по умолчанию инициализируются в значение Авто, активируя современный интерфейс поиска.
  2. Программная настройка формы. Очень часто разработчики отключают или настраивают интерфейсные элементы динамических списков динамически при запуске формы, чтобы не перегружать форму лишними настройками в конфигураторе.

Альтернативное решение: программное управление свойствами списка

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

Рассмотрим пример кода, который решает эту задачу при инициализации формы:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // Отключаем стандартные панели поиска для таблицы "СписокНоменклатуры"
    Элементы.СписокНоменклатуры.ПоложениеСтрокиПоиска = ПоложениеСтрокиПоиска.Нет;
    Элементы.СписокНоменклатуры.ПоложениеСостоянияПросмотра = ПоложениеСостоянияПросмотра.Нет;
    Элементы.СписокНоменклатуры.ПоложениеУправленияПоиском = ПоложениеУправленияПоиском.Нет;

    // Скрываем стандартную командную панель таблицы
    Элементы.СписокНоменклатуры.ПоложениеКоманднойПанели = ПоложениеКоманднойПанели.Нет;

КонецПроцедуры

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

Резюме для быстрой реализации задачи

Чтобы быстро создать лаконичный динамический список из одной колонки на новой странице формы, выполните следующие простые действия:

  1. Перенесите реквизит динамического списка на форму в дерево элементов.
  2. В дереве элементов внутри созданной таблицы вручную удалите все ненужные колонки, оставив только одну (например, Ссылка или Наименование).
  3. Выделите саму таблицу формы и в ее свойствах задайте параметры:
    • Автозаполнение — снимите флажок.
    • Положение командной панели — установите в значение Нет.
    • Положение строки поиска — установите в значение Нет.
    • Положение состояния просмотра — установите в значение Нет.
    • Положение управления поиском — установите в значение Нет.

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

← На главную