Главная - Настройка интернет
СтавАналит. Контактная информация

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

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

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

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

Нам необходимо добавить заголовок и подпись, чтобы отчет выглядел так:

Вариант 1 . Можно воспользоваться механизмом разработки макетов непосредственно в СКД .

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

Далее, на вкладке макеты необходимо добавить два макета группировки и задать для них области. Если области достаточно сложные (например, часть ячеек объединены в одну), то их можно сделать в обычном макете и перенести сюда с помощью механизма «копировать, вставить». Здесь же, можно передать параметры.

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

Так же для наших группировок необходимо отключить выбранные поля.

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

Вариант 2. C использованием результата СКД и обычных макетов (рассмотрен вариант для обычного приложения)

Добавим в отчет обычный макет.

Зададим в нём области «Шапка и Подвал».

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

Примечание . Для того чтобы отчет работал в управляемых приложениях необходимо модифицировать процедуру для кнопки «сформировать».

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

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

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

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

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

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

Здесь все просто, ставим галочку напротив свойства поля "Заголовок" (т.е. отменяем автозаголовок) и вводим необходимый текст заголовка (см. рисунок 4).
Если требуется задать оформление для всего поля, а не только для его заголовка, то существует свойство поля "Оформление", с помощью которого можно задать некое оформление поля, например, изменить шрифт или задать цвет фона (см. рисунок 5).
На этом мои знания про вкладку "Наборы данных" заканчиваются.

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

Для задания заголовка поля, необходимо выделить нужное поле, правой кнопкой мыши вызвать контекстное меню и выбрать пункт "Установить заголовок" (см. рисунок 6)
Что бы сгруппировать поля (например, по типу информации), нужно добавить группировочное поле и поместить в него требуемые поля (см. рисунок 7), вложенность неограниченная.
Так же можно поиграться со свойством группировочного поля "Расположение", от которого зависит вид группировки полей.

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

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

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

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

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

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

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

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

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

Результат отчета (см. рисунок 10):
Способ потяжелее, чем все выше перечисленные, но мне нравится.

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

Для более гибкой настройки внешнего вида отчета в СКД предусмотрено создание макетов. В настройках отчета создадим еще одну группировку "детальные записи" и установим имя "СтрокаДЗ" для этой группировки (см. рисунок 11).
На вкладке "Макеты" добавим макет заголовка группировки. Для макета в табличном документе создадим шапку отчета (шапка отчета должна содержать столько заголовков полей, сколько выводит полей детальная запись) и укажем область табличного документа для макета (см. рисунок 12).
В итоге отчет имеет следующего вида шапку(см. рисунок 13):

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

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

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

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

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

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

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

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

P.S. может быть у вас в арсенале имеется еще способ оформления заголовков полей?

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

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

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

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

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

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

Здесь все просто, ставим галочку напротив свойства поля "Заголовок" (т.е. отменяем автозаголовок) и вводим необходимый текст заголовка (см. рисунок 4).
Если требуется задать оформление для всего поля, а не только для его заголовка, то существует свойство поля "Оформление", с помощью которого можно задать некое оформление поля, например, изменить шрифт или задать цвет фона (см. рисунок 5).
На этом мои знания про вкладку "Наборы данных" заканчиваются.

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

Для задания заголовка поля, необходимо выделить нужное поле, правой кнопкой мыши вызвать контекстное меню и выбрать пункт "Установить заголовок" (см. рисунок 6)
Что бы сгруппировать поля (например, по типу информации), нужно добавить группировочное поле и поместить в него требуемые поля (см. рисунок 7), вложенность неограниченная.
Так же можно поиграться со свойством группировочного поля "Расположение", от которого зависит вид группировки полей.

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

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

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

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

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

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

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

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

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

Результат отчета (см. рисунок 10):
Способ потяжелее, чем все выше перечисленные, но мне нравится.

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

Для более гибкой настройки внешнего вида отчета в СКД предусмотрено создание макетов. В настройках отчета создадим еще одну группировку "детальные записи" и установим имя "СтрокаДЗ" для этой группировки (см. рисунок 11).
На вкладке "Макеты" добавим макет заголовка группировки. Для макета в табличном документе создадим шапку отчета (шапка отчета должна содержать столько заголовков полей, сколько выводит полей детальная запись) и укажем область табличного документа для макета (см. рисунок 12).
В итоге отчет имеет следующего вида шапку(см. рисунок 13):

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

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

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

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

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

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

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

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

P.S. может быть у вас в арсенале имеется еще способ оформления заголовков полей?

В данной статье мы кратко пробежимся по всем вкладкам конструктора схемы компоновки данных.

