Приветствую Вас ГостьВоскресенье, 19.05.2024, 02:02

Каталог статей


Программное заполнение настройки отчета

В качестве примера рассмотрим формирование отчета из объединения наборов данных, которые заполняются программно.

Набор данных 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");
    
    ПолеРесурса = СКД.ПоляИтога.Добавить();
    ПолеРесурса.ПутьКДанным = "Цена";
    ПолеРесурса.Выражение = "Сумма(Цена)";

    //////////////////////////////////////////////////

    Настройки = СКД .НастройкиПоУмолчанию;

    ГруппировкаНоменклатура = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    ГруппировкаНоменклатура.Использование = Истина;
    
    ГруппировкаПериод = ГруппировкаНоменклатура.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    ГруппировкаПериод.Использование = Истина;
    
    ПолеНоменклатура = ГруппировкаНоменклатура.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    ПолеНоменклатура.Использование = Истина;
    ПолеНоменклатура.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");

    ПолеПериод = ГруппировкаПериод.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    ПолеПериод.Использование = Истина;
    ПолеПериод.Поле = Новый ПолеКомпоновкиДанных("Период");

    ВыбранныеПоляДляНоменклатуры = ГруппировкаНоменклатура.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
    ВыбранныеПоляДляНоменклатуры.Использование = Истина;

    ПорядокДляНоменклатуры = ГруппировкаНоменклатура.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
    ПорядокДляНоменклатуры.Использование = Истина;
    
    ВыбранныеПоляДляПериода = ГруппировкаПериод.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
    ВыбранныеПоляДляПериода.Использование = Истина;

    ПорядокДляПериода = ГруппировкаПериод.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
    ПорядокДляПериода.Использование = Истина;
    
    ВыбранныеПоля = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
    ВыбранныеПоля.Использование = Истина;
    ВыбранныеПоля.Заголовок = "Цена";
    ВыбранныеПоля.Поле = Новый ПолеКомпоновкиДанных("Цена");

    Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("Заголовок","Цены комплектующих");
    Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("МакетОформления","Зеленый");
    //Настройки.ПараметрыВывода.УстановитьЗначениеПараметра ("РасположениеПолейГруппировки", РасположениеПолейГруппировкиКомпоновкиДанных.Вместе);

    ///////////////////////////////////////////////////

     ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

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

    //Вывод результатов компоновки в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Категория: СКД | Добавил: leshic (08.12.2021)
Просмотров: 466 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Категории раздела
СКД [48]
Регистры [7]
Формы [41]
Администрирование [35]
Запросы [10]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [29]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0