При разработке интерфейсов на управляемых формах 1С разработчики часто сталкиваются с ситуацией, когда между двумя таблицами формы не генерируется интерактивный разделитель (ползунок смены размера). Проблема проявляется в тех случаях, когда между табличными частями размещается обычное поле ввода или другой реквизит. Если скрыть это поле (установить свойство Видимость в значение Ложь), разделитель между таблицами автоматически появляется снова.
Рассмотрим подробно, почему платформа 1С ведет себя подобным образом и как правильно скомпоновать элементы формы, чтобы разделитель отображался корректно даже при наличии реквизитов между таблицами.
Проанализируем механизмы компоновки управляемого интерфейса. В платформах 1С:Предприятие 8.3 элемент «Разделитель» не добавляется вручную из палитры элементов. Платформа формирует его автоматически на основе внутренних правил построения формы. Чтобы движок компоновки сгенерировал разделитель, должно выполняться несколько условий:
РастягиватьПоВертикали находится в значении Истина или Авто. Обычные поля ввода по умолчанию имеют фиксированную высоту (1 строка) и не растягиваются по вертикали, что блокирует алгоритм автосоздания разделителя.Видимость принимает значение Ложь, платформа полностью исключает его из расчетов компоновки. В результате таблицы становятся иерархически смежными, и разделитель мгновенно восстанавливается.Разберем по шагам наиболее эффективный способ решения проблемы, который позволяет сохранить поле ввода между таблицами и одновременно вернуть разделитель.
Суть метода заключается в структурировании дерева элементов формы с помощью стандартных групп (без отображения рамки и заголовков):
ГруппаОсновная) со свойством Группировка = Вертикальная.ГруппаВерх). Убедимся, что у ГруппаВерх свойство РастягиватьПоВертикали установлено в Истина или Авто.ГруппаНиз).ГруппаВерх и ГруппаНиз внутри ГруппаОсновная строго друг за другом.При такой структуре платформа воспринимает ГруппаВерх и ГруппаНиз как два смежных растягиваемых блока и автоматически добавляет разделитель между ними. Промежуточное поле ввода при этом спокойно располагается под верхней таблицей внутри первой группы.
Рассмотрим альтернативные варианты размещения элементов, если добавление дополнительных групп нежелательно или усложняет структуру формы:
Поведение = Свертываемая. При сворачивании такой группы таблицы снова окажутся смежными, и между ними появится разделитель.Таким образом, управление растяжением и размещением разделителей в управляемых формах 1С целиком опирается на правильное построение дерева групп. Грамотная иерархия позволяет гибко настраивать поведение интерфейса без написания дополнительного кода.