1С:Предприятие 8.2 /
Разработчикам /
Система компоновки данных
Создание настроек компоновки данных из встроенного языка
Добавление условного оформления
В данной статье показаны примеры того, каким образом можно добавлять некоторые элементы настроек компоновки данных при помощи встроенного языка.
Добавление выбранного поля
Пример добавления выбранного поля:
// Добавим выбранное поле для вывода в отчет. ВыбранноеПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных(" КоличествоОстаток ");
В данном примере в список выбранных полей было добавлено поле КоличествоОстаток.
Для указания взаимного расположения полей в список выбранных полей можно добавить группу выбранных полей и поместить выбранные поля в нее.
Пример:
// Создадим группу полей, для того, чтобы выводить в ней склад в раздельных колонках. ГруппаПолей = Настройки.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); // Установим шапку группы полей. ГруппаПолей.Заголовок = " Реквизиты склада"; // Укажем размещение . ГруппаПолей.Расположение = РасположениеПоляКомпоновкиДанных.Горизонтально; // Добавим выбранное поле в группу для вывода в отчет. ВыбранноеПоле = ГруппаПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Склад"); // Добавим выбранное поле в группу для вывода в отчет. ВыбранноеПоле = ГруппаПолей.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Склад.Код"); // Установим заголовок поля. ВыбранноеПоле.Заголовок = "Код";
В данном примере создана группа выбранных полей, в нее помещено два поля. Группе указано, каким образом располагать поля, вложенные в нее. Для поля Склад.Код установлен заголовок.
Добавление отбора
Пример добавления элемента отбора:
// Добавим отбор на группу номенклатуры . ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип(" ЭлементОтбораКомпоновкиДанных ")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(" Номенклатура "); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии; ЭлементОтбора.ПравоеЗначение = ГруппаНоменклатуры;
В данном примере в отчет добавлен элемент отбора с видом сравнения "В Группе".
В отбор можно добавлять сложные условия. Делается это при помощи групп элементов отбора.
Пример добавления группового условия:
ГруппаЭлементовОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ЭлементОтбора = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоОстаток"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора.ПравоеЗначение = 100; ЭлементОтбора = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоОстаток"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно; ЭлементОтбора.ПравоеЗначение = 200;
В данном примере добавлено условие КоличествоОстаток >= 100 И КоличествоОстаток <=200.
Добавление упорядочивания
Пример добавления упорядочивания:
// Добавим упорядочивание. ЭлементПорядка = Настройки.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных")); ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток"); ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
В данном примере показано добавление упорядочивания по полю КоличествоОстаток в убывающем порядке.
Установка параметров вывода
Пример установки параметров вывода:
// Установим макет оформления . ЭлементОформления = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("МакетОформления")); ЭлементОформления.Использование = Истина; ЭлементОформления.Значение = "Море"; // Укажем, что отбор не нужно выводить в отчет. ЭлементОформления = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор")); ЭлементОформления.Использование = Истина; ЭлементОформления.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить;
В данном примере отчету установлен макет оформления и указано, что выводить отбор в результат отчета не нужно.
Добавление условного оформления
Пример добавления условного оформления:
// Добавим условное оформление. ЭлементУсловногоОформления = Настройки.УсловноеОформление.Элементы.Добавить(); // Создадим условие оформления. ГруппаЭлементовОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ЭлементОтбора = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоОстаток"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора.ПравоеЗначение = 100; ЭлементОтбора = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоОстаток"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно; ЭлементОтбора.ПравоеЗначение = 200; // Укажем цвет. ЭлементОформления = ЭлементУсловногоОформления.Оформление.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ЦветТекста")); ЭлементОформления.Использование = Истина; ЭлементОформления.Значение = Новый Цвет(255, 0, 0); // Укажем, что оформление нужно применять только к одному полю. ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток");
В данном примере добавлено оформление на поле КоличествоОстаток. Поле будет отображаться красным цветом, в случае если его значениебольше или равно 100 и меньше или равно 200.
Добавление группировки
Пример добавление группировки :
// Добавим новую группировку в структуру отчета . Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); // Укажем, по каким полям нужно группировать. ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(" Номенклатура "); // Укажем тип иерархии. ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Иерархия;
В данном примере добавлена группировка по полю Номенклатура с иерархией.
Заметим, что группировке нужно указать, какие поля в ней нужно выводить, как упорядочивать группировку. Если нужно, чтобы состав выводимых полей и полей упорядочивания определялся системой самостоятельно на основании полей группировки и вышестоящих группировок и отчета, то нужно добавить в выбранные поля и поля упорядочивания авто поля.
Пример добавления автополей в порядок и выбранные поля.
// Укажем, что поля, которые нужно выводить в группировке, система должна определять самостоятельно. Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); // Укажем, что системе необходимо самостоятельно определять порядок, в котором выводить группировку. Группировка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
Добавление детальных записей
Детальные записи являются группировкой, в которой отсутствуют поля группировки.
Пример добавления детальных записей, вложенных в группировку:
// Добавим в отчет детальные записи, вложенные в группировку. ДетальныеЗаписи = Группировка.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); // Укажем, что поля, которые нужно выводить в детальных записях, система должна определять самостоятельно. ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); // Укажем, что системе необходимо самостоятельно определять порядок, в котором выводить детальные записи . ДетальныеЗаписи.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); // Добавим детальным записям оформление. ЭлементУсловногоОформления = ДетальныеЗаписи.УсловноеОформление.Элементы.Добавить(); // Укажем наклонный шрифт. ЭлеменОформления = ЭлементУсловногоОформления.Оформление.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Шрифт")); ЭлеменОформления.Использование = Истина; ЭлеменОформления.Значение = Новый Шрифт(,,, Истина);
В данном примере детальные записи добавлены в группировку, в детальные записи добавлены автополя выбора и порядка, указано условное оформление, которое будет действовать в этих детальных записях.
Добавление диаграммы
Пример добавления диаграммы :
// Добавим в отчет диаграмму . Диаграмма = Настройки.Структура.Добавить(Тип("ДиаграммаКомпоновкиДанных")); // Установим заголовок диаграммы ПараметрВывода = Диаграмма.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Заголовок")); ПараметрВывода.Значение = "Остатки по складам "; ПараметрВывода.Использование = Истина; // Укажем, какой ресурс нужно выводить в диаграмме ВыбранноеПоле = Диаграмма.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток"); // Добавим в диаграмму серию. Серия = Диаграмма.Серии.Добавить(); // Укажем, по какому полю нужно группировать в серии. ПолеГруппировки = Серия.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Склад"); // Укажем, что система сама должна определять, какие поля нужно выводить в серии. Серия.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); // Укажем каким образом нужно упорядочивать данные серии ЭлементПорядка = Серия.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных")); ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Склад");
В данном примере в отчет добавлена диаграмма, в диаграмму добавлена серия, в серии указано , каким образом ее нужно упорядочивать.
Добавление таблицы
Пример добавления таблицы:
// Добавим в отчет таблицу Таблица = Настройки.Структура.Добавить(Тип("ТаблицаКомпоновкиДанных")); // Добавим в таблицу строку Строка = Таблица.Строки.Добавить(); // Укажем, что система сама должна определять, какие поля нужно выводить в группировке Строка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); // Укажем, что системе необходимо самостоятельно определять порядок, в котором выводить группировку Строка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); // Укажем, по какому полю нужно группировать ПолеГруппировки = Строка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(" Номенклатура "); // Добавим в таблицу колонку Колонка = Таблица.Колонки.Добавить(); // Укажем, что система сама должна определять, какие поля нужно выводить в группировке Колонка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); // Укажем, что системе необходимо самостоятельно определять порядок, в котором выводить группировку Колонка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); // Укажем, по какому полю нужно группировать ПолеГруппировки = Колонка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Склад");
В данном примере в отчет добавлена таблица, в таблице в строках выводится группировка по полю Номенклатура, а в колонках выводится группировка по полю Склад.
Пример
Приведенный в данной статье пример можно посмотреть во внешнем отчете ПримерПрограммнойРаботыСНастройкамиКомпоновкиДанных, который можно найти в каталоге C:ItsEXEExtRepsSamples8
Вы можете установить их на компьютер прямо сейчас
Данный внешний отчет работает на конфигурации "Примеры 8.1".
Другие материалы по теме:
количествоостаток, элементотборакомпоновкиданных, группировка, выбор, заголовок, истина, группировки, элементы, оформление, буфер обмена, копировать, отбор, обмен, добавить, использование, номенклатура, настройки, пример, значение, порядок, склад, отчет
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Система компоновки данных
Другие материалы по теме:
Использование условного оформления в системе компоновки данных
Общая характеристика стандартных отчетов
Работа с расшифровкой в управляемом приложении
Нас находят: ПользовательскиеНастройкиКомпоновкиДанных, https://stimul kiev ua/materialy htm?a=sozdanie_nastroek_komponovki_dannykh_iz_vstroennogo_yazyka, работа с ПользовательскиеНастройкиКомпоновкиДанных, ПользовательскиеНастройкиКомпоновкиДанных Элементы Добавить(Тип(ГруппировкаКомпоновкиДанных)), вложенные таблицы 1с 8 2 выбранные поля, 1с ЭлементОтбораКомпоновкиДанных скрыть из быстрых настроек, 1с 8 2 группавыбранныхполейкомпоновкиданных, Разработка сложных отчетов в «1С:Предприятии 8 3» Система компоновки данных Украина, группавыбранныхполейкомпоновкиданных добавить, Элементы Добавить(Тип(ПолеГруппировкиКомпоновкиДанных))
Мы на Facebook