Наборы данных

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

Различают несколько видов наборов данных:

  • Запрос;
  • Объект;
  • Объединение .

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

Объект – внешний набор данных, например таблица значений.

Объединение – объединение нескольких наборов данных типов запрос и объект.

В данной статье мы кратко пробежимся по всем вкладкам конструктора схемы компоновки данных. Наборы данных На данной вкладке можно создать неограниченное количество наборов данных. Набор данных – это источник получения данных. Различают несколько видов наборов данных: Запрос; Объект; Объединение. Запрос – это обычный 1с-запрос только язык запросов немного расширен. Для удобства можно использовать конструктор запроса. Объект – внешний набор данных, например таблица значений. Объединение – объединение нескольких наборов данных типов запрос и объект. Связи наборов данных На данной вкладке описываются связи наборов данных. Тут можно указать какие наборы данных связывать и по каким полям и с какими параметрами. Самое главное, что нужно запомнить: в схеме компоновки данных, при связывании наборов всегда используется Левое соединение! Вычисляемые поля На данной вкладке можно создавать дополнительные поля, не описанные на вкладке Наборы данных. В качестве выражений для расчета можно использовать язык выражений компоновки данных, поля из основных наборов данных, а также функции не глобальных общих модулей. Ресурсы Ресурсы – это итоговые данные по группировкам. На вкладке можно назначить ресурсом поля из наборов данных, а также из вычисляемых полей. Также для ресурсов указывается выражение, по которому они рассчитываются, и возможно указание группировки по которой будет рассчитываться выражение для ресурсов. На основании значений ресурсов также рассчитываются общие итоги отчета. Параметры Параметры данных, как правило, используются в наборе данных запрос. Все параметры, описанные в запросе, появляются на вкладке Параметры. На данной вкладке можно указать заголовок, доступные типы, доступные значение и некоторые другие вещи. Подробнее о параметрах чуть позже. Макеты По умолчанию макет сформированного отчета генерируется автоматически системой компоновки данных. Но в системе также имеется возможность разработчику самому оформлять отдельные области отчета(полей, группировок, ресурсов…). Все макеты отдельных областей, созданные на данной вкладке, привязаны только к текущему отчету. Вложенные схемы Вложенные схемы используются в случаях когда данные одного отчета необходимо использовать в другом. Другими словами мы “встраиваем” одну схему компоновки данных в другую, указывая связь по общему полю. Пример использования вложенных схем можно посмотреть в этой статье. Настройки На данной вкладке разработчик создает стандартные настройки формирования отчета. В верхней части окна задается иерархическая структура. Структура формирования отчета может состоять из следующих элементов: Группировка; Таблица; Диаграмма; Вложенная схема В нижнем части окна задаются настройки для всего отчета и для каждого элемента структуры отчета. Кратко в вкладках настроек: Выбранные поля – список полей выводимых в отчет; Отбор – всевозможные отборы записей отчета; Порядок – сортировка записей в отчете; Параметры данных – значение параметров отчета; Пользовательские поля – дополнительные поля отчета, создаваемые пользователем; Условное оформление – задается условное оформление записей отчета; Другие настройки – всевозможные дополнительные настройки такие как: заголовок отчета, макет оформления, расположение полей и тд....

как создать свой макет в системе компоновки данных (СКД).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



 


Читайте:



Прошивка Lineage OS: обзор и установка новейшей ОС Установка обновлений при помощи ROM Manager

Прошивка Lineage OS: обзор и установка новейшей ОС Установка обновлений при помощи ROM Manager

Зачем прошивать «Андроид»? Из-за желания расширить функционал, посмотреть, как может выглядеть свой гаджет в новой «обертке», восстановить работу...

Отличия одноплатных компьютеров Orange pi и Raspberry pi, что купить?

Отличия одноплатных компьютеров Orange pi и Raspberry pi, что купить?

Идея сделать маленький компьютер лежит в умах инженеров уже много лет. Одним из самых популярных типов микрокомпьютеров является смартфон - симбиоз...

Инструкция, что делать если это произошло с вами

Инструкция, что делать если это произошло с вами

В данной статье расскажу как спасти компьютер от переустановки операционной системы, если учетная запись локального Администратора Windows...

Загружаем виртуальную машину с флешки программой Virtual Machine USB Boot Виртуальная ос на флешке

Загружаем виртуальную машину с флешки программой Virtual Machine USB Boot Виртуальная ос на флешке

В статье рассмотрен вопрос о том, как проверить работает ли загрузочная флешка в VirtualBox. Я предварительно установлю и проверю работоспособность...

feed-image RSS