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

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

Как проверить привязки на форме 1С

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

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

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

Где в форме 1С вообще есть привязки

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

В управляемых формах привязок нет: размещение элементов определяется деревом групп (ГоризонтальнаяГруппа, ВертикальнаяГруппа, ОбычнаяГруппа) и свойствами РастягиватьПоГоризонтали, РастягиватьПоВертикали, Ширина, Высота, АвтоМаксимальнаяШирина. Если форма «разъезжается» в управляемом приложении, искать нужно именно в этих свойствах, а не в привязках.

Как включить и прочитать панель привязок в конфигураторе

Откройте обычную форму в конфигураторе и перейдите на закладку «Форма» (визуальный редактор). Затем в главном меню выберите Форма → Привязка границ или нажмите соответствующую кнопку на панели инструментов. В нижней части окна появится панель «Привязка границ» с четырьмя выпадающими списками: Левая, Правая, Верхняя, Нижняя.

Выделяйте элементы формы по одному и смотрите значения в панели. Для каждой границы указывается объект привязки: «Форма», имя другого элемента или «Панель». Одновременно на самой форме при включённом режиме привязок отображаются условные линии, показывающие, к чему привязан выделенный элемент.

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

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

Как проверить поведение формы в режиме предприятия

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

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

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

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

Как отличить норму от проблемы

Растяжение формы по горизонтали
Норма

Поля ввода и таблицы растягиваются, кнопки остаются у края

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

Элементы наползают друг на друга или остаются узкими

Сжатие окна до минимума
Норма

Все элементы видны, ничего не обрезано

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

Кнопки или поля уходят за границу формы

Длинный текст в поле
Норма

Поле показывает текст с прокруткой или подсказкой

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

Текст обрезан без возможности прочитать

Табличная часть с данными
Норма

Таблица занимает свободное пространство

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

Таблица фиксированной высоты, рядом пустая область

Типичные ошибки привязок и как их исправить

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

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

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

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

Как проверить размещение элементов в управляемой форме

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

Ключевые свойства для проверки: РастягиватьПоГоризонтали и РастягиватьПоВертикали у групп и полей, Ширина и Высота (значение 0 означает автоматический расчёт), АвтоМаксимальнаяШирина и МаксимальнаяШирина у полей ввода, РастягиватьПоГоризонтали у таблиц. Для командных панелей важно свойство ГоризонтальноеПоложение группы-кнопки.

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

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

Обычная форма

Панель «Привязка границ» в конфигураторе; проверяются привязки четырёх границ каждого элемента к форме или соседям

Управляемая форма

Дерево элементов и палитра свойств; проверяются группировки, РастягиватьПоГоризонтали/Вертикали, Ширина и Высота

Программно созданные элементы

Свойства задаются в коде модуля формы; проверяйте код создания элементов, а не только визуальный редактор

Программная проверка и изменение привязок

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

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

bsl
// Получаем элемент формы
Элемент = ЭлементыФормы.Найти("ПолеКомментария");

// Проверяем текущую привязку правой границы
ТекущаяПривязка = Элемент.ПривязкиГраниц.Правая;
Сообщить("Правая граница привязана к: " + ТекущаяПривязка.Элемент);

// Устанавливаем растяжение: правая граница к правой границе формы
Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Правая,
    ЭтаФорма.Панель, ГраницаЭлементаУправления.Правая);

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

Ограничения и когда привязки не помогут

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

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

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

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

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

Частые вопросы о привязках на форме 1С

Почему в управляемой форме нет панели «Привязка границ»?

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

Кнопки «ОК» и «Закрыть» уезжают при растяжении формы. Что делать?

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

Табличная часть не растягивается по вертикали, хотя место есть. Причина?

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

Форма выглядит нормально у разработчика, но у пользователя обрезана. Почему?

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

Можно ли изменить привязки типовой формы без снятия с поддержки?

Да, безопасные варианты — расширение конфигурации (для управляемых форм) или программная доработка в подписке на событие создания формы. Прямое редактирование типовой формы потребует снятия объекта с поддержки и усложнит обновление конфигурации.

Элементы созданы программно и «пляшут» по форме. Как исправить?

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