Как программно обвести строку или область ячеек жирной линией в табличном документе 1С?

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

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

Создание объекта Линия и настройка толщины

Для управления стилем и толщиной границы ячейки в платформе 1С используется объект Линия. Конструктор этого объекта принимает два основных параметра: тип линии и её толщину.

Рассмотрим синтаксис конструктора:

Новый Линия(ТипЛинии, Толщина)

Параметры конструктора:

  1. ТипЛинии — системное перечисление ТипЛинииЯчейкиТабличногоДокумента. Доступны значения: Сплошная, Точечная, Штриховая, ШтрихПунктирная, ШтрихПунктирнаяСДвумяТочками, Двойная, СплошнаяСТочками, НетЛинии.
  2. Толщина — числовое значение толщины линии (целое число от 1 до 3, где 2 и 3 задают выраженное жирное начертание).

Посмотрим на пример создания жирной сплошной линии:

ЖирнаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 2);

Способ 1. Использование метода Обвести()

Когда требуется обрамить область ячеек целиком со всех четырех сторон, наиболее удобным и лаконичным решением является вызов метода Обвести() у объекта ОбластьЯчеекТабличногоДокумента.

Синтаксис метода:

Область.Обвести(<ГраницаСлева>, <ГраницаСверху>, <ГраницаСправа>, <ГраницаСнизу>)

Разберем практический пример выделения области строк жирной рамкой:


ЖирнаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 2);

// Получаем нужную область ячеек из результирующего табличного документа
ОбластьИтоги = ТабДок.Область("R10C1:R10C5");

// Обводим область по всему внешнему периметру
ОбластьИтоги.Обвести(ЖирнаяЛиния, ЖирнаяЛиния, ЖирнаяЛиния, ЖирнаяЛиния);

Если с одной из сторон менять оформление не требуется, соответствующий параметр можно пропустить или передать значение Неопределено.

Способ 2. Управление отдельными сторонами границы

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

У объекта ОбластьЯчеекТабличногоДокумента доступны свойства:

  1. ГраницаСверху
  2. ГраницаСнизу
  3. ГраницаСлева
  4. ГраницаСправа

Посмотрим на пример подчеркивания строки:


ЖирнаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 3);

// Подчеркиваем текущую выведенную строку снизу
ОбластьСтроки = ТабДок.Область(ТабДок.ВысотаТаблицы, 1, ТабДок.ВысотаТаблицы, 5);
ОбластьСтроки.ГраницаСнизу = ЖирнаяЛиния;

Как удалить или сбросить существующее обрамление

Если в макете уже была установлена граница, но по условию алгоритма её требуется убрать, создается линия со специальным типом НетЛинии.

Разберем пример очистки рамок:


ЛинияОтсутствует = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.НетЛинии);

// Снимаем все границы с области
Область.Обвести(ЛинияОтсутствует, ЛинияОтсутствует, ЛинияОтсутствует, ЛинияОтсутствует);

// Либо сбрасываем только нижнюю границу
Область.ГраницаСнизу = ЛинияОтсутствует;

Применение к макету или к результирующему документу

Проанализируем две различные стратегии применения стилей в модуле печати:

  1. Форматирование области макета до вывода: если применить метод к области, полученной из макета через Макет.ПолучитьОбласть("СтрокаДанные"), то каждый последующий вызов ТабДок.Вывести(ОбластьСтроки) будет выводить строку с уже примененным стилем линий.
  2. Форматирование итогового документа после вывода: если жирная линия нужна только для определенных строк (например, для последней записи в группе), модифицировать следует координаты области уже сформированного объекта ТабличныйДокумент с помощью ТабДок.Область(...).

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

← На главную