При разработке сложных печатных форм в 1С 7.7 мы часто сталкиваемся с архитектурным ограничением табличного документа: он жестко привязан к структуре строк. Если мы пытаемся расположить две секции рядом, используя ВывестиСекцию или ПрисоединитьСекцию, любая корректировка высоты строки в одной колонке автоматически масштабирует всю горизонтальную строку, что приводит к «разъезжанию» верстки второй секции. Давайте разберем, как преодолеть это ограничение.
Самым эффективным способом работы со сложными макетами в 1С 7.7 является применение внешней компоненты FormEx. Она значительно расширяет возможности стандартного объекта Таблица.
Рассмотрим использование метода УстановитьПоследнююЯчейкуТаблицы. Данный метод позволяет программно задавать координаты для вывода следующей области, что дает нам возможность управлять точкой вставки независимо от того, где закончилась предыдущая секция. Это позволяет «подвешивать» секции на одном листе так, как нам удобно, минуя стандартную привязку к строкам таблицы.
Если мы не хотим привязываться к сложной логике позиционирования, мы можем использовать подход с промежуточными таблицами. Разберем этот алгоритм по шагам:
Таблица в коде.Таблица. На этом этапе мы можем задавать любую высоту строк внутри каждой таблицы, так как они не влияют друг на друга.Сервис и его метод КопироватьОбластьТаблицы.Этот подход позволяет сохранить верстку каждой части документа в идеальном состоянии, а «склеивание» происходит уже на финальной стадии формирования печатной формы.
Если вы не хотите использовать внешние компоненты, можно применить «метод формализации». Суть его заключается в создании единой горизонтальной секции, которая содержит в себе ячейки обоих блоков.
Порядок действий:
ОбъединитьСтроки или ОбъединитьЯчейки для левой части, чтобы визуально превратить несколько «технических» строк в одну цельную область.Когда речь идет о пакетной печати сотен документов, любые дополнительные манипуляции с графикой или сложными табличными объектами могут значительно замедлить процесс. Рассмотрим оптимизацию:
OLE/COM объектов для Excel. Это позволит вам работать с диапазонами ячеек как с независимыми объектами, что полностью снимает проблему зависимости высоты строк.Мы проанализировали основные подходы к решению проблемы «плывущей» верстки. Выбор метода зависит от того, насколько часто меняются шаблоны и какой объем данных приходится обрабатывать. Для простых форм достаточно программного объединения областей, для сложных и массовых решений лучше использовать методы внешних компонент или формирование документа через COM.