1с макет вертикальные области

Понятие «секции», существовавшее в 1С:Предприятии 7.7, не используется в 1С:Предприятии 8. Теперь табличный документ может содержать области, представляющие собой совокупность ячеек прямоугольной формы, состоящую из смежных ячеек. Для области может быть задано имя, по которому можно обращаться к этой области из встроенного языка.

Если табличный документ используется в качестве макета, на основании которого формируется итоговый табличный документ, возникает необходимость получения различных областей макета, для установки значений параметров и вывода этих областей в итоговый табличный документ. В этом случае следует воспользоваться методом табличного документа ПолучитьОбласть() . Область будет получена в виде нового табличного документа.

Для получения области может быть использовано ее имя. Например:

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

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

Для получения области табличного документа также может быть передан адрес в формате RC :

Наряду с методом ПолучитьОбласть() у табличного документа существует свойство «Область», имеющее аналогичный синтаксис.

Следует понимать, что метод ПолучитьОбласть() предназначен для получения нового табличного документа, содержащего указанную область. Этот новый документ, в частности, может быть использован для вывода в итоговый табличный документ.

В отличие от этого метода, свойство «Область» возвращает область того табличного документа (макета), к которому оно было применено. Возвращаемая область будет представлять собой не табличный документ, а область ячеек табличного документа или рисунок. Полученная таким образом область предназначена для модификации существующего табличного документа (макета), и не подразумевает вывод ее в другой табличный документ.

Универсальная печать таблицы значений для 1С 8

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

Второй вариант распечатать произвольную таблицу значений это использовать макет. В этом варианте надо подготовить макет, поместить его, например, в «общие макеты». В макете надо сделать табличку с 2-мя именованными вертикальными областями «Основной», «Показатели»; с 3-мя именованными горизонтальными областями «Шапка», «Строка», «Итог». Далее перебором всех колонок ТЗ вывести их в табличный документ.

Результат печати ниже. Обработку с примером можно скачать здесь.

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

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

Теперь посмотрим в отладчике, какие данные попадают в структуру при разных значениях флага «ПолучитьПересечения».

Оцените статью
Добавить комментарий