В качестве примера рассмотрим формирование отчета из объединения наборов данных, которые заполняются программно.
Набор данных 1: ЦеныСборки
Запрос:
ВЫБРАТЬ
ПриходнаяНакладнаяТовары.Номенклатура КАК Номенклатура,
ПриходнаяНакладнаяТовары.Количество КАК Поступило,
ПриходнаяНакладнаяТовары.Цена КАК ЦенаПриход
ИЗ
Документ.ПриходнаяНакладная.ПереченьНоменклатуры КАК ПриходнаяНакладнаяТовары
ГДЕ
ПриходнаяНакладнаяТовары.Номенклатура В(&СписокНоменклатуры)
Набор данных 2: ЦеныПоступления
Запрос:
ВЫБРАТЬ
СборкаКомпьютераТовары.Номенклатура КАК Номенклатура,
СборкаКомпьютераТовары.Количество КАК Собрано,
СборкаКомпьютераТовары.Цена КАК ЦенаСборки
ИЗ
Документ.СборкаКомпьютера.ПереченьНоменклатуры КАК СборкаКомпьютераТовары
ГДЕ
СборкаКомпьютераТовары.Номенклатура В(&СписокНоменклатуры)
Программная настройка отчета
1. Надо создать схему компоновки данных. Это можно сделать 2 способами:
а) получить из макета - в макете настроены поля в наборах данных, вычисляемые поля, ресурсы и т.д.
Чтобы получить схему компоновки данных из макета надо выполнить команду:
СхемаКомпоновкиДанных = ДокументОбъект.ПолучитьМакет("АнализЦенКомплектующих");
где АнализЦенКомплектующих - имя макета СКД.
б) создать программно (см. ниже "Программное создание схемы компоновки данных")
Далее надо сформировать Настройки. Если брать настройки из макета, то выполняли команду Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Программная настройка
Настройку поместим в процедуру УстановитьНастройки(СхемаКомпоновкиДанных)
Аналог того, то должны получить:
Текст процедуры:
Функция УстановитьНастройки(СхемаКомпоновкиДанных)
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
ГруппировкаНоменклатура = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаНоменклатура.Использование = Истина;
ПолеНоменклатура = ГруппировкаНоменклатура.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеНоменклатура.Использование = Истина;
ПолеНоменклатура.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
ВыбранныеПоляДляНоменклатуры = ГруппировкаНоменклатура.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ВыбранныеПоляДляНоменклатуры.Использование = Истина;
ГруппаВыбранныхПолей = Настройки.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
ГруппаВыбранныхПолей.Использование = Истина;
ГруппаВыбранныхПолей.Заголовок = "Поступило";
Поле1 = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле1.Использование = Истина;
Поле1.Заголовок = "Количество";
Поле1.Поле = Новый ПолеКомпоновкиДанных("Поступило");
Поле2 = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле2.Использование = Истина;
Поле2.Заголовок = "Цена";
Поле2.Поле = Новый ПолеКомпоновкиДанных("ЦенаПриход");
ГруппаВыбранныхПолей = Настройки.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
ГруппаВыбранныхПолей.Использование = Истина;
ГруппаВыбранныхПолей.Заголовок = "Собрано";
Поле1 = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле1.Использование = Истина;
Поле1.Заголовок = "Количество";
Поле1.Поле = Новый ПолеКомпоновкиДанных("Собрано");
Поле2 = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле2.Использование = Истина;
Поле2.Заголовок = "Цена";
Поле2.Поле = Новый ПолеКомпоновкиДанных("ЦенаСборки");
ВыбранныеПоля = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранныеПоля.Использование = Истина;
ВыбранныеПоля.Заголовок = "Выручка";
ВыбранныеПоля.Поле = Новый ПолеКомпоновкиДанных("Выручка");
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("ВертикальноеРасположениеОбщихИтогов",РасположениеИтоговКомпоновкиДанных.Нет);
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("Заголовок","Анализ цен комплектующих");
ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение = Справочники.Номенклатура.НайтиПоНаименованию("Комплектующие");
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("ВыводитьОтбор", ТипВыводаТекстаКомпоновкиДанных.НеВыводить);
Возврат Настройки;
КонецФункции
Комментарии:
1) получаем настройки из макета:
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
В нашем случае они пустые.
2) Создаем группировку по полю Номенклатура:
ГруппировкаНоменклатура = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаНоменклатура.Использование = Истина;
ПолеНоменклатура = ГруппировкаНоменклатура.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеНоменклатура.Использование = Истина;
добавляем в неё автополе
ПолеНоменклатура.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
ВыбранныеПоляДляНоменклатуры = ГруппировкаНоменклатура.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ВыбранныеПоляДляНоменклатуры.Использование = Истина;
3) Для отчета создаем группы полей "Поступило" и "Собрано". Создаем поля внутри этих групп.
группа полей "Поступило":
ГруппаВыбранныхПолей = Настройки.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
ГруппаВыбранныхПолей.Использование = Истина;
ГруппаВыбранныхПолей.Заголовок = "Поступило";
добавляем в неё поля "Количество" и "Цена"
Поле1 = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле1.Использование = Истина;
Поле1.Заголовок = "Количество";
Поле1.Поле = Новый ПолеКомпоновкиДанных("Поступило");
Поле2 = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле2.Использование = Истина;
Поле2.Заголовок = "Цена";
Поле2.Поле = Новый ПолеКомпоновкиДанных("ЦенаПриход");
Аналогично для группы "Собрано":
ГруппаВыбранныхПолей = Настройки.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
ГруппаВыбранныхПолей.Использование = Истина;
ГруппаВыбранныхПолей.Заголовок = "Собрано";
Поле1 = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле1.Использование = Истина;
Поле1.Заголовок = "Количество";
Поле1.Поле = Новый ПолеКомпоновкиДанных("Собрано");
Поле2 = ГруппаВыбранныхПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле2.Использование = Истина;
Поле2.Заголовок = "Цена";
Поле2.Поле = Новый ПолеКомпоновкиДанных("ЦенаСборки");
4) Для отчета создаем поле "Выручка" вне групп
ВыбранныеПоля = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранныеПоля.Использование = Истина;
ВыбранныеПоля.Заголовок = "Выручка";
ВыбранныеПоля.Поле = Новый ПолеКомпоновкиДанных("Выручка");
5) устанавливаем элемент отбора: Номенклатура В ИЕРАРХИИ группы "Комплектующие"
ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение = Справочники.Номенклатура.НайтиПоНаименованию("Комплектующие");
6) Устанавливаем параметры, которые в интерфейсе находятся на вкладке "Другие настройки": заголовок, отмена вывода группировок, отмена вывода настроек отбора
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("ВертикальноеРасположениеОбщихИтогов",РасположениеИтоговКомпоновкиДанных.Нет);
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("Заголовок","Анализ цен комплектующих");
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("ВыводитьОтбор", ТипВыводаТекстаКомпоновкиДанных.НеВыводить);
! Названия некоторых параметров вывода не совпадают с названиями в окне настроек схемы компоновки данных. Список имен параметров для программного использования можно увидеть в разделе Синтакс-Помощника: Общие объекты→Система компоновки данных→Настройки компоновки данных→ЗначенияПараметровВыводаКомпоновкиДанных.
нам надо с нуля создать поля набора данных, ресурсы, форматы вывода, вычисляемые поля
Выведем в функцию УстановитьСхему()
Текст:
Функция УстановитьСхему()
СКД = Новый СхемаКомпоновкиДанных;
ИД = СКД.ИсточникиДанных.Добавить();
ИД.Имя = "ИсточникДанных";
ИД.ТипИсточникаДанных = "Local";
НаборДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных"));
НаборДанных.Имя = "НаборДанных1";
Набор1 = НаборДанных.Элементы.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
Набор1.Имя = "ЦеныСборки";
Набор1.ИмяОбъекта = "ЦеныСборки";
Набор1.ИсточникДанных = "ИсточникДанных";
Набор2 = НаборДанных.Элементы.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
Набор2.Имя = "ЦеныПоступления";
Набор2.ИмяОбъекта = "ЦеныПоступления";
Набор2.ИсточникДанных = "ИсточникДанных";
Поле1 = Набор1.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле1.Поле = "Номенклатура";
Поле1.ПутьКДанным = "Номенклатура";
Поле1.Заголовок = "Номенклатура";
Поле2 = Набор1.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле2.Поле = "ЦенаСборки";
Поле2.ПутьКДанным = "ЦенаСборки";
Поле2.Заголовок = "Цена";
Поле3 = Набор1.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле3.Поле = "Собрано";
Поле3.ПутьКДанным = "Собрано";
Поле3.Заголовок = "Количество";
Поле1 = Набор2.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле1.Поле = "Номенклатура";
Поле1.ПутьКДанным = "Номенклатура";
Поле1.Заголовок = "Номенклатура";
Поле2 = Набор2.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле2.Поле = "ЦенаПриход";
Поле2.ПутьКДанным = "ЦенаПриход";
Поле2.Заголовок = "Цена";
Поле3 = Набор2.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле3.Поле = "Поступило";
Поле3.ПутьКДанным = "Поступило";
Поле3.Заголовок = "Количество";
ВычПоле = СКД.ВычисляемыеПоля.Добавить();
ВычПоле.ПутьКДанным = "Выручка";
ВычПоле.Заголовок = "Выручка";
ВычПоле.Оформление.УстановитьЗначениеПараметра("Формат", "ЧЦ=6; ЧДЦ=0");
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "ЦенаПриход";
ПолеРесурса.Выражение = "Среднее(ЦенаПриход)";
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "ЦенаСборки";
ПолеРесурса.Выражение = "Среднее(ЦенаСборки)";
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "Поступило";
ПолеРесурса.Выражение = "Сумма(Поступило)";
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "Собрано";
ПолеРесурса.Выражение = "Сумма(Собрано)";
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "Выручка";
ПолеРесурса.Выражение = "Сумма(Собрано) * (Среднее(ЦенаСборки) - Среднее(ЦенаПриход))";
ПолеЦены = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеЦены.Поле = "ЦенаСборки";
ПолеЦены.ПутьКДанным = "ЦенаСборки";
ПолеЦены.Оформление.УстановитьЗначениеПараметра("Формат", "ЧЦ=6; ЧДЦ=0");
ПолеЦены = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеЦены.Поле = "ЦенаПриход";
ПолеЦены.ПутьКДанным = "ЦенаПриход";
ПолеЦены.Оформление.УстановитьЗначениеПараметра("Формат", "ЧЦ=6; ЧДЦ=0");
Возврат СКД;
КонецФункции
Комментарии:
1) Создаем новую схему компоновки данных:
СКД = Новый СхемаКомпоновкиДанных;
2) Добавляем в неё локальный источник:
ИД = СКД.ИсточникиДанных.Добавить();
ИД.Имя = "ИсточникДанных";
ИД.ТипИсточникаДанных = "Local"
3) Добавляем объединение наборов и сами наборы
Аналогтого, что должно получиться:
НаборДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных"));
НаборДанных.Имя = "НаборДанных1";
Набор1 = НаборДанных.Элементы.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
Набор1.Имя = "ЦеныСборки";
Набор1.ИмяОбъекта = "ЦеныСборки";
Набор1.ИсточникДанных = "ИсточникДанных";
Набор2 = НаборДанных.Элементы.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
Набор2.Имя = "ЦеныПоступления";
Набор2.ИмяОбъекта = "ЦеныПоступления";
Набор2.ИсточникДанных = "ИсточникДанных";
4) Добавляем поля в наборы данных
Поле1 = Набор1.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле1.Поле = "Номенклатура";
Поле1.ПутьКДанным = "Номенклатура";
Поле1.Заголовок = "Номенклатура";
Поле2 = Набор1.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле2.Поле = "ЦенаСборки";
Поле2.ПутьКДанным = "ЦенаСборки";
Поле2.Заголовок = "Цена";
Поле3 = Набор1.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле3.Поле = "Собрано";
Поле3.ПутьКДанным = "Собрано";
Поле3.Заголовок = "Количество";
Поле1 = Набор2.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле1.Поле = "Номенклатура";
Поле1.ПутьКДанным = "Номенклатура";
Поле1.Заголовок = "Номенклатура";
Поле2 = Набор2.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле2.Поле = "ЦенаПриход";
Поле2.ПутьКДанным = "ЦенаПриход";
Поле2.Заголовок = "Цена";
Поле3 = Набор2.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле3.Поле = "Поступило";
Поле3.ПутьКДанным = "Поступило";
Поле3.Заголовок = "Количество";
5) Добавляем вычисляемое поле без формулы, но с установленным оформлением:
ВычПоле = СКД.ВычисляемыеПоля.Добавить();
ВычПоле.ПутьКДанным = "Выручка";
ВычПоле.Заголовок = "Выручка";
ВычПоле.Оформление.УстановитьЗначениеПараметра("Формат", "ЧЦ=6; ЧДЦ=0");
6) Добавляем ресурсы:
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "ЦенаПриход";
ПолеРесурса.Выражение = "Среднее(ЦенаПриход)";
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "ЦенаСборки";
ПолеРесурса.Выражение = "Среднее(ЦенаСборки)";
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "Поступило";
ПолеРесурса.Выражение = "Сумма(Поступило)";
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "Собрано";
ПолеРесурса.Выражение = "Сумма(Собрано)";
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "Выручка";
ПолеРесурса.Выражение = "Сумма(Собрано) * (Среднее(ЦенаСборки) - Среднее(ЦенаПриход))";
7) Устанавливаем формат полей ЦенаПриход и ЦенаСборки. Здесь затык:на уровне наборов данных – объектов нет возможности задать оформление. Чтобы задать для них формат, эти поля сначала нужно добавить в набор данных – объединение и потом определить для них формат:
ПолеЦены = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеЦены.Поле = "ЦенаСборки";
ПолеЦены.ПутьКДанным = "ЦенаСборки";
ПолеЦены.Оформление.УстановитьЗначениеПараметра("Формат", "ЧЦ=6; ЧДЦ=0");
ПолеЦены = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеЦены.Поле = "ЦенаПриход";
ПолеЦены.ПутьКДанным = "ЦенаПриход";
ПолеЦены.Оформление.УстановитьЗначениеПараметра("Формат", "ЧЦ=6; ЧДЦ=0");
Создать набор данных, источником которых является запрос. Добавит поля и ресурс.
СКД = Новый СхемаКомпоновкиДанных;
ИД = СКД.ИсточникиДанных.Добавить();
ИД.Имя = "ИсточникДанных";
ИД.ТипИсточникаДанных = "Local";
НаборДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
НаборДанных.Имя = "НаборДанных1";
НаборДанных.Запрос = " ВЫБРАТЬ ЦеныСрезПоследних.Период, "+
"ЦеныСрезПоследних.Номенклатура, ЦеныСрезПоследних.Цена "+
"ИЗ РегистрСведений.Цены.СрезПоследних КАК ЦеныСрезПоследних";
НаборДанных.ИсточникДанных = "ИсточникДанных";
Поле1 = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле1.Поле = "Номенклатура";
Поле1.ПутьКДанным = "Номенклатура";
Поле1.Заголовок = "Номенклатура";
Поле2 = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле2.Поле = "Период";
Поле2.ПутьКДанным = "Период";
Поле2.Заголовок = "Период";
Поле3 = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле3.Поле = "Цена";
Поле3.ПутьКДанным = "Цена";
Поле3.Заголовок = "Цена";
Поле3.Оформление.УстановитьЗначениеПараметра("Формат", "ЧЦ=6; ЧДЦ=0");
ПолеРесурса = СКД.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "Цена";
ПолеРесурса.Выражение = "Сумма(Цена)";
//////////////////////////////////////////////////
Настройки = СКД .НастройкиПоУмолчанию;
ГруппировкаНоменклатура = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаНоменклатура.Использование = Истина;
ГруппировкаПериод = ГруппировкаНоменклатура.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаПериод.Использование = Истина;
ПолеНоменклатура = ГруппировкаНоменклатура.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеНоменклатура.Использование = Истина;
ПолеНоменклатура.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
ПолеПериод = ГруппировкаПериод.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеПериод.Использование = Истина;
ПолеПериод.Поле = Новый ПолеКомпоновкиДанных("Период");
ВыбранныеПоляДляНоменклатуры = ГруппировкаНоменклатура.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ВыбранныеПоляДляНоменклатуры.Использование = Истина;
ПорядокДляНоменклатуры = ГруппировкаНоменклатура.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
ПорядокДляНоменклатуры.Использование = Истина;
ВыбранныеПоляДляПериода = ГруппировкаПериод.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ВыбранныеПоляДляПериода.Использование = Истина;
ПорядокДляПериода = ГруппировкаПериод.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
ПорядокДляПериода.Использование = Истина;
ВыбранныеПоля = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранныеПоля.Использование = Истина;
ВыбранныеПоля.Заголовок = "Цена";
ВыбранныеПоля.Поле = Новый ПолеКомпоновкиДанных("Цена");
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("Заголовок","Цены комплектующих");
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("МакетОформления","Зеленый");
//Настройки.ПараметрыВывода.УстановитьЗначениеПараметра ("РасположениеПолейГруппировки", РасположениеПолейГруппировкиКомпоновкиДанных.Вместе);
///////////////////////////////////////////////////
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
//формирование макета компоновки данных с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//В макет компоновки передаются СхемаКомпоновкиДанных, ее Настройки и
//ДанныеРасшифровки для заполнения информации о расшифровке
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, ДанныеРасшифровки);
//выполнение компоновки данных с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);
//очистка поля табличного документа - Результат
Результат.Очистить();
//Вывод результатов компоновки в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
|