К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как изменить размер табличной части в 1С

Как изменить размер табличной части в 1С: настройка ширины и высоты в конфигураторе, программное изменение через код, типичные ошибки и проверка результата.

Табличная часть документа или справочника в 1С часто отображается неудобно: колонки слишком узкие, таблица занимает мало места на форме или, наоборот, растягивается на весь экран. Размер табличной части можно изменить двумя способами — через настройки формы в конфигураторе и программно, кодом на встроенном языке.

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

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

Что именно нужно изменить: таблица или колонки

Прежде чем лезть в настройки, определите, что именно не устраивает. Если таблица занимает мало места на форме и появляется полоса прокрутки при нескольких строках — проблема в размерах элемента формы «ТаблицаФормы». Если данные в конкретной колонке обрезаются, а остальные колонки пустуют — нужно менять ширину колонок.

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

Изменение размера таблицы в конфигураторе

Откройте конфигуратор, найдите нужный документ или справочник, перейдите на закладку «Формы» и откройте основную форму объекта. В дереве элементов формы найдите таблицу — обычно она называется по имени табличной части, например «Товары» или «Материалы».

Выделите таблицу и откройте палитру свойств (правый клик — «Свойства»). Ключевые свойства, влияющие на размер:

  • РастягиватьПоГоризонтали — если «Истина», таблица занимает всю доступную ширину формы;
  • РастягиватьПоВертикали — таблица растягивается по высоте вместе с формой;
  • Ширина и Высота — фиксированные размеры в символах и строках, работают при отключённом растягивании;
  • ВысотаВСтрокахТаблицы — задаёт высоту в строках данных, удобно, чтобы таблица всегда показывала, например, 5 строк без прокрутки;
  • АвтоМаксимальнаяШирина и МаксимальнаяШирина — ограничения при растягивании.

Типичная рабочая комбинация для документа: растягивание по горизонтали включено, растягивание по вертикали включено, высота в строках таблицы — от 5 до 10. Тогда таблица адаптируется под размер окна и при этом не сжимается до одной строки.

Порядок действий в конфигураторе
  1. 1
    Откройте форму объекта в конфигураторе
  2. 2
    Выделите таблицу в дереве элементов формы
  3. 3
    Откройте палитру свойств и установите РастягиватьПоГоризонтали и РастягиватьПоВертикали
  4. 4
    Задайте ВысотаВСтрокахТаблицы, например 7
  5. 5
    Сохраните конфигурацию и обновите конфигурацию базы данных
  6. 6
    Откройте документ в режиме предприятия и проверьте отображение

Настройка ширины колонок табличной части

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

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

Обратите внимание на свойство «АвтоОтметкаНезаполненного» и видимость колонок: иногда таблица кажется слишком узкой просто потому, что выведены лишние колонки. Скрыв ненужные (свойство «Видимость» — «Ложь»), вы освободите место для важных данных без изменения размеров.

Для колонок с денежными суммами ширина 10–14 символов обычно достаточна, а для наименований лучше не задавать жёсткую ширину, а включить растягивание — тогда колонка займёт всё свободное место и не создаст горизонтальную прокрутку.
ПЗ
Практическое замечание

Программное изменение размера табличной части

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

Элементы.Товары.ВысотаВСтрокахТаблицы = 10;

Элементы.Товары.РастягиватьПоВертикали = Истина;

Элементы.ТоварыКоличество.Ширина = 8;

Для динамической подстройки высоты под количество строк удобно вычислять значение по данным объекта:

КоличествоСтрок = Объект.Товары.Количество();

Если КоличествоСтрок < 3 Тогда

Элементы.Товары.ВысотаВСтрокахТаблицы = 3;

ИначеЕсли КоличествоСтрок > 15 Тогда

Элементы.Товары.ВысотаВСтрокахТаблицы = 15;

Иначе

Элементы.Товары.ВысотаВСтрокахТаблицы = КоличествоСтрок;

КонецЕсли;

Такой код логично разместить в обработчике ПриОткрытии и, при необходимости, в обработчике ТоварыПослеУдаления и других событиях изменения табличной части, чтобы высота пересчитывалась при редактировании.

