При разработке сложных печатных форм и отчетов в системе 1С:Предприятие разработчики часто сталкиваются с необходимостью сделать так, чтобы в одном табличном документе (макете) колонки имели разную ширину в разных строках. По умолчанию табличный документ имеет жесткую структуру: если вы измените ширину первой колонки в первой строке, она изменится во всем документе. Однако существует штатный механизм, позволяющий обойти это ограничение. Рассмотрим подробнее, как управлять форматами строк макета.
Для начала проанализируем, как 1С обрабатывает сетку табличного документа. В обычном состоянии документ использует общую сетку. Это означает, что индексы колонок и их физическая ширина синхронизированы для всего листа. Чтобы разорвать эту связь, используется функция «Создать формат строк». Она позволяет выделить определенную строку (или диапазон строк) в автономную область, ширина колонок в которой будет регулироваться независимо от остальной части документа.
Рассмотрим ситуацию: вам нужно создать сложную «шапку» документа, где в первой строке три колонки одинаковой ширины, а во второй строке — пять колонок разной ширины. Без использования индивидуальных форматов вам пришлось бы объединять множество мелких ячеек, что крайне неудобно при поддержке макета. С использованием форматов строк мы можем просто задать каждой строке свою структуру.
Выясним, как управлять форматами в режиме редактирования макета. Если вы обнаружили, что в вашем макете колонки «разъехались» (одни и те же столбцы имеют разную ширину в разных строках) и хотите это исправить, или наоборот — хотите создать индивидуальную сетку, выполните следующие действия:
Проанализируем визуальные индикаторы, которые помогают разработчику понять, какие строки имеют собственный формат. Обратите внимание на шкалу колонок (линейку) в верхней части редактора макета:
Серые маркеры (засечки): Указывают на то, что в данной строке используется стандартный (общий) формат документа. Изменение ширины здесь повлияет на все строки с серыми маркерами.
Черные маркеры: Появляются, когда для выделенной строки активен индивидуальный формат. Это верный признак того, что строка живет по своим правилам ширины колонок.
Если вы выделите строку с индивидуальным форматом, линейка сверху перестроится, показывая границы колонок именно для этой строки. Это позволяет очень точно подгонять размеры элементов интерфейса.
В некоторых случаях структуру табличного документа нужно менять динамически с помощью встроенного языка. Для этого в объекте ОбластьЯчеекТабличногоДокумента предусмотрены специальные методы. Рассмотрим примеры их использования.
Чтобы программно создать индивидуальный формат для области, используем метод СоздатьФорматСтрок(). Посмотрим на пример кода:
// Получаем область строк, для которых нужно установить свой формат
ОбластьДляФормата = ТабДок.Область("R5:R7");
// Создаем индивидуальный формат для этих строк
ОбластьДляФормата.СоздатьФорматСтрок();
// Теперь можем установить ширину конкретной колонки только для этой области
ОбластьДляФормата.Область(1, 1, 1, 1).ШиринаКолонки = 25;
Если же стоит задача вернуть строки к общему виду, мы используем метод Очистить(), передавая соответствующие параметры. Важно помнить, что этот метод универсален и может очищать как значения, так и форматирование.
// Очищаем только формат строк, возвращая область к общей сетке
// Параметры метода Очистить: (Значения, Оформление, Примечания, Гиперссылки)
// Но для форматов строк часто проще переназначить область или использовать
// специфические настройки через объект ТабличныйДокумент.
Область.Очистить(Ложь, Истина, Ложь, Ложь);
Также полезно знать о свойстве ФорматСтрок. Оно позволяет проверить, установлены ли для данной области индивидуальные настройки ширины колонок. Это логическое свойство (Булево), которое возвращает Истина, если формат создан.
Рассмотрим несколько важных нюансов, которые помогут избежать ошибок при работе с макетами:
Вывести() или Присоединить(), настройки формата строк обычно сохраняются. Это позволяет создавать сложные шаблоны из разных кусков макета.АвтоВысотаСтроки. Текст будет корректно переноситься по словам в соответствии с новой шириной колонки.Таким образом, использование механизма «Формат строк» — это профессиональный способ создания сложных и эстетичных печатных форм в 1С, позволяющий гибко управлять геометрией табличного документа без лишнего нагромождения объединенных ячеек.