Меню

Компоновщик настроек компоновки данных добавить отбор



v8: Как установить программно отбор СКД?

IKSparrow
25.10.2012 13:44
Прочитано: 39067
Код следующий:

Мой отбор ни фига не учитывается. Что не так делаю?

Yandex
Возможно, вас также заинтересует
Mokey
25.10.2012 13:58
Ответ № 1
ВидОбъекта.ПравоеЗначение = «Справочник.ИсторияПользователей»;
вот это вот что такое? тут должно быть значение вида объекта, т.е. ссылка на элемент справочника.
IKSparrow
25.10.2012 14:01
Ответ № 2
(1) Нееет, там тип строка. Т.ё. не сам элемент какого-то справочника, а наименование справочника. Вернее наименование его типа, как оно записано в определённом регистре.
Gnost
25.10.2012 16:00
Ответ № 3
Пользователь @Monkey правильно вам говорит

ЭлементОтбораКомпоновкиДанных.ПравоеЗначение (DataCompositionFilterItem.RightValue)
ЭлементОтбораКомпоновкиДанных (DataCompositionFilterItem)
ПравоеЗначение (RightValue)
Использование:

Чтение и запись.
Описание:

Содержит правое значение элемента отбора.

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

Тип правого значения может быть полем, остальные варианты зависят от левого значения. Это может быть его тип левого значения, либо, если слева выбрано поле, может использоваться тип поля.

Источник

Профессия — 1С

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

рубрики: СКД | Дата: 15 ноября, 2016
Скачать обработку с примерами из статьи: SKD+DCSC.epf
Платформа: 8.3; Тип формы: управляемая.

В этой статье рассмотрим как можно связать между собой схему компоновки данных с
компоновщиком настроек компоновки данных. Как обычно рассмотрим это на простейшем
практическом примере.

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

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

Реализовывать ее будем на управляемых формах. В общем вот так должен выглядеть итоговый вариант
обработки в режиме 1С:Предприятия после установки отборов и заполнения табличной части.

А теперь подумаем как можно это реализовать.
Поскольку нам необходимы отборы, то сразу напрашивается использование схемы
компоновки данных. Поэтому создаем обработку и добавляем макет с типом
Схема компоновки данных и форму.

В схему компоновки данных вставляем вот такой запрос:

и настраиваем ее следующим образом

Переходим к проектированию формы.
Первым делом попробуем реализовать отбор. Добавляем реквизит формы и смотрим доступные
типы для него. Видим, что кроме типа КомпоновщикНастроекКомпоновкиДанных
у нас нет ничего более подходящего, чтобы реализовать отбор.

После выбора этого типа видим, что у него есть три подчиненных элемента. Нас
интересуют Настройки с типом НастройкиКомпоновкиДанных.
Раскрываем Настройки, находим в них Отбор, и перетаскиваем его
на форму.
Далее добавляем реквизит с типом ДеревоЗначений и создаем колонки согласно
схеме компоновки данных. Создание и заполнение дерева значений уже рассматривалось
в статье про дерево значений на форме.
В результате этих манипуляций получаем следующую картину

Теперь нам предстоит программно заполнить отбор из настроек компоновщика настроек
на основании отбора схемы компоновки данных. И потом реализовать заполнение дерева
значений с учетом этого отбора. Приведу сразу итоговый код, а потом уже его
прокомментирую.

В процедуре ПриСозданииНаСервере() у нас реализовано заполнение отбора
компоновщика настроек. В статье Вывод отчета СКД программно
тоже использовался компоновщик настроек. Но там все было гораздо проще, т.к. там
я рассматривал внешний отчет. И компоновщик настроек там присутствует по умолчанию.
А здесь мы имеем дело с обработкой. И здесь при инициализации компоновщика настроек
из схемы компоновки данных сталкиваемся с неочевидным моментом. Дело в том, что
схему компоновки данных надо предварительно поместить во временное хранилище с
помощью метода ПоместитьВоВременноеХранилище()
После установки нужных нам отборов, заполняем табличную часть с деревом значений.
Здесь стоит сказать пару слов про формирование макета компоновки данных. Вот про
эти три строчки кода

Как известно макет формируется на основании схемы компоновки данных и настроек
компоновки данных. Но поскольку отбор на форме у нас принадлежит не схеме компоновки,
а компоновщику настроек, то и настройки берем из компоновщика настроек, которые
впрочем как мы помним заполнялись ПриСозданииНаСервере() из настроек схемы компоновки.
Поэтому по структуре они идентичны, за исключением значений отбора. И последнее, что
хочется отметить, в методе Выполнить() при генерации макета необходимо
указать в качестве параметра Тип(«ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений»)

Один комментарий на «“Схема компоновки данных и компоновщик настроек”»

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример

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

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

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

Источник

Читайте также:  Настройка прокси для администратора
Adblock
detector