Как настроить количество отображаемых строк в табличной части документа 1С?

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

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

Использование основного свойства «Высота в строках»

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

Важные нюансы настройки:

  1. Если установить значение, например, равным 5, платформа зарезервирует место ровно под пять строк данных.
  2. Это свойство является «подсказкой» для системы компоновки интерфейса. Оно определяет минимально желаемую высоту элемента в единицах строк текста.
  3. Если в таблице будет всего одна строка данных, пустая область все равно останется видимой, что решает проблему «прыгающего» интерфейса при добавлении новых записей.

Оптимизация пространства через расположение колонок

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

Влияние свойства «Растягивать по вертикали»

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

Для жесткой фиксации размера проанализируем следующую стратегию:

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

Настройка «Автовысота» и её подводные камни

Посмотрим на свойство Автовысота. В современных версиях платформы 1С оно может играть ключевую роль. Если Автовысота включена, таблица пытается подстроиться под количество фактически введенных строк. Если данных мало — таблица сжимается. Чтобы гарантировать отображение минимум 3-х строк, даже если таблица пуста, это свойство рекомендуется отключать или комбинировать со свойством МинимальнаяВысота.

Учет иерархии родительских групп на форме

Часто причина «схлопывания» таблицы кроется не в самой таблице, а в её «контейнере». Проанализируем структуру формы. Если табличная часть помещена в Обычную группу или Группу - Страницы, необходимо проверить настройки этих элементов:

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

Программное управление высотой таблицы

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

Посмотрим на пример кода:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Устанавливаем фиксированную высоту таблицы в 5 строк
    Элементы.Товары.ВысотаВСтроках = 5;
    
    // Если нужно, чтобы таблица всегда занимала минимум места
    Элементы.Товары.МинимальнаяВысота = 10; // значение в пикселях
    
КонецПроцедуры

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

Вариант управления высотой в платформе 8.3

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

Подводя итог, для обеспечения корректного отображения 2-3 строк в табличной части, нам необходимо выполнить три основных шага: Во-первых, задать ВысотаВСтроках. Во-вторых, проверить, что МинимальнаяВысота не конфликтует с этим значением. В-третьих, убедиться, что родительские группы на форме позволяют элементу занять отведенное ему пространство.

← На главную