Меню

Компоновщикнастроек настройки параметрыданных найтизначениепараметра



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Настройка чувствительности сигнализации starline a94

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

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

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

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

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

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

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

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

Пример

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

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

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

Источник

Как программно Установить значения Параметров для отчета СКД?

Например у отчет есть следующие параметры:

Программно их задать можно следующим образом:
Код 1C v 8.х

Есть параметр, предопределенное при открытии отчета каждый раз. Как его правильно указать в СКД?
Можно делать так:
Код 1C v 8.х
или
Код 1C v 8.х

Для УП
Код 1C v 8.2 УП

Похожие FAQ

Еще в этой же категории

Ключевые слова и Изображения

Слова упорядочены по частоте использования в тексте

Изображения

madmonk
27.05.2016 12:48
Комментарий: 3

Спасибо за СтандартнаяОбработка = Ложь; для УП! Целый час бился, не мог понять почему настройки слетают.

prodines
28.01.2014 14:22
Комментарий: 2

Это ещё не всё. Если параметр — массив, то в СКД его надо вводить списком значений, а не массивом:

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

Efiop
04.04.2011 14:45
Комментарий: 1

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

Источник

Подсказки «1с»

Примеры по программированию в 1с 7.7, 8.1, 8.2

пятница, 14 февраля 2014 г.

Пример: Програмная установка параметров СКД

Этот пример обработки, «КомпоновщикНастроек» — это реквизит обработки — Тип «КомпоновщикНастроекКомпоновкиДанных»

Функция Сформировать(МассивОбъектов)
Ссылка = МассивОбъектов[0];
ТабДок = Новый ТабличныйДокумент;
Схема = ПолучитьМакет(«Схема»);

Нашли = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«НаДату»));
Если Нашли<>Неопределено Тогда
Нашли.Использование=Истина;
Нашли.Значение = Ссылка.Дата;
КонецЕсли;

Нашли = КомпоновщикНастроек.Настройки.Отбор.Элементы[0];
Если Нашли<>Неопределено Тогда
Нашли.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
Нашли.Использование=Истина;
Нашли.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«Ссылка»);
Нашли.ПравоеЗначение = Ссылка;
КонецЕсли;

Компановщик = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпановки = Компановщик.Выполнить(Схема,Настройки);

Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(МакетКомпановки);

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

ТабДок.ТолькоПросмотр=Истина;
ТабДок.ОтображатьЗаголовки=Ложь;
ТабДок.ОтображатьСетку=Ложь;

Источник

Мои заметки по 1с

Собственные наработки и набитые шишки в моей практике по программированию в 1С.

Страницы

понедельник, 13 октября 2014 г.

Программный вывод отчета и установка настроек

Программный вывод отчета СКД и установка настроек

Вывод отчета в Таблицу значений или Дерево значений:

Настройки = КомпоновщикНастроек . ПолучитьНастройки ();

// Отключение вывода общих итогов
Настройки . ПараметрыВывода . УстановитьЗначениеПараметра ( «ГоризонтальноеРасположениеОбщихИтогов» , РасположениеИтоговКомпоновкиДанных . Нет );
Настройки . ПараметрыВывода . УстановитьЗначениеПараметра ( «ВертикальноеРасположениеОбщихИтогов» , РасположениеИтоговКомпоновкиДанных . Нет );

// Компоновка макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ;
Макет = КомпоновщикМакета . Выполнить ( СхемаКомпоновкиДанных , Настройки . Тип ( «ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений» ));

// Инициализация процессора компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновки . Инициализировать ( Макет );

// Дерево значений, в которую будет получен результат
Результат = Новый ДеревоЗначений ;

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

ПроцессорВывода . Вывести ( ПроцессорКомпоновки , Истина);

Вывод отчета в табличный документ:

ЭтотОбъект = РеквизитФормыВЗначение ( «Объект» );
СхемаКомпоновкиПродажи = ЭтотОбъект . ПолучитьСхемуПродажи ();

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ;
Макет = КомпоновщикМакета . Выполнить ( СхемаКомпоновкиПродажи , КомпоновщикНастроекПродаж . ПолучитьНастройки (),
,, Тип ( «ГенераторМакетаКомпоновкиДанных» ));

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновки . Инициализировать ( Макет );

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

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

ПроцессорВывода . Вывести ( ПроцессорКомпоновки , Истина);

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

ПериодОтчета . ДатаНачала = НачалоДня ( НачалоДня ( ТекущаяДата ()) — ( 44 * 3600 * 24 ));
ПериодОтчета . ДатаОкончания = КонецДня ( ТекущаяДата ());

//устанавливаем параметры тербования выгрузки по периоду 45 дней
Отчет . КомпоновщикНастроек . Настройки . ПараметрыДанных . УстановитьЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «ПериодОтчета» ), ПериодОтчета );

