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

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

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

Почему таблица сжимается по ширине первой колонки

Проанализируем механику работы движка компоновки интерфейса управляемых форм. Начиная с интерфейса «Такси», размещение элементов рассчитывается клиентским интерфейсным модулем, который формирует общую логическую сетку выравнивания (grid-layout).

Если на форме на одном вертикальном уровне создаются группы колонок, движок платформы может попытаться выровнять все нижележащие элементы по направляющим линиям этой сетки. В результате табличная часть или контейнер страниц ошибочно привязываются к границе первой колонки шапки. При этом изменение свойств РастягиватьПоГоризонтали = Да или отключение АвтоМаксимальнаяШирина у самой таблицы не дает результата, так как таблица физически не может стать шире своего родительского контейнера или ячейки сетки, куда её поместил компоновщик.

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

Правильная структура дерева элементов формы

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

Выстроим следующую иерархию элементов в дереве формы:

  1. Корень формы — свойство Группировка установлено в значение Вертикальная.
  2. Группа «Шапка» — размещается непосредственно в корне формы.
    1. Вид: Обычная группа;
    2. Отображение: Нет;
    3. Группировка: строго Горизонтальная (обратим внимание: вариант Горизонтальная если возможно использовать не рекомендуется, так как при изменении ширины экрана он может динамически перестраивать реквизиты);
    4. Свойство Объединенная: установлено в значение Истина (это изолирует сетку колонок внутри группы и запрещает транслировать ее на форму ниже);
    5. Свойство ШиринаПодчиненныхЭлементов: рекомендуется установить Одинаковая, чтобы обе колонки равномерно делили доступную ширину.
  3. Колонка 1 («ШапкаЛево») — размещается внутри группы «Шапка».
    1. Вид: Обычная группа;
    2. Отображение: Нет;
    3. Группировка: Вертикальная. Внутрь помещаются необходимые реквизиты левой части.
  4. Колонка 2 («ШапкаПраво») — размещается внутри группы «Шапка» рядом с левой колонкой.
    1. Вид: Обычная группа;
    2. Отображение: Нет;
    3. Группировка: Вертикальная. Внутрь помещаются реквизиты правой части.
  5. Таблица или группа «Страницы» — размещается в корне формы строго под группой «Шапка» (на одном уровне с ней, а не внутри колонок).

При такой структуре группа «Шапка» выступает замкнутым горизонтальным контейнером. Движок платформы делит пространство на две части исключительно внутри нее, а расположенная ниже таблица занимает 100% ширины корня формы.

Сброс кэшированных пользовательских настроек

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

Чтобы исключить влияние старых настроек, выполним следующие действия:

  1. В открытой форме документа нажмем меню Еще → Изменить форму...
  2. В открывшемся окне настройки формы выполним команду Еще → Установить стандартные настройки.
  3. Если форма открывается в процессе тестирования под определенным пользователем, выполним очистку настроек через меню Администрирование → Настройки пользователей и прав → Очистка настроек для текущего объекта.

Что делать при повреждении разметки формы

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

В этом случае наиболее быстрым и надежным решением является пересоздание формы с нуля:

  1. Создадим новую форму объекта с помощью стандартного конструктора.
  2. Сразу сформируем описанную выше структуру: корень → группа горизонтальная → две вертикальные группы-колонки.
  3. Перенесем реквизиты шапки и разместим таблицу в корне.
  4. Перенесем процедуры и функции модуля формы.

Такой подход полностью устраняет скрытые ошибки внутреннего XML-описания и гарантирует стабильное поведение элементов формы при любых разрешениях монитора.

← На главную