Почему в макете 1С скрываются или меняются колонки при переходе между строками и как настроить формат строк

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

При работе с печатными формами и макетами в платформе 1С разработчики часто сталкиваются с необычным поведением редактора табличных документов: при переходе на одну строку (например, заголовок документа) вертикальные линии колонок визуально исчезают, а при переходе на шапку или табличную часть — снова появляются с другой шириной. Разберем подробнее, почему так происходит и как правильно использовать этот механизм при проектировании макетов.

Выясним причину: как работает механизм формата строк

Такое поведение макета обусловлено работой встроенного механизма платформы под названием формат строк. В обычном состоянии табличный документ 1С имеет единую сетку колонок для всех строк от верха до низа макета.

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

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

  1. Если курсор находится на строках с базовым форматом, отображается основная сетка документа.
  2. Как только курсор перемещается на блок строк с собственным форматом, линейка сверху и вертикальные пунктирные линии перестраиваются под ширины колонок этого конкретного формата. Границы колонок соседних блоков визуально скрываются.

Разберем по шагам: как создать свой формат строк в конфигураторе

Создать индивидуальный формат колонок для выбранной секции макета можно интерактивно непосредственно в редакторе табличного документа Конфигуратора.

Рассмотрим последовательность действий:

  1. Выделите весь блок строк, для которого требуется задать уникальную ширину колонок (для этого кликните и протяните мышью по серым номерам строк слева).
  2. Зажмите клавишу Ctrl на клавиатуре.
  3. Не отпуская Ctrl, подведите курсор к границе между колонками на верхнем координатном поле и измените ширину любой колонки.
  4. Платформа автоматически предложит создать новый формат строк для выделенной группы. Подтвердите действие.

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

Как программно управлять форматом строк

В некоторых сценариях динамического формирования отчетов или печатных форм требуется создавать форматы строк из кода 1С. Для этого используется специальный метод СоздатьФорматСтрок() объекта ОбластьЯчеекТабличногоДокумента.

Рассмотрим пример кода:


// Получаем область конкретных строк табличного документа
ОбластьБлока = ТабДок.Область(5, , 10, );

// Создаем индивидуальный формат строк для этого диапазона
ОбластьБлока.СоздатьФорматСтрок();

// Задаем ширину конкретных колонок внутри созданного формата
ТабДок.Область(5, 1, 10, 1).ШиринаКолонки = 15;
ТабДок.Область(5, 2, 10, 2).ШиринаКолонки = 45;

Особенности применения и рекомендации по проектированию

Хотя индивидуальные форматы строк значительно упрощают визуальную верстку макета в конфигураторе, проанализируем важные нюансы их использования:

  1. Экспорт в сторонние форматы (Excel / XLSX): В табличных редакторах вроде Microsoft Excel не существует понятия независимого формата строк для одной таблицы. При сохранении документа платформа 1С вынуждена генерировать множественные микро-колонки и объединять их. В результате итоговый файл получается перегруженным, и пользователям становится сложно сортировать или фильтровать данные.
  2. Влияние на производительность: Не рекомендуется злоупотреблять созданием форматов строк в циклах вывода данных (например, создавая новый формат для каждой строки результата отчета). Это существенно увеличивает объем памяти, занимаемый табличным документом, и замедляет его отрисовку.
  3. Альтернативный вариант — единая сетка: Если планируется частый экспорт печатных форм в Excel, хорошей практикой является проектирование макета на основе единой модульной сетки с узкими колонками одинаковой ширины, где нужная ширина полей достигается вызовом метода Объединить().
← На главную