Использование предопределенных макетов
Система компоновки данных предоставляет широкие возможности по использованию предопределенных макетов при создании отчетов. Предопределенные макеты предназначены для оформления областей отчета и могут создаваться при помощи конструктора схемы компоновки данных, в котором для создания макетов необходимо перейти на вкладку Макеты .
Любой предопределенный макет представляет собой область табличного документа. Существуют следующие типы предопределенных макетов :
- Макет поля,
- Макет группировки,
- Макет заголовка группировки,
- Макет ресурсов.
Примерная структура отчета приведена на указанном ниже рисунке:
Примерная структура отчета, содержащего таблицу, приведена на указанном ниже рисунке:
Макет поля
Данный макет предназначен для оформления определенных выводимых полей. При создании данного макета необходимо указать поле, для которого создается предопределенный макет. На указанном ниже рисунке создается макет поля для поля Документ.Контрагент .
Для того чтобы в создаваемом макете отображались значения выводимых полей, необходимо для ячейки макета, в которой необходимо отображать поле, добавить параметр макета. Сделать это можно следующим способом : в палитре свойств для ячейки макета установить свойство Заполнение = Параметр , а в качестве значения свойства Параметр установить имя параметра макета.
Затем в списке параметров макета необходимо установить в качестве выражения представление выводимого поля. В нашем случае это будет представление поля Контрагент .
В данном примере макет поля Контрагент выводится наклонным шрифтом увеличенной высоты.
Макет группировки
Данный макет предназначен для оформления группировок. При создании данного макета необходимо указать либо имя группировки, либо поля группировки, для которой создается макет. Также необходимо указать тип макета. Существуют следующие типы предопределенных макетов :
Заголовок — данный макет предназначен для оформления заголовка группировки. Заголовок группировки выводится в начале группировки. В случае если группировка содержит вложенные группировки, то заголовок группировки выводится перед записями вложенной группировки.
Подвал — данный макет предназначен для оформления подвала группировки. Подвал группировки выводится в конце группировки. В случае если группировка содержит вложенные группировки, то подвал группировки выводится после записей вложенной группировки.
Заголовок иерархии — данный макет предназначен для оформления заголовка иерархической группировки. Данный заголовок выводится в начале иерархической группировки .
Подвал иерархии — данный макет предназначен для оформления подвала иерархической группировки. Данный подвал выводится в конце иерархической группировки.
Общий итог заголовок — данный макет предназначен для оформления области отчета, отображающей общий итог по группировке, и выводится в начале группировки.
Общий итог подвал — данный макет предназначен для оформления области отчета, отображающей общий итог по группировке, и выводится в конце группировки.
Структура предопределенных макетов группировки показана на указанном ниже рисунке:
Общий итог заголовок группировки уровень 1 | ||||||
Заголовок группировки уровень 1 | ||||||
Общий итог заголовок группировки уровень 2 | ||||||
Заголовок группировки уровень 2 | ||||||
. | ||||||
Общий итог заголовок группировки уровень N | ||||||
Заголовок группировки уровень N | ||||||
Подвал группировки уровень N | ||||||
Общий итог подвал группировки уровень N | ||||||
. | ||||||
Подвал группировки уровень 2 | ||||||
Общий итог подвал группировки уровень 2 | ||||||
Подвал группировки уровень 1 | ||||||
Общий итог подвал группировки уровень 1 |
На указанном ниже рисунке создается макет заголовка для группировки с именем ДетальныеЗаписиНоменклатуры .
В данном примере для группировки с именем ДетальныеЗаписиНоменклатуры дополнительно выводится реквизит Код , а также изменена ширина колонок.
Макет заголовка группировки
Данный макет предназначен для оформления заголовков группировок. Заголовком группировки называется область отчета, содержащая имена выводимых в отчете полей. При создании данного макета необходимо указать либо имя группировки, либо поля группировки, для которой создается макет. Также необходимо указать тип макета. Типы макетов такие же, как и для макета группировки. Существует следующее правило вывода макетов заголовка группировки : макет заголовка группировки действует на указанную группировку и на все ее вложенные группировки до момента обнаружения другого макета заголовка группировки. При обнаружении другого макета заголовка группировки начинает использоваться обнаруженный макет заголовка группировки. Тем самым существует возможность создания различных макетов заголовка для различных группировок.
В данном примере для группировки Контрагент создан макет заголовка группировки. Данный макет также действует и на группировку с именем ДетальныеЗаписиНоменклатуры .
В данном примере для группировок Контрагент и ДетальныеЗаписиНоменклатуры созданы разные макеты заголовка группировки.
Макет ресурсов
Данный макет предназначен для оформления ресурсов таблицы. Ресурсами таблицы называется область отчета, содержащая значения полей ресурсов группировок или детальных записей. На указанном ниже рисунке выделены примеры областей ресурсов.
Для каждого макета ресурсов необходимо указать, для какой группировки строки и колонки таблицы он создается. Таким образом, макет ресурсов создается как бы на пересечении соответствующей строки и колонки таблицы. Например, на указанном ниже рисунке создается макет ресурсов для группировок Контрагент (колонки таблицы) и Номенклатура (строки таблицы).
При создании макета ресурсов необходимо указать либо имя группировки, либо поля группировки, для которой создается макет. Также необходимо указать тип макета. Типы макетов такие же, как и для макета группировки.
На указанном ниже рисунке изображен отчет с таблицей, в которой колонками являются контрагенты, а строками – номенклатура. Для указанной таблицы создано два макета ресурсов : макет ресурсов для колонок (изображен наклонным шрифтом) и макет ресурсов для общих итогов по горизонтали (изображен наклонным жирным шрифтом).
Примечание : для того чтобы макеты оформления не влияли на предопределенные макеты, создан специальный пустой макет оформления БезОформления . Данный макет оформления можно использовать в случае, когда необходимо использовать только цвета, шрифты и т. д. из предопределенных макетов.
Источник
Отчет СКД: вывести подвал при определенном условии
Я бы ввел параметр «СтрокВПорции»
если он 0, то таблица будет одна, если там есть значение допустим 200, то что?
Вводим в набор данных поле «НомерПорции» и нумеруем записи результирующего
пакета набора данных в ВТ, затем в набор добавим еще одни пакет с расчетом поля «НомерПорции».
Этот пакет будет точно таким же как и результирующий прежний, но с полем «НомерПорции», т.е. переписывать код и настройки нет необходимости.
далее все просто — группируем данные в настройках по указанному полю.
пример как рассчитать порции в запросе набора данных, выполните в консоли.
Я бы ввел параметр «СтрокВПорции»
если он 0, то таблица будет одна, если там есть значение допустим 200, то что?
Вводим в набор данных поле «НомерПорции» и нумеруем записи результирующего
пакета набора данных в ВТ, затем в набор добавим еще одни пакет с расчетом поля «НомерПорции».
Этот пакет будет точно таким же как и результирующий прежний, но с полем «НомерПорции», т.е. переписывать код и настройки нет необходимости.
далее все просто — группируем данные в настройках по указанному полю.
пример как рассчитать порции в запросе набора данных, выполните в консоли.
ВЫБРАТЬ
ТаблицаНабораДанных.Ссылка КАК Товар,
АВТОНОМЕРЗАПИСИ() КАК Номер
ПОМЕСТИТЬ Вт_ТаблицаНабораДанных
ИЗ
Справочник.Номенклатура КАК ТаблицаНабораДанных
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1505 // В реальном наборе ПЕРВЫЕ убрать
Вт_ТаблицаНабораДанных.Товар КАК Товар,
Вт_ТаблицаНабораДанных.Номер КАК Номер,
ВЫБОР
КОГДА &СтрокВПорции > 0
ТОГДА (ВЫРАЗИТЬ(Вт_ТаблицаНабораДанных.Номер / &СтрокВПорции — 0.5 КАК ЧИСЛО(15, 0))) + ВЫБОР
КОГДА Вт_ТаблицаНабораДанных.Номер / &СтрокВПорции — (ВЫРАЗИТЬ(Вт_ТаблицаНабораДанных.Номер / &СтрокВПорции — 0.5 КАК ЧИСЛО(15, 0))) > 0
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ
ИНАЧЕ 0
КОНЕЦ КАК Порция
ИЗ
Вт_ТаблицаНабораДанных КАК Вт_ТаблицаНабораДанных
УПОРЯДОЧИТЬ ПО
Номер
Интересное решение, спасибо! про АВТОНОМЕРЗАПИСИ() только сейчас узнала.
Источник
СтавАналит
Статьи
1С 8.2. Произвольные макеты в СКД (Система компоновки данных). Не стандартная «Шапка» и «Подвал».
Автор: программист Суровцев Василий
Данная статья будет полезна тем программистам, которые уже разрабатывали отчеты на системе компоновки данных, но не пользовались встроенным механизмом задания макетов.
При разработке отчетов иногда необходимо использовать не стандартный заголовок, или нужно добавить подписи. В статье рассмотрено два варианта:
- Встроенный механизм задания макетов непосредственно в СКД
- 2. Дополнение результата СКД в коде, с помощью обычных макетов.
Предположим, у нас уже есть отчет на компоновке данных, который выглядит следующим образом.
Нам необходимо добавить заголовок и подпись, чтобы отчет выглядел так:
Вариант 1. Можно воспользоваться механизмом разработки макетов непосредственно в СКД.
Сначала нам нужно добавить группировки и задать им имена в дереве группировок. Добавим одну группировку перед основной группировкой отчёта, и установим ей имя «Шапка». Вторую группировку добавим в конец, и зададим ей имя «Подвал».
Далее, на вкладке макеты необходимо добавить два макета группировки и задать для них области. Если области достаточно сложные (например, часть ячеек объединены в одну), то их можно сделать в обычном макете и перенести сюда с помощью механизма «копировать, вставить». Здесь же, можно передать параметры.
На вкладке настройки для группировок «Шапка» и «Подвал» нужно отключить «основной» макет оформления, выбрав значение «без оформления». Если этого не сделать, то ячейки наших группировок будут в рамочке.
Так же для наших группировок необходимо отключить выбранные поля.
Примечание. Подобный вариант отчета, возможно разработать использую только СКД. Такой отчет будет работать как на обычном приложении, так и на управляемом.
Вариант 2. C использованием результата СКД и обычных макетов (рассмотрен вариант для обычного приложения)
Добавим в отчет обычный макет.
Зададим в нём области «Шапка и Подвал».
В модуле формы добавим код для кнопки «Сформировать», в котором сначала выведем область «Шапка», потом результат компоновки данных, затем область «Подвал».
Примечание. Для того чтобы отчет работал в управляемых приложениях необходимо модифицировать процедуру для кнопки «сформировать».
Источник