bsl
Элементы.Товары.ВысотаВСтрокахТаблицы = 10;
Элементы.Товары.РастягиватьПоГоризонтали = Истина;
Элементы.ТоварыНоменклатура.РастягиватьПоГоризонтали = Истина;
Элементы.ТоварыКоличество.Ширина = 8;

Особенности для обычных и управляемых форм

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

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

Сравнение вариантов

Свойства в конфигураторе

Подходит для постоянной настройки формы для всех пользователей; требует обновления конфигурации

Программный код

Подходит, когда размер зависит от условий; требует аккуратности, чтобы не конфликтовать с настройками формы

Пользовательская настройка мышью

Быстро и без конфигуратора, но работает только у конкретного пользователя и может сбрасываться

Типичные ошибки и ограничения

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

Вторая ошибка — изменение формы в типовой конфигурации без расширения. При обновлении конфигурации такие доработки могут быть затёрты или вызовут конфликт. Для типовых решений правильнее использовать механизм расширений конфигурации: форма заимствуется в расширение, и размеры меняются там.

Третья проблема — попытка изменить размер таблицы, находящейся внутри группы с отключённым растягиванием. Размер элемента ограничен размером родительской группы, поэтому сначала проверьте свойства родительских групп и страниц формы.

Типичные ошибки
01
Включено растягивание, но задана фиксированная ширина — значение игнорируется, размер не меняется
02
Доработка типовой формы без расширения — изменения теряются при обновлении конфигурации
03
Изменение свойств таблицы внутри узкой группы — родительский контейнер ограничивает размер
04
Программная установка размеров в ПриОткрытии без проверки — настройки пользователя перезаписываются при каждом открытии

Проверка результата и откат изменений

После изменения свойств сохраните конфигурацию и обновите конфигурацию базы данных (F7 в меню «Конфигурация»). Затем откройте документ в режиме предприятия и проверьте таблицу при разных размерах окна и разном количестве строк.

Контрольные точки

Как проверить результат

Отображение при нескольких строках
Норма

Таблица показывает заданное число строк без лишней прокрутки

Тревожный признак

Появляется прокрутка уже при 2–3 строках или таблица обрезана

Изменение размера окна
Норма

Таблица растягивается вместе с формой, колонки не наезжают друг на друга

Тревожный признак

Появляется горизонтальная прокрутка или пустые области

Данные в колонках
Норма

Наименования и суммы читаются полностью

Тревожный признак

Текст обрезается, появляются многоточия

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

Итог

Что важно запомнить

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

Частые вопросы

Почему свойство «Ширина» таблицы не срабатывает?

Чаще всего включено свойство «РастягиватьПоГоризонтали» — при нём фиксированная ширина игнорируется. Отключите растягивание или используйте «МаксимальнаяШирина» для ограничения. Также проверьте, не ограничивает ли размер родительская группа формы.

Можно ли изменить размер табличной части без конфигуратора?

Ширину колонок пользователь может менять мышью прямо в режиме предприятия, перетаскивая границы заголовков. Также доступен пункт «Изменить форму» в меню «Ещё», где можно скрыть лишние колонки. Высоту таблицы без доработки формы изменить нельзя.

Как сделать, чтобы таблица всегда показывала все строки без прокрутки?

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

Почему после обновления конфигурации размеры таблицы сбросились?

Если форма была изменена напрямую в типовой конфигурации, при обновлении доработки могли быть заменены типовой версией. Чтобы изменения сохранялись, оформляйте их через расширение конфигурации — оно применяется поверх типовой формы и не теряется при обновлении.

Как изменить ширину только одной колонки программно?

Обратитесь к колонке через коллекцию Элементы по её имени, например: Элементы.ТоварыКоличество.Ширина = 8;. Имя элемента колонки можно посмотреть в дереве элементов формы в конфигураторе — обычно оно состоит из имени таблицы и имени реквизита.

Влияет ли изменение размера таблицы на печатную форму документа?

Нет. Настройки отображения табличной части на экранной форме никак не связаны с макетом печати. Печатная форма формируется по отдельному макету, и её ширину колонок нужно менять в самом макете.