Пример установки пользовательской настройки:

Важно, пользовательская настройка доступна только в ПриОткрытии

ПериодОтчета = Новый СтандартныйПериод ;
ПериодОтчета . ДатаНачала = НачалоДня ( НачалоДня ( ТекущаяДата ()) — ( 44 * 3600 * 24 ));
ПериодОтчета . ДатаОкончания = КонецДня ( ТекущаяДата ());

ИдентификаторПользНастройки = Отчет . КомпоновщикНастроек . ПользовательскиеНастройки . ПолучитьИдентификаторПоОбъекту ( Отчет . КомпоновщикНастроек . Настройки . ПараметрыДанных . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «ПериодОтчета» )));
ПараметрПользовНастройки = Отчет . КомпоновщикНастроек . ПользовательскиеНастройки . Элементы . Найти ( ИдентификаторПользНастройки );

Если Не ПараметрПользовНастройки = Неопределено Тогда

ПараметрПользовНастройки . Значение = ПериодОтчета ;

Еще один пример (Важно, пользовательская настройка доступна только в ПриОткрытии):

ПриОткрытии — это клиентское событие.

&НаСервере
Процедура СписокПриЗагрузкеПользовательскихНастроекНаСервере ( Элемент , Настройки )

ПользовательскийОтбор = Список . КомпоновщикНастроек . ПользовательскиеНастройки . Элементы . Найти ( Список . КомпоновщикНастроек . Настройки . Отбор . ИдентификаторПользовательскойНастройки );
ПользовательскийОтбор . Элементы . Очистить ();

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

ЭлементОтбора . РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных . БыстрыйДоступ ;

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

Процедура УстановитьНовыйШаблонСКД ( ИмяМакета )

//сохраняем значения предыдущих параметров
Настройки = КомпоновщикНастроек . ПолучитьНастройки ();
ПериодОтчета = Настройки . ПараметрыДанных . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «ПериодОтчета» ));
Поставщик = Настройки . ПараметрыДанных . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «Поставщик» ));
ДополнительныйРеквизит = Настройки . ПараметрыДанных . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «ДополнительныйРеквизит» ));

//обновляем схему и устанавливаем новые настройки
СхемаКомпоновкиДанных = ПолучитьМакет ( ИмяМакета );
КомпоновщикНастроек . ЗагрузитьНастройки ( СхемаКомпоновкиДанных . НастройкиПоУмолчанию );
КомпоновщикНастроек . Восстановить ();

//устанавливаем параметры которые были указаны пользователем
КомпоновщикНастроек . Настройки . ПараметрыДанных . УстановитьЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «ПериодОтчета» ), ПериодОтчета . Значение );
КомпоновщикНастроек . Настройки . ПараметрыДанных . УстановитьЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «Поставщик» ), Поставщик . Значение );
КомпоновщикНастроек . Настройки . ПараметрыДанных . УстановитьЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «ДополнительныйРеквизит» ), ДополнительныйРеквизит . Значение );

Процедура ПриКомпоновкеРезультата ( ДокументРезультат , ДанныеРасшифровки , СтандартнаяОбработка )

МассивОтчетов = Новый Массив ();
МассивОтчетов . Добавить (Новый Структура ( «ИмяОтчета, ИмяЛиста, ТаблицаВывода» , «КаталогТовары» , «FS_Heinz_Products» , Новый ТабличныйДокумент ));
МассивОтчетов . Добавить (Новый Структура ( «ИмяОтчета, ИмяЛиста, ТаблицаВывода» , «ТРТ» , «FS_Heinz_Outlets» , Новый ТабличныйДокумент ));
МассивОтчетов . Добавить (Новый Структура ( «ИмяОтчета, ИмяЛиста, ТаблицаВывода» , «ПродажиОсновные» , «FS_Heinz_Dispatch» , Новый ТабличныйДокумент ));
МассивОтчетов . Добавить (Новый Структура ( «ИмяОтчета, ИмяЛиста, ТаблицаВывода» , «ОстаткиПоПериодам» , «FS_Heinz_Stock» , Новый ТабличныйДокумент ));

Для Каждого ВидОтчета Из МассивОтчетов Цикл

УстановитьНовыйШаблонСКД ( ВидОтчета . ИмяОтчета );

Если ОтображатьРезультатНаФорме Тогда

//вывод отчета на форму
Настройки = КомпоновщикНастроек . ПолучитьНастройки ();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ;
Макет = КомпоновщикМакета . Выполнить ( СхемаКомпоновкиДанных , Настройки . Тип ( «ГенераторМакетаКомпоновкиДанных» ));

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновки . Инициализировать ( Макет );

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

ПроцессорВывода . УстановитьДокумент ( ДокументРезультат );

