При работе с печатными формами и макетами в платформе 1С разработчики часто сталкиваются с необычным поведением редактора табличных документов: при переходе на одну строку (например, заголовок документа) вертикальные линии колонок визуально исчезают, а при переходе на шапку или табличную часть — снова появляются с другой шириной. Разберем подробнее, почему так происходит и как правильно использовать этот механизм при проектировании макетов.
Такое поведение макета обусловлено работой встроенного механизма платформы под названием формат строк. В обычном состоянии табличный документ 1С имеет единую сетку колонок для всех строк от верха до низа макета.
Однако для разных блоков печатной формы (шапка, таблица товаров, подвал) часто требуется абсолютно разная ширина столбцов. Чтобы не плодить множество мелко нарезанных колонок с помощью постоянного объединения ячеек, платформа позволяет задать для отдельного диапазона строк собственный независимый формат колонок.
В редакторе макета линейка колонок и границы вертикальных областей отображаются динамически. Они жестко привязаны к той строке, на которой в данный момент установлен курсор:
Создать индивидуальный формат колонок для выбранной секции макета можно интерактивно непосредственно в редакторе табличного документа Конфигуратора.
Рассмотрим последовательность действий:
После выполнения этой операции выделенные строки получат независимую сетку колонок. При клике на эти строки линейка наверху будет показывать ширины, актуальные только для созданного блока.
В некоторых сценариях динамического формирования отчетов или печатных форм требуется создавать форматы строк из кода 1С. Для этого используется специальный метод СоздатьФорматСтрок() объекта ОбластьЯчеекТабличногоДокумента.
Рассмотрим пример кода:
// Получаем область конкретных строк табличного документа
ОбластьБлока = ТабДок.Область(5, , 10, );
// Создаем индивидуальный формат строк для этого диапазона
ОбластьБлока.СоздатьФорматСтрок();
// Задаем ширину конкретных колонок внутри созданного формата
ТабДок.Область(5, 1, 10, 1).ШиринаКолонки = 15;
ТабДок.Область(5, 2, 10, 2).ШиринаКолонки = 45;
Хотя индивидуальные форматы строк значительно упрощают визуальную верстку макета в конфигураторе, проанализируем важные нюансы их использования:
Объединить().