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

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

Весовой коэффициент растягивания по горизонтали в 1С: что это и как использовать

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

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

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

Механизм актуален для управляемых форм в конфигурациях на платформе 1С:Предприятие 8.3 — как в типовых решениях (УТ, ERP, Бухгалтерия), так и в самописных. В обычных формах логика другая, там применяются привязки границ.

Что такое весовой коэффициент в управляемой форме

Когда ширина формы больше суммарной минимальной ширины всех элементов в группе, возникает избыток пространства. Платформа распределяет его не поровну, а пропорционально весам. Если у первого элемента вес равен 1, а у второго — 3, то из каждых четырёх условных долей свободного места первый получит одну, а второй — три.

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

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

Где задаётся вес и растягивание в конфигураторе

В редакторе управляемой формы нужные свойства находятся в палитре свойств элемента. Для полей ввода, таблиц и групп доступны свойства растягивания по горизонтали и вертикали, а также соответствующие весовые коэффициенты.

Порядок настройки
  1. 1
    Откройте форму в конфигураторе и выделите нужный элемент (поле, таблицу или группу).
  2. 2
    В палитре свойств включите «Растягивать по горизонтали».
  3. 3
    Установите весовой коэффициент — целое число, отражающее желаемую долю свободного места.
  4. 4
    Проверьте, что родительская группа имеет горизонтальную группировку и сама растягивается.
  5. 5
    Сохраните форму и откройте её в режиме 1С:Предприятие, изменяя ширину окна для проверки.

Если форма дорабатывается программно, свойства доступны через объект формы. Например, у элемента формы есть свойства РастягиватьПоГоризонтали и связанный вес, которые можно установить в обработчике ПриСозданииНаСервере при динамическом создании элементов.

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

Как платформа распределяет свободное место

Алгоритм работает в два этапа. Сначала каждый элемент получает свою минимальную (расчётную) ширину — по содержимому, заголовку или заданному свойству ширины. Затем остаток ширины родительской группы делится между элементами с включённым растягиванием пропорционально весам.

Практический пример: в горизонтальной группе три поля с весами 1, 1 и 2. Свободное пространство делится на 4 части: первое и второе поля получают по одной части, третье — две. Если поменять веса на 1, 1, 1, все три поля станут одинаковой ширины.

Если суммарная минимальная ширина элементов превышает ширину группы, растягивать нечего — веса перестают играть роль, и элементы отображаются по минимальным размерам, а при нехватке места возможно обрезание или перенос. Это частая причина «неработающего» веса на узких экранах.

Типичные сценарии использования

Таблица и панель рядом

Классическая задача: слева список документов, справа — карточка или отбор. Чтобы список занимал основную ширину, а правая панель была уже, списку дают больший вес (например, 3–4), а панели — меньший (1) или фиксированную ширину без растягивания.

Поля ввода в одной строке

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

Колонки таблицы формы

У колонок таблиц и динамических списков также есть настройки ширины и растягивания. Если нужно, чтобы одна колонка «съедала» всё свободное место, а остальные оставались компактными, растягивание включают только у неё. Веса нескольких растягиваемых колонок распределяют избыток между ними.

Сравнение подходов

Равные веса у всех элементов

Подходит для однородных полей в строке; ограничение — длинные заголовки могут нарушить визуальное равенство.

Большой вес одному элементу

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

Фиксированная ширина без растягивания

Подходит для кнопок, флажков, коротких полей; ограничение — при изменении размеров окна элемент не адаптируется.

Почему вес не работает: частые причины

Самая распространённая причина — у элемента включён вес, но выключено само растягивание по горизонтали, либо наоборот. Оба свойства работают только в паре. Проверьте палитру свойств целиком.

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

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

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

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

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

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

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

Поведение при расширении окна
Норма

Элементы с весом растут пропорционально

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

Размеры не меняются — проверьте растягивание и группу

Соотношение ширин соседних элементов
Норма

Элемент с большим весом заметно шире

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

Все одинаковые — возможно, веса равны или не применились

Поведение на узком окне
Норма

Поля остаются читаемыми

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

Поля схлопываются — снизьте веса или задайте минимальную ширину

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

Ограничения и альтернативы

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

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

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

Что означает весовой коэффициент 1?

Это базовая доля. Если у всех элементов вес 1, свободное место делится поровну. Само по себе число ничего не значит — важно соотношение весов соседних элементов.

Можно ли задать дробный вес, например 0,5?

Вес задаётся целым числом. Вместо дробных значений масштабируйте все веса: вместо 0,5 и 1 используйте 1 и 2 — пропорция будет той же.

Почему элемент с большим весом всё равно узкий?

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

Работает ли вес в обычных формах?

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

Как сделать одну колонку таблицы шире остальных?

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

Можно ли менять вес программно?

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

Итог

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

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