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