- Расположение полей группировок в системе компоновки данных
- Использование предопределенных макетов
- Макет поля
- Макет группировки
- Макет заголовка группировки
- Макет ресурсов
- Группировка в 1С СКД
- Детальные записи
- Группировка по полю
- Группировка иерархическая
- Группировка по нескольким полям
- Подчиненные группировки
- Действие настроек родительской группировки на подчиненные
- Таблица
- Собственные итоги
- Вывод группировок в пользовательские настройки
- Программная работа с группировками
Расположение полей группировок в системе компоновки данных
Система компоновки данных предоставляет широкие возможности для расположения полей группировок в отчете. Для управления расположением полей группировок используются настройки компоновки данных. При использовании конструктора схемы компоновки данных необходимо перейти на закладку » Настройки » , а затем выбрать закладку » Другие настройки » . На данной закладке находится параметр Расположение полей группировок , позволяющий управлять расположением полей группировок в отчете.
Существуют следующие варианты расположения полей группировок :
- Вместе — поля группировки располагаются друг под другом. На указанном ниже рисунке изображен отчет, содержащий группировки по полям Контрагент и Номенклатура. В данном отчете поля группировки по номенклатуре расположены под полями группировки по контрагенту ;
- Отдельно — каждая группировка располагается в отдельной области отчета слева направо. Выводимые поля группировки также выводятся во вложенных группировках. На указанном ниже рисунке поля группировки по контрагенту расположены в крайней левой колонке, а поля группировки по номенклатуре справа от колонки контрагента, при этом для группировки по номенклатуре выводятся поля группировки по контрагенту.
- Отдельно и только в итогах — каждая группировка располагается в отдельной области отчета слева направо. Выводимые поля выводятся только в данной группировке. На указанном ниже рисунке поля группировки по контрагенту расположены в крайней левой колонке, а поля группировки по номенклатуре справа от колонки контрагента.
Источник
Использование предопределенных макетов
Система компоновки данных предоставляет широкие возможности по использованию предопределенных макетов при создании отчетов. Предопределенные макеты предназначены для оформления областей отчета и могут создаваться при помощи конструктора схемы компоновки данных, в котором для создания макетов необходимо перейти на вкладку Макеты .
Любой предопределенный макет представляет собой область табличного документа. Существуют следующие типы предопределенных макетов :
- Макет поля,
- Макет группировки,
- Макет заголовка группировки,
- Макет ресурсов.
Примерная структура отчета приведена на указанном ниже рисунке:
Примерная структура отчета, содержащего таблицу, приведена на указанном ниже рисунке:
Макет поля
Данный макет предназначен для оформления определенных выводимых полей. При создании данного макета необходимо указать поле, для которого создается предопределенный макет. На указанном ниже рисунке создается макет поля для поля Документ.Контрагент .
Для того чтобы в создаваемом макете отображались значения выводимых полей, необходимо для ячейки макета, в которой необходимо отображать поле, добавить параметр макета. Сделать это можно следующим способом : в палитре свойств для ячейки макета установить свойство Заполнение = Параметр , а в качестве значения свойства Параметр установить имя параметра макета.
Затем в списке параметров макета необходимо установить в качестве выражения представление выводимого поля. В нашем случае это будет представление поля Контрагент .
В данном примере макет поля Контрагент выводится наклонным шрифтом увеличенной высоты.
Макет группировки
Данный макет предназначен для оформления группировок. При создании данного макета необходимо указать либо имя группировки, либо поля группировки, для которой создается макет. Также необходимо указать тип макета. Существуют следующие типы предопределенных макетов :
Заголовок — данный макет предназначен для оформления заголовка группировки. Заголовок группировки выводится в начале группировки. В случае если группировка содержит вложенные группировки, то заголовок группировки выводится перед записями вложенной группировки.
Подвал — данный макет предназначен для оформления подвала группировки. Подвал группировки выводится в конце группировки. В случае если группировка содержит вложенные группировки, то подвал группировки выводится после записей вложенной группировки.
Заголовок иерархии — данный макет предназначен для оформления заголовка иерархической группировки. Данный заголовок выводится в начале иерархической группировки .
Подвал иерархии — данный макет предназначен для оформления подвала иерархической группировки. Данный подвал выводится в конце иерархической группировки.
Общий итог заголовок — данный макет предназначен для оформления области отчета, отображающей общий итог по группировке, и выводится в начале группировки.
Общий итог подвал — данный макет предназначен для оформления области отчета, отображающей общий итог по группировке, и выводится в конце группировки.
Структура предопределенных макетов группировки показана на указанном ниже рисунке:
Общий итог заголовок группировки уровень 1 | ||||||
Заголовок группировки уровень 1 | ||||||
Общий итог заголовок группировки уровень 2 | ||||||
Заголовок группировки уровень 2 | ||||||
. | ||||||
Общий итог заголовок группировки уровень N | ||||||
Заголовок группировки уровень N | ||||||
Подвал группировки уровень N | ||||||
Общий итог подвал группировки уровень N | ||||||
. | ||||||
Подвал группировки уровень 2 | ||||||
Общий итог подвал группировки уровень 2 | ||||||
Подвал группировки уровень 1 | ||||||
Общий итог подвал группировки уровень 1 |
На указанном ниже рисунке создается макет заголовка для группировки с именем ДетальныеЗаписиНоменклатуры .
В данном примере для группировки с именем ДетальныеЗаписиНоменклатуры дополнительно выводится реквизит Код , а также изменена ширина колонок.
Макет заголовка группировки
Данный макет предназначен для оформления заголовков группировок. Заголовком группировки называется область отчета, содержащая имена выводимых в отчете полей. При создании данного макета необходимо указать либо имя группировки, либо поля группировки, для которой создается макет. Также необходимо указать тип макета. Типы макетов такие же, как и для макета группировки. Существует следующее правило вывода макетов заголовка группировки : макет заголовка группировки действует на указанную группировку и на все ее вложенные группировки до момента обнаружения другого макета заголовка группировки. При обнаружении другого макета заголовка группировки начинает использоваться обнаруженный макет заголовка группировки. Тем самым существует возможность создания различных макетов заголовка для различных группировок.
В данном примере для группировки Контрагент создан макет заголовка группировки. Данный макет также действует и на группировку с именем ДетальныеЗаписиНоменклатуры .
В данном примере для группировок Контрагент и ДетальныеЗаписиНоменклатуры созданы разные макеты заголовка группировки.
Макет ресурсов
Данный макет предназначен для оформления ресурсов таблицы. Ресурсами таблицы называется область отчета, содержащая значения полей ресурсов группировок или детальных записей. На указанном ниже рисунке выделены примеры областей ресурсов.
Для каждого макета ресурсов необходимо указать, для какой группировки строки и колонки таблицы он создается. Таким образом, макет ресурсов создается как бы на пересечении соответствующей строки и колонки таблицы. Например, на указанном ниже рисунке создается макет ресурсов для группировок Контрагент (колонки таблицы) и Номенклатура (строки таблицы).
При создании макета ресурсов необходимо указать либо имя группировки, либо поля группировки, для которой создается макет. Также необходимо указать тип макета. Типы макетов такие же, как и для макета группировки.
На указанном ниже рисунке изображен отчет с таблицей, в которой колонками являются контрагенты, а строками – номенклатура. Для указанной таблицы создано два макета ресурсов : макет ресурсов для колонок (изображен наклонным шрифтом) и макет ресурсов для общих итогов по горизонтали (изображен наклонным жирным шрифтом).
Примечание : для того чтобы макеты оформления не влияли на предопределенные макеты, создан специальный пустой макет оформления БезОформления . Данный макет оформления можно использовать в случае, когда необходимо использовать только цвета, шрифты и т. д. из предопределенных макетов.
Источник
Группировка в 1С СКД
Одним из базовых функционалов 1С СКД является возможность определения структуры отчета. Ни один отчет в СКД не обходится без настройки группировок. Поэтому в этой статье мы разберем, как производится такая настройка.
Итак, после того как вы определили наборы данных, по которым будет построен отчет, вы можете приступать к настройке структуры отчета. До этого этапа обычно также производят настройку ресурсов, но такая последовательность не является обязательной.
Определение группировок производится на закладке «Настройка» схемы компоновки данных в верхнем правом окне.
Рисунок 1
Детальные записи
Начнем с простого. Если нам нужно вывести все строки набора в отчет, добавляем группировку «Детальные записи». Добавление новой группировки производится через правую клавишу мыши (ПКМ) на уровне отчета или через клавишу «Ins». Чтобы добавить группировку «Детальные записи», в открывшемся диалоге мы не указываем поле.
Далее в области «Настройки текущей группировки» (см. рисунок 1) мы можем на закладке «Выбранные поля» просто перенести все доступные поля в список выбранных. При этом мы указали настройки (список полей) для всего отчета. В нашем случае весь отчет это одна группировка, поэтому нет разницы — задаем мы настройки для всего отчета или для группировки.
Итоговый отчет будет выглядеть как таблица с колонками выбранных полей и со всеми строками из набора.
Такой вариант отчет бывает полезным для отладки, чтобы понять какие данные содержатся в наборе.
Группировка по полю
Дальше у нас может возникнуть задача — добавить итоговые записи в отчет по какому-то полю. В этом случае при добавлении новой группировки мы должны указать это поле. Например, в нашем случае мы можем добавить группировку по контрагенту.
Теперь, если как прежде добавим все поля в выбранные поля для нашей группировки, мы не получим ожидаемый результат
Все потому что в группировку, определяющую итоговую запись попадают только значения полей, из которых состоит эта группировка и ресурсы. Ресурсы мы не определили, поэтому они не попали в отчет. Давайте определим два ресурса
Теперь в наш отчет попали ресурсы, но не попали прочие поля. Об этом поговорим позже.
Группировка иерархическая
В 1С СКД есть возможность добавления итоговой записи для иерархических объектов – справочников, планов видов характеристик. В этом случае кроме итоговой записи по конечному элементу в отчет добавляется итоговая запись по всем родителям, содержащим этот элемент.
Например, сделаем вариант отчета с группировкой по номенклатуре, включая итоги по группам (папкам).
Если выбрать вариант «Иерархия» добавляются итоги по родителям и элементам, если «Только иерархия», то итоги только по родителям. Выберем вариант «Иерархия» и посмотрим, что получится:
В отчет кроме итоговых записей по элементам добавились записи по родительским элементам.
Группировка по нескольким полям
Группировку можно сделать не по одному полю, а по нескольким. Например, в случае нашего отчета сделаем группировку по периоду и включим для этого в группировку два поля – начало периода и конец периода. Добавим группировку, указав поле начало периода (или не указывая ничего), затем кликнем по группировке, в открывшемся списке определим следующие поля:
По смыслу такая группировка аналогична конструкции «СГРУППИРОВАТЬ ПО НачалоПериода, КонецПериода» в языке запросов.
Получим вот такой отчет
Подчиненные группировки
Теперь вернемся к разделу «Группировка по одному полю». В принципе на предыдущем примере мы это тоже можем реализовать – в отчет у нас не попали прочие поля. Как уже было озвучено ранее, потому что в группировку попадают только значения полей группировки и ресурсы.
В 1С СКД имеется возможность создавать подчиненные группировки. Как мы добавляли первую группировку для всего отчета, так мы можем добавить любую подчиненную группировку для другой (родительской группировки).
Добавим в предыдущий вариант отчета группировку детальных записей:
И добавим сразу себестоимость в ресурсы. Получится такой отчет:
Действие настроек родительской группировки на подчиненные
При использовании группировок нужно учитывать важную особенность работы СКД – наследование настроек подчиненными группировками. Все группировки наследуют все настройки заданные на уровне отчета. Все подчиненные группировки наследуют список выбранных полей и сортировку от родительской группировки, если в списке указан элемент «Авто». Условное оформление, отбор, другие настройки не наследуются от родительской группировоки.
Для подчиненных группировок мы можем определить свои настройки. Например, определим для детальных записей в последнем варианте свой список полей. Допустим в детальных записях нам нужно к общим полям добавить код номенклатуры:
Для этого мы в поле «Настройки» выбираем группировку «Детальные записи». В выбранных полях оставляем «Авто» — это значит, что мы наследуем в группировке поля из родительских группировок. И добавляем поле код. Получаем (в других настройках нужно указать расположение реквизитов – «Отдельно»):
Мы можем переопределить полностью родительские поля и задать свой список полей:
Таблица
До сих пор мы рассматривали с вами «одномерные» отчеты, когда информация из набора разворачивалась в одном направлении – вертикальном. В 1С СКД имеется возможность выводить информацию в двух направлениях одновременно – в вертикальном и горизонтальном в виде таблицы. Для этого используется элемент структуры «Таблица»:
При добавлении таблицы в настройки у нее доступны два измерения, в которые можно добавлять группировки – «Строки» для вертикального разворота, «Колонки» — для горизонтального разворота:
Используя набор данных с простым запросом:
Построим отчет, в котором в строках разместим группировку по контрагенту и номенклатуре, а в колонках по году и месяцу:
В отчете у нас определены ресурсы, которые мы добавили в настройки для отчета в выбранные поля:
Получили вот такой отчет:
Как видно в настройках и в результате отчета, подчиненные группировки можно добавлять не только для строк, но и для колонок.
Собственные итоги
При использовании таблицы в структуре отчета на СКД часто возникает необходимость добавить дополнительные колонки со своим составом полей или реализовать итог по горизонтали с другим составом ресурсов. Тоже самое касается и строк – чаще бывает необходимо реализовать собственные итоги в строках.
Рассмотрим на практическом примере. Пусть у нас есть такой (немного странный отчет):
За каждый месяц мы выводим количество поступивших и проданных товаров. В общем итоге по горизонтали (и только в нем) нам нужно вывести процентное отношение расхода к приходу. Первой колонкой нужно вывести остаток по номенклатуре. В общем итоге за период нужно вывести максимальный приход и максимальный расход.
Итак, первоначальная настройка отчета у нас совсем простая:
Набор и запрос несложные – вы можете сделать его на своей конфигурации сами.
Начнем с добавления процента в общем итоге. Для этого отключим вывод общего итога по горизонтали на закладке «Другие настройки»:
Далее нам нужно добавить группировку в колонки, в которой мы разместим наши итоги. Это может быть или группировка детальных записей или группировка по вычисляемому полю. Первое чуть проще, но итоговый результат нас не совсем устроит – нет заголовка у итога (это можно доработать с помощью макета), выберем второй вариант. Для этого добавим вычисляемое поле для общего итога «Итого», добавим вычисляемое поле «Процент» для расчета процента:
Добавим ресурс для общего итога с такой формулой:
Добавим колонку в настройки, добавим наши поля в выбранные ТОЛЬКО для группировки «Итого»:
Получим отчет в нужном виде:
Теперь добавим колонку остатка после колонки номенклатура. Для этого добавим второй набор данных (остатки), свяжем его с основным набором:
Теперь мы реализуем колонку через детальные записи, чтобы увидеть различие с группировкой по вычисляемому полю. Это не будет окончательное решение, но в рамках данной статьи будет достаточным:
Получим вот такую форму отчета:
И последняя задача – поменять общий вертикальный итог. Для нашей задачи такое требование можно выполнить несколько проще — без добавления группировки с собственным итогом, потому что в нашем случае не меняется макет общего итога, а меняются только значения ресурсов. Если нужно поменять макет ресурсов (состав ресурсов), то у нас есть ролик, в котором можно посмотреть, как делаются собственные итоги в строках.
Мы же решим эту часть задачи по другому, с помощью опции «Рассчитывать по» на закладке «Ресурсы»:
Процент для общего итога по строкам в общем итоге по горизонтали считать не будем. Получаем вот такой отчет:
Здесь важно заметить, что в исходном наборе данные по номенклатуре и месяцу должны быть сгруппированы, чтобы не было повторений для одной номенклатуры. Если такие повторения будут, то функция «Максимум» будет работать неверно. В этом случае выражение для ресурса в общем итоге будет более сложное, но это тема для другой статьи.
Вывод группировок в пользовательские настройки
Кроме изменения структуры отчета через варианты отчета в СКД имеется возможность изменять группировки отчета в режиме пользовательских настроек. Это может пригодится если пользователь пользуется одним и тем же вариантом отчета, но может часто изменять группировки отчета по своему желанию.
Для этого в СКД есть возможность добавить настройку группировок в пользовательские настройки:
Для отчета в целом
Для таблицы есть возможность управлять группировками строк и колонок:
Для выбранной группировки можно управлять вложенными (подчиненными) группировками:
В режиме предприятия это выглядит примерно так:
Группировки добавляются к заданным в варианте отчета. Можно не устанавливать никакие группировки в варианте отчета и тогда пользователь может полностью управлять структурой отчета. Надо конечно заметить, что в этом режиме нельзя добавить таблицу или диаграмму – только обычную группировку. Причем нельзя добавить составную группировку. При добавлении группировки как показано на рисунке устанавливается дополнительно две родительских группировки, а не одна составная:
Программная работа с группировками
При создании отчета на СКД имеется возможность создать отчет полностью программно. При этом можно таким образом создать как схему компоновки, так и заполнить настройки компоновщика настроек. В обоих случаях мы работаем с объектом «НастройкиКомпоновкиДанных».
Пример программного создания группировки
// Добавим новую группировку в структуру отчета.
// Укажем, по каким полям нужно группировать.
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(«Номенклатура»);
// Укажем тип иерархии.
Более подробно можно изучить программную работу с настройками (не только группировок) можно по ссылкам указанным в материалах для подготовки.
Источник