Меню

Скд свой макет шапки таблицы



Использование предопределенных макетов

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

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

  • Макет поля,
  • Макет группировки,
  • Макет заголовка группировки,
  • Макет ресурсов.

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

Примерная структура отчета, содержащего таблицу, приведена на указанном ниже рисунке:

Макет поля

Данный макет предназначен для оформления определенных выводимых полей. При создании данного макета необходимо указать поле, для которого создается предопределенный макет. На указанном ниже рисунке создается макет поля для поля Документ.Контрагент .

Для того чтобы в создаваемом макете отображались значения выводимых полей, необходимо для ячейки макета, в которой необходимо отображать поле, добавить параметр макета. Сделать это можно следующим способом : в палитре свойств для ячейки макета установить свойство Заполнение = Параметр , а в качестве значения свойства Параметр установить имя параметра макета.

Затем в списке параметров макета необходимо установить в качестве выражения представление выводимого поля. В нашем случае это будет представление поля Контрагент .

В данном примере макет поля Контрагент выводится наклонным шрифтом увеличенной высоты.

Макет группировки

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

Заголовок — данный макет предназначен для оформления заголовка группировки. Заголовок группировки выводится в начале группировки. В случае если группировка содержит вложенные группировки, то заголовок группировки выводится перед записями вложенной группировки.

Подвал — данный макет предназначен для оформления подвала группировки. Подвал группировки выводится в конце группировки. В случае если группировка содержит вложенные группировки, то подвал группировки выводится после записей вложенной группировки.

Заголовок иерархии — данный макет предназначен для оформления заголовка иерархической группировки. Данный заголовок выводится в начале иерархической группировки .

Подвал иерархии — данный макет предназначен для оформления подвала иерархической группировки. Данный подвал выводится в конце иерархической группировки.

Общий итог заголовок — данный макет предназначен для оформления области отчета, отображающей общий итог по группировке, и выводится в начале группировки.

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

Структура предопределенных макетов группировки показана на указанном ниже рисунке:

Общий итог заголовок группировки уровень 1
Заголовок группировки уровень 1
Общий итог заголовок группировки уровень 2
Заголовок группировки уровень 2
.
Общий итог заголовок группировки уровень N
Заголовок группировки уровень N
Подвал группировки уровень N
Общий итог подвал группировки уровень N
.
Подвал группировки уровень 2
Общий итог подвал группировки уровень 2
Подвал группировки уровень 1
Общий итог подвал группировки уровень 1

На указанном ниже рисунке создается макет заголовка для группировки с именем ДетальныеЗаписиНоменклатуры .

В данном примере для группировки с именем ДетальныеЗаписиНоменклатуры дополнительно выводится реквизит Код , а также изменена ширина колонок.

Макет заголовка группировки

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

В данном примере для группировки Контрагент создан макет заголовка группировки. Данный макет также действует и на группировку с именем ДетальныеЗаписиНоменклатуры .

В данном примере для группировок Контрагент и ДетальныеЗаписиНоменклатуры созданы разные макеты заголовка группировки.

Макет ресурсов

Данный макет предназначен для оформления ресурсов таблицы. Ресурсами таблицы называется область отчета, содержащая значения полей ресурсов группировок или детальных записей. На указанном ниже рисунке выделены примеры областей ресурсов.

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

При создании макета ресурсов необходимо указать либо имя группировки, либо поля группировки, для которой создается макет. Также необходимо указать тип макета. Типы макетов такие же, как и для макета группировки.

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

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

Источник

Работа с фиксированным макетом в СКД

Привет. Сегодня расскажу о том, как создать свой макет в системе компоновки данных (СКД).

Тренироваться будем на конфигурации «Управление торговлей 11».

Задача. Необходимо реализовать печать расходной накладной в следующем виде:

1. Создадим внешний отчет. Создадим основную схему компоновки данных (СКД). Как создать запрос, определить параметры, ресурсы я опущу. В настройках определим 3 группировки.

2. Зададим имена для всех группировок: Шапка, ТЧТовары (таблица), Подвал.

3. Чтобы определить фиксированный макет, перейдем на закладку «Макеты»

4. Создадим макет оформления для группировки «Шапка». Группировка шапка включает в себя следующие поля:Номер, Дата, Грузоотправитель, Грузополучатель.

Выберем пункт «Добавить макет группировки«. В открывшемся диалоге выберем имя группировки «Шапка» и тип макета «Заголовок»

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

5. Для вывода табличной части понадобится создать 3 макета оформления:

  • Макет заголовки группировки — для вывода шапки таблицы
  • Макет группировки — для вывода строк таблицы
  • Макет группировки — для вывода итога по таблицы.

Добавим макет заголовка группировки для вывода шапки группировки (шапки таблицы). В открывшемся диалоге выберем имя группировки «ТЧТовары» и тип макета «Заголовок«. В правом окне настроим свойства ячеек.

Добавим макет группировки для вывода значений группировки. В открывшемся диалоге выберем имя группировки «ТЧТовары» и тип макета «Заголовок«. В правом окне настроим свойства ячеек.

Добавим макет группировки для вывода итогов по группировке. В открывшемся диалоге выберем имя группировки «ТЧТовары» и тип макета «Общий итог заголовок«. В правом окне настроим свойства ячеек.

6. Добавим макет группировки для вывода подвала нашей печатной формы. В открывшемся диалоге выберем имя группировки «Подвал» и тип макета «Заголовок«.

7. Чтобы общие макеты не влияли на наш созданный макет, необходимо на закладке «Другие настройки» установить макет оформления «Без оформления» .

Вот и все. Конечный результат будет иметь вид:

Источник

АйТиБложик

Маленький IT блог с характером 1С.

Настройка шапки отчета в СКД

  • Получить ссылку
  • Facebook
  • Твиттер
  • Pinterest
  • Электронная почта
  • Другие приложения

Создадим внешний отчет, который будет выводить отчетную информацию об остатках номенклатуры и её обороте. Требуемая информация запрашивается запросом с помощью набор данных типа «Запрос», который содержит текст запроса:
ВЫБРАТЬ
_ДемоНоменклатура.Ссылка КАК Номенклатура
ПОМЕСТИТЬ АктуальнаяНоменклатура
ИЗ
Справочник._ДемоНоменклатура КАК _ДемоНоменклатура
ГДЕ
НЕ _ДемоНоменклатура.ПометкаУдаления
И НЕ _ДемоНоменклатура.ЭтоГруппа
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
АктуальнаяНоменклатура.Номенклатура,
_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.МестоХранения,
_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоНачальныйОстаток,
_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоКонечныйОстаток,
_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоПриход,
_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоРасход,
_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоОборот
ИЗ
АктуальнаяНоменклатура КАК АктуальнаяНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления._ДемоОстаткиТоваровВМестахХранения.ОстаткиИОбороты КАК _ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты
ПО АктуальнаяНоменклатура.Номенклатура = _ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.Номенклатура

В итоге отчет содержит следующие поля (см. рисунок 1):

Рисунок 1. Поля отчета

Так как информация берется из виртуальной таблицы «ОстаткиИОбороты», то СКД автоматически создает два параметра данных НачалоПериода и КонецПериода, которые необходимы для задания пределов периода выборки данных. Я предпочитаю с такими параметрами не работать напрямую, а задавать их значения через другой параметр, который будет доступен пользователю для редактирования (см. рисунок 2).

Рисунок 2. Параметры данных

Структура отчета выводит детальные записи, результат работы отчета см. на рисунке 3.

Рисунок 3. Результат отчета

Отчет со своей задачей справляется, но шапка отчета довольно сухая. За время работы, я нашел несколько способов оформления шапки отчета:

  1. Настройка заголовков полей на вкладке СКД «Наборы данных»;
  2. Настройка заголовков полей на вкладке СКД «Настройки»;
  3. Программная установка заголовков полей;
  4. Задание шапки отчета с помощью макета;
  5. Доработка результата (табличного документа);

Рассмотрим их подробно.

1. Настройка заголовков на вкладке СКД «Наборы данных»

Здесь все просто, ставим галочку напротив свойства поля «Заголовок» (т.е. отменяем автозаголовок) и вводим необходимый текст заголовка (см. рисунок 4).

Рисунок 4. Изменения названия заголовка в наборе данных

Если требуется задать оформление для всего поля, а не только для его заголовка, то существует свойство поля «Оформление», с помощью которого можно задать некое оформление поля, например, изменить шрифт или задать цвет фона (см. рисунок 5).

Рисунок 5. Оформление полей в наборе данных

На этом мои знания про вкладку «Наборы данных» заканчиваются.

2. Настройка заголовков полей на вкладке СКД «Настройки»

Для задания заголовка поля, необходимо выделить нужное поле, правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Установить заголовок» (см. рисунок 6)

Рисунок 6. Установка заголовков полей в настройках отчета

Что бы сгруппировать поля (например, по типу информации), нужно добавить группировочное поле и поместить в него требуемые поля (см. рисунок 7), вложенность неограниченная.

Рисунок 7. Группировка полей в настройках отчета

Так же можно поиграться со свойством группировочного поля «Расположение», от которого зависит вид группировки полей.

Данные действия можно производить и в режиме 1С:Предприятия, открыв настройки отчета, НО, в состав настроек отчета должен быть включен пункт «Выбранные поля» (см. рисунок 8).

Рисунок 8. Расширение настроек отчета

После всех проделанных операций внешний вид отчета изменился следующим образом (см. рисунок 9):

Рисунок 9. Внешний вид отчета после настройки СКД

На этом легкая часть по настройке шапки отчета закончена. Из плюсов выше перечисленных действий: вся настройка выполняется стандартными средствами. Из минусов: отсутствие возможности задания многострочного заголовка поля.

3. Программная установка заголовков полей

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

Для этого в модуле отчета определим процедуру ПриКомпоновкеРезультата. В этой процедуре напишем код по заданию заголовка полей.

// 1. Получаем пользовательские настройки.
НастройкиКД = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки();

// 2. Получаем значение параметра «Период» из которого определяем дату начала и окончания периода.
ПараметрПериод = Новый ПараметрКомпоновкиДанных(«Период»);
Период = НастройкиКД.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрПериод).Значение;
НачалоПериода = Период.ДатаНачала;
КонецПериода = Период.ДатаОкончания;

// 3. Подготовим информацию о переопределении заголовка полей. Для этого, создадим
// массив, который будет содержать информацию: ИмяПоля — значения свойства «Путь» в
// наборе данных (см. рисунок 1), Заголовок — текст заголовка.
СписокПолей = Новый Массив;
стрНачалоПериода = Формат(НачалоПериода, «ДФ=dd.MM.yyyy; ДП=’Пустая дата'»);
ПолеНачальныйОстаток = Новый Структура(«ИмяПоля, Заголовок», «КоличествоНачальныйОстаток», «Остаток на » + Символы.ПС + стрНачалоПериода);
СписокПолей.Добавить(ПолеНачальныйОстаток);
стрКонецПериода = Формат(КонецПериода, «ДФ=dd.MM.yyyy; ДП=’Пустая дата'»);
ПолеКонечныйОстаток = Новый Структура(«ИмяПоля, Заголовок», «КоличествоКонечныйОстаток», «Остаток на » + Символы.ПС + стрКонецПериода);
СписокПолей.Добавить(ПолеКонечныйОстаток);

// 4. Получим список полей, который находятся в группировке «Остатки» (см. рисунок 7) и
// зададим новый заголовок, обойдя элементы в цикле.
ВыбранныеПоля = НастройкиКД.Выбор.Элементы; // Первый уровень полей.
ВыбранныеПоляОстатки = ВыбранныеПоля[6].Элементы; // Поля группировки остатки.
Для каждого ВыбранноеПоле Из ВыбранныеПоляОстатки Цикл
Для Каждого ЭлементМассива Из СписокПолей Цикл
ПолеКомпоновки = Новый ПолеКомпоновкиДанных(ЭлементМассива.ИмяПоля);
Если ВыбранноеПоле.Поле = ПолеКомпоновки Тогда
ВыбранноеПоле.Заголовок = ЭлементМассива.Заголовок;
КонецЕсли;
КонецЦикла;
КонецЦикла;

// 5. Загрузим измененный пользовательские настройки обратно.
ЭтотОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД);

Результат отчета (см. рисунок 10):

Рисунок 10. Многострочный текст заголовка

Способ потяжелее, чем все выше перечисленные, но мне нравится.

4. Задание шапки отчета с помощью макета

Для более гибкой настройки внешнего вида отчета в СКД предусмотрено создание макетов. В настройках отчета создадим еще одну группировку «детальные записи» и установим имя «СтрокаДЗ» для этой группировки (см. рисунок 11).

Рисунок 11. Установка имени для группировки

На вкладке «Макеты» добавим макет заголовка группировки. Для макета в табличном документе создадим шапку отчета (шапка отчета должна содержать столько заголовков полей, сколько выводит полей детальная запись) и укажем область табличного документа для макета (см. рисунок 12).

Рисунок 12. Маке заголовка группировки

В итоге отчет имеет следующего вида шапку(см. рисунок 13):

Рисунок 13. Макет СКД в качестве шапки отчета

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

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

5. Доработка результата (табличного документа)

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

Приступим. Отключаем стандартное формирование, для этого в модуле отчета для события ПриКомпоновкеРезультата установим переменную СтандартнаяОбработка в значение Ложь и напишем собственную компоновку результата:
СтандартнаяОбработка = Ложь;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(
ЭтотОбъект.СхемаКомпоновкиДанных,
ЭтотОбъект.КомпоновщикНастроек.Настройки,
ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Более подробно программная компоновка результата отчета описана в статье СКД. Программная компоновка результата.

Скомпонованный результат выводится в табличный документ — это переменная ДокументРезультат. Далее, после формирования результата и вывода его в табличный документ пишем код для замены одного текста ячейки на другой. Например, изменим в шапке отчета название группировки «Остатки» на «Остатки номенклатуры» (см. рисунок 14):
Ячейка = ДокументРезультат.НайтиТекст(«Остатки»);
Если Ячейка <> Неопределено Тогда
Ячейка.Текст = «Остатки номенклатуры»;
КонецЕсли;

Рисунок 14. Изменение табличного документа

Так же для найденной ячейки можно задать форматирование, см. свойства ячейки табличного документа в синтакс-помощнике.

Данный способ я обнаружил для себя недавно, он прост и позволяет очень гибко работать с шапкой отчета, главное, что бы текст ячейки имел уникальный текст.

Источник

Читайте также:  Сшить искусственную шубу мастер класс
Adblock
detector