ПроцессорВывода . Вывести ( ПроцессорКомпоновки , Истина);

//обработка вывода в служебные таблицы
Настройки = КомпоновщикНастроек . ПолучитьНастройки ();

// Отключение вывода заголовка, параметров и отборов
Настройки . ПараметрыВывода . УстановитьЗначениеПараметра ( «ВыводитьЗаголовок» , ТипВыводаТекстаКомпоновкиДанных . НеВыводить );
Настройки . ПараметрыВывода . УстановитьЗначениеПараметра ( «ВыводитьПараметрыДанных» , ТипВыводаТекстаКомпоновкиДанных . НеВыводить );
Настройки . ПараметрыВывода . УстановитьЗначениеПараметра ( «ВыводитьОтбор» , ТипВыводаТекстаКомпоновкиДанных . НеВыводить );

// Отключение вывода общих итогов
Настройки . ПараметрыВывода . УстановитьЗначениеПараметра ( «ГоризонтальноеРасположениеОбщихИтогов» , РасположениеИтоговКомпоновкиДанных . Нет );
Настройки . ПараметрыВывода . УстановитьЗначениеПараметра ( «ВертикальноеРасположениеОбщихИтогов» , РасположениеИтоговКомпоновкиДанных . Нет );

//вывод отчета в Таблицу вывода
Если ВидОтчета . ИмяОтчета = «ОстаткиПоПериодам» Тогда

// Компоновка макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ;
Макет = КомпоновщикМакета . Выполнить ( СхемаКомпоновкиДанных , Настройки . Тип ( «ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений» ));

// Инициализация процессора компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновки . Инициализировать ( Макет );

// Дерево значений, в которую будет получен результат
Результат = Новый ДеревоЗначений ;

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

ПроцессорВывода . Вывести ( ПроцессорКомпоновки , Истина);

ТаблицаВывода = ВидОтчета . ТаблицаВывода ;
ТаблицаВывода . Область ( «R1C1» ). Текст = «Дата» ;
ТаблицаВывода . Область ( «R1C2» ). Текст = «Фирма» ;
ТаблицаВывода . Область ( «R1C3» ). Текст = «Артикул товара» ;
ТаблицаВывода . Область ( «R1C4» ). Текст = «Код склада» ;
ТаблицаВывода . Область ( «R1C5» ). Текст = «Кол.» ;
ТаблицаВывода . Область ( «R1C1» ). ШиринаКолонки = 12 ;
ТаблицаВывода . Область ( «R1C2» ). ШиринаКолонки = 12 ;
ТаблицаВывода . Область ( «R1C3» ). ШиринаКолонки = 14 ;
ТаблицаВывода . Область ( «R1C4» ). ШиринаКолонки = 17 ;
ТаблицаВывода . Область ( «R1C5» ). ШиринаКолонки = 12 ;

СчетчикСтроки = 1 ;
Для Каждого СтрокиГруппировкиПериоды Из Результат . Строки Цикл //->группировка «»

Для Каждого СтрокиДетали Из СтрокиГруппировкиПериоды . Строки Цикл

СчетчикСтроки = СчетчикСтроки + 1 ;
ТаблицаВывода . Область ( «R» + Формат ( СчетчикСтроки , «ЧГ=» )+ «C1» ). Текст = Формат ( СтрокиГруппировкиПериоды . Дата , «ДФ=dd.MM.yyyy» );
ТаблицаВывода . Область ( «R» + Формат ( СчетчикСтроки , «ЧГ=» )+ «C2» ). Текст = СтрокиДетали . Фирма ;
ТаблицаВывода . Область ( «R» + Формат ( СчетчикСтроки , «ЧГ=» )+ «C3» ). Текст = СтрокиДетали . Код ;
ТаблицаВывода . Область ( «R» + Формат ( СчетчикСтроки , «ЧГ=» )+ «C4» ). Текст = СтрокиДетали . КодСклада ;
ТаблицаВывода . Область ( «R» + Формат ( СчетчикСтроки , «ЧГ=» )+ «C5» ). Текст = СтрокиДетали . ВНаличииКонечныйОстаток ;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ;
Макет = КомпоновщикМакета . Выполнить ( СхемаКомпоновкиДанных , Настройки . Тип ( «ГенераторМакетаКомпоновкиДанных» ));

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновки . Инициализировать ( Макет );

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

ПроцессорВывода . УстановитьДокумент ( ВидОтчета . ТаблицаВывода );

ПроцессорВывода . Вывести ( ПроцессорКомпоновки , Истина);

АдресХранилища = ПоместитьВоВременноеХранилище ( МассивОтчетов ); //поместить результат для обработки на клиенте

МассивОтчетов = Неопределено; //разрушим объект

Источник

Adblock
detector