Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамСистема компоновки данных

1С:Предприятие 8.2 /
Разработчикам /
Система компоновки данных

Оглавление

Создание настроек компоновки данных из встроенного языка

Добавление отбора

Добавление упорядочивания

Установка параметров вывода

Добавление условного оформления

Добавление группировки

Добавление детальных записей

Добавление диаграммы

Добавление таблицы

Пример

 

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

Добавление выбранного поля

Пример добавления выбранного поля:

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

В данном примере в список выбранных полей было добавлено поле КоличествоОстаток.

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

Пример:

  // Создадим группу полей, для того, чтобы выводить в ней склад в раздельных колонках. 
  ГруппаПолей = Настройки.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
  // Установим шапку группы полей. 
  ГруппаПолей.Заголовок = " Реквизиты  склада";
  // Укажем  размещение . 
  ГруппаПолей.Расположение = РасположениеПоляКомпоновкиДанных.Горизонтально;
  // Добавим выбранное поле в группу для вывода в отчет. 
  ВыбранноеПоле = ГруппаПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
  ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Склад");
  // Добавим выбранное поле  в группу для вывода в отчет. 
  ВыбранноеПоле = ГруппаПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
  ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Склад.Код");
  // Установим  заголовок  поля. 
  ВыбранноеПоле.Заголовок = "Код";

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

Добавление отбора

Пример добавления элемента отбора:

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

В данном примере в отчет добавлен элемент отбора с видом сравнения "В Группе".

В отбор можно добавлять сложные условия . Делается это при помощи групп элементов отбора.

Пример добавления группового условия:

 ГруппаЭлементовОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
 ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
 ЭлементОтбора = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
 ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоОстаток");
 ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
 ЭлементОтбора.ПравоеЗначение = 100;
 ЭлементОтбора = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
 ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоОстаток");
 ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
 ЭлементОтбора.ПравоеЗначение = 200;
 

В данном примере добавлено условие КоличествоОстаток >= 100 И КоличествоОстаток <=200.

Добавление упорядочивания

Пример добавления упорядочивания:

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

В данном примере показано добавление упорядочивания по полю КоличествоОстаток в убывающем порядке.

Установка параметров вывода

Пример установки параметров вывода:

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

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

Добавление условного оформления

Пример добавления условного оформления:

// Добавим условное оформление. 
ЭлементУсловногоОформления = Настройки.УсловноеОформление.Элементы.Добавить();
// Создадим условие оформления. 
ГруппаЭлементовОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ЭлементОтбора = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоОстаток");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
ЭлементОтбора.ПравоеЗначение = 100;
ЭлементОтбора = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоОстаток");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
ЭлементОтбора.ПравоеЗначение = 200;
// Укажем цвет. 
ЭлементОформления = ЭлементУсловногоОформления.Оформление.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ЦветТекста"));
ЭлементОформления.Использование = Истина;
ЭлементОформления.Значение = Новый Цвет(255, 0, 0);
// Укажем, что оформление нужно применять только к одному полю. 
ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток");


В данном примере добавлено оформление на поле КоличествоОстаток. Поле будет отображаться красным цветом, в случае если его значениебольше или равно 100 и меньше или равно 200.

Добавление группировки

Пример добавление группировки :

// Добавим новую  группировку  в  структуру отчета .
Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); 

// Укажем, по каким полям нужно группировать.
ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); 
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Номенклатура"); 

// Укажем тип иерархии.
ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Иерархия;

В данном примере добавлена группировка по полю Номенклатура с иерархией.

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

Пример добавления автополей в порядок и выбранные поля.

// Укажем, что поля, которые нужно выводить в группировке, система должна определять самостоятельно.
Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); 

// Укажем, что системе необходимо самостоятельно определять порядок, в котором выводить группировку.
Группировка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));

Добавление детальных записей

Детальные записи являются группировкой, в которой отсутствуют поля группировки.

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

// Добавим в отчет детальные записи, вложенные в группировку.
ДетальныеЗаписи = Группировка.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); 

// Укажем, что поля, которые нужно выводить в детальных записях, система должна определять самостоятельно.
ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); 

// Укажем, что системе необходимо самостоятельно определять порядок, в котором  выводить детальные записи .
ДетальныеЗаписи.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); 

// Добавим детальным записям оформление.
ЭлементУсловногоОформления = ДетальныеЗаписи.УсловноеОформление.Элементы.Добавить(); 
// Укажем наклонный шрифт.
ЭлеменОформления = ЭлементУсловногоОформления.Оформление.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Шрифт")); 
ЭлеменОформления.Использование = Истина; 
ЭлеменОформления.Значение = Новый Шрифт(,,, Истина);

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

Добавление диаграммы

Пример добавления диаграммы :

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

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

Добавление таблицы

Пример добавления таблицы :

// Добавим в отчет таблицу 
Таблица = Настройки.Структура.Добавить(Тип("ТаблицаКомпоновкиДанных"));
// Добавим в таблицу строку 
Строка = Таблица.Строки.Добавить();
// Укажем, что система сама должна определять, какие поля нужно выводить в группировке 
Строка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
// Укажем, что системе необходимо самостоятельно определять порядок, в котором выводить группировку 
Строка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
// Укажем, по какому полю нужно группировать 
ПолеГруппировки = Строка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
// Добавим в таблицу колонку 
Колонка = Таблица.Колонки.Добавить();
// Укажем, что система сама должна определять, какие поля нужно выводить в группировке 
Колонка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
// Укажем, что системе необходимо самостоятельно определять порядок, в котором выводить группировку 
Колонка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
// Укажем, по какому полю нужно группировать 
ПолеГруппировки = Колонка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Склад");

В данном примере в отчет добавлена таблица, в таблице в строках выводится группировка по полю Номенклатура, а в колонках выводится группировка по полю Склад.

Пример

Приведенный в данной статье пример можно посмотреть во внешнем отчете ПримерПрограммнойРаботыСНастройкамиКомпоновкиДанных, который можно найти в каталоге C:ItsEXEExtRepsSamples8

Вы можете установить их на компьютер прямо сейчас

Копировать

Данный внешний отчет работает на конфигурации "Примеры 8.1".


Нас находят: 1с 8 2 группавыбранныхполейкомпоновкиданных, 1с ЭлементОтбораКомпоновкиДанных скрыть из быстрых настроек, вложенные таблицы 1с 8 2 выбранные поля, ПользовательскиеНастройкиКомпоновкиДанных Элементы Добавить(Тип(ГруппировкаКомпоновкиДанных)), !(типГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных ГруппаИЛИ;), Элемент Результата Компоновки Данных, работа с системой компоновки данных из встроенного языка, почему не выводятся значения полей группировок в компоновке данных, как добавить элемент отбора компоновки данных, ГруппировкаКомпоновкиДанных УсловноеОформление


Подписка на новости RSS     Добавьте в закладки Google fusion     Мы в Google+    

 

Мы ВКонтакте

 

Мы на Facebook