Разработка и Конфигурация · 9 мин
Как изменить размер управляемой формы в 1С
Как изменить размер управляемой формы в 1С: настройка размеров элементов, растягивание, свойства ширины и высоты, программное изменение и типичные ошибки разработчиков.
Управляемые формы в 1С устроены иначе, чем обычные формы: платформа сама рассчитывает расположение и размеры элементов, исходя из декларативного описания. Поэтому привычного перетаскивания границ формы мышью в конфигураторе нет — размер задаётся косвенно, через размеры элементов, свойства групп и поведение при растягивании. Это часто сбивает с толку разработчиков, перешедших с обычных форм.
Тем не менее управлять размерами можно и нужно: слишком узкая форма обрезает надписи и таблицы, слишком широкая выглядит пустой и неудобной. Ниже разобраны все рабочие способы — от простых настроек в редакторе формы до программного изменения размеров в коде, а также ограничения, о которых стоит знать заранее.
Почему размер управляемой формы нельзя задать напрямую
В обычных формах разработчик рисовал интерфейс попиксельно: координаты, ширина, высота каждого элемента и самой формы. Управляемая форма строится иначе — это дерево элементов (группы, поля, таблицы), а платформа на клиенте сама решает, как их разместить, учитывая разрешение экрана, масштаб и размер окна.
У объекта формы нет свойства «Ширина формы» или «Высота формы». Итоговый размер окна определяется содержимым: чем шире элементы и чем больше их требований к месту, тем больше откроется форма. Это принципиальное ограничение, а не недоработка — такой подход обеспечивает одинаковую работу интерфейса в тонком клиенте, веб-клиенте и на разных мониторах.
Практический вывод: вместо вопроса «как задать размер формы» нужно решать задачу «какие элементы и как должны занимать место». Дальше разберём конкретные приёмы.
Как изменить размер формы через размеры элементов
Основной способ повлиять на размер окна — задать ширину и высоту ключевых элементов. Откройте форму в конфигураторе, выделите элемент (поле ввода, таблицу, надпись) и в палитре свойств найдите свойства «Ширина» и «Высота». Значения задаются в условных единицах, которые платформа пересчитывает с учётом масштаба интерфейса.
Например, чтобы форма документа открывалась шире, увеличьте ширину табличной части или полей ввода. Чтобы форма стала компактнее, уменьшите ширину полей и уберите лишние пустые группы. Платформа подберёт размер окна так, чтобы всё содержимое поместилось без обрезания.
- 1Откройте нужную форму объекта в конфигураторе
- 2Выделите элемент, определяющий ширину формы (таблица, длинное поле)
- 3В палитре свойств установите «Ширина» и при необходимости «Высота»
- 4Проверьте свойство «Растягивать по горизонтали» у родительской группы
- 5Обновите конфигурацию базы данных и откройте форму в режиме предприятия
- 6Оцените результат и при необходимости скорректируйте значения
Учтите, что свойство «Ширина» у поля ввода часто работает совместно со свойством «Автоотметка незаполненного» и длиной заголовка: если заголовок длинный, платформа может расширить элемент сверх указанного значения. В таких случаях сокращайте заголовок или переносите его в отдельную надпись.
Растягивание элементов и поведение при изменении окна
Второй ключевой механизм — свойства «Растягивать по горизонтали» и «Растягивать по вертикали». Они определяют, будет ли элемент занимать всё свободное место, когда пользователь растянет окно формы мышью. Для таблиц и многострочных полей растягивание обычно включают, для коротких полей ввода — выключают.
Если ни один элемент не растягивается, при увеличении окна содержимое останется прижатым к краю, а справа появится пустая область. Если растягиваются несколько элементов в одной группе, свободное место делится между ними. Это стоит учитывать при проектировании: растягивать логично тот элемент, которому больше всего нужна площадь — как правило, табличную часть или поле комментария.
Группы и их роль в размерах
Группы управляют компоновкой: «Группировка» (вертикальная или горизонтальная), «Отображение», «Ширина» самой группы. Горизонтальная группа с несколькими полями суммирует их ширину — это прямой способ сделать форму шире или уже, перераспределив поля между группами.
Полезный приём для фиксации минимальной ширины формы — поместить в корень формы горизонтальную группу с заданной шириной и выключенным растягиванием. Платформа не сможет сделать окно уже этой группы, что защитит интерфейс от «схлопывания» на маленьких экранах.
Программное изменение размеров элементов формы
Свойства размеров доступны и из встроенного языка — в модуле формы через коллекцию «Элементы». Это удобно, когда размер зависит от данных: например, поле «Комментарий» делается выше, если документ проведён, или скрывается часть элементов, освобождая место.
Элементы.Товары.Ширина = 60;
Элементы.Товары.Высота = 10;
Элементы.Комментарий.РастягиватьПоВертикали = Истина;
Элементы.ГруппаДополнительно.Видимость = Ложь;
Программное изменение выполняется обычно в обработчиках «ПриСозданииНаСервере» или «ПриОткрытии». Помните, что изменения применяются к конкретному экземпляру формы и не сохраняются между сеансами — при следующем открытии форма вернётся к настройкам конфигуратора, если код не выполнится снова.
Настройка окна: размер, который меняет пользователь
Часть задачи решается без конфигуратора вообще. Пользователь может растягивать окно формы мышью, и платформа запоминает размеры для многих форм в настройках пользователя. Если форма открывается неудобного размера, сначала попробуйте просто изменить окно и закрыть форму — часто этого достаточно.
Если настройки окна «застряли» и форма открывается слишком маленькой, помогает сброс пользовательских настроек интерфейса. В типовых конфигурациях это делается через настройки пользователя или очистку локального кэша. После сброса форма откроется с размерами по умолчанию, рассчитанными платформой.
Как выбрать действие
Типичные ошибки при настройке размеров
Самая частая ошибка — попытка найти у формы свойство размера по аналогии с обычными формами и потерять на этом время. Второе место занимает установка ширины у поля без учёта родительской группы: если группа растягивается, заданная ширина может игнорироваться.
Ещё одна проблема — избыточная вложенность групп. Каждая лишняя группа добавляет отступы и ограничения, и итоговый размер формы становится трудно предсказать. Перед настройкой размеров полезно упростить структуру: объединить однотипные группы и убрать пустые контейнеры.
Как проверить результат
Все элементы видны целиком, нет полос прокрутки без необходимости
Поля обрезаны, появляется горизонтальная прокрутка
Таблица или многострочное поле занимают освободившееся место
Появляется пустая область или растягивается не тот элемент
Компоновка сохраняется, ничего не наезжает друг на друга
Элементы перекрываются или форма становится нечитаемой
Часто задаваемые вопросы
Почему у управляемой формы нет свойства «Ширина»?
Потому что платформа строит интерфейс декларативно: размер окна вычисляется на клиенте из размеров элементов, разрешения экрана и масштаба. Это гарантирует работу формы в разных клиентах без переработки. Управлять размером нужно через ширину и высоту элементов и групп.
Можно ли запретить пользователю изменять размер окна формы?
Штатного свойства «запретить изменение размера» у управляемой формы нет. Пользователь всегда может потянуть границу окна. Правильный подход — настроить растягивание элементов так, чтобы форма оставалась удобной при любом размере окна.
Как сделать, чтобы табличная часть занимала всё свободное место?
Установите у таблицы свойства «Растягивать по горизонтали» и «Растягивать по вертикали» в значение «Истина» и убедитесь, что родительские группы не ограничивают растягивание. У остальных элементов в той же группе растягивание лучше выключить.
Программно задал ширину элемента, но ничего не изменилось. Почему?
Чаще всего мешает родительская группа с включённым растягиванием или длинный заголовок поля, который расширяет элемент. Также проверьте, что код выполняется в обработчике, который реально вызывается, — например, «ПриСозданииНаСервере», а не в клиентском обработчике без контекста элементов.
Форма открывается слишком маленькой только у одного пользователя. Что делать?
Это сохранённые настройки интерфейса конкретного пользователя. Измените размер окна мышью и закройте форму — платформа запомнит новый размер. Если не помогает, выполните сброс настроек интерфейса этого пользователя или очистку локального кэша.
Отличается ли настройка размеров в веб-клиенте?
Сами свойства те же, но компоновка в веб-клиенте может немного отличаться из-за особенностей браузерного рендеринга. Поэтому после настройки размеров форму стоит проверить во всех клиентах, которые используются в вашей организации.
Что важно запомнить
Размер управляемой формы задаётся косвенно: через ширину и высоту элементов, настройку групп и свойства растягивания. Не фиксируйте жёсткие размеры, проверяйте форму при разных масштабах и клиентах, а разовые проблемы у отдельных пользователей решайте сбросом настроек окна, а не доработкой конфигурации.