Меню

Компоновщик настроек 1с параметр



Программное добавление параметров в СКД

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

//1. Необходимо получить нужный макет СКД

//2. Проинициализировать компоновщик настроек.

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

//3. Установить параметры компоновщика настроек

номерПериода = 1;
Для Каждого стрПериод из спПериодов Цикл
ПараметрКомпоновки = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Добавить();
ПараметрКомпоновки.Параметр = Новый ПараметрКомпоновкиДанных(«парамПериодБюджетирования» + номерПериода);
ПараметрКомпоновки.Использование = Истина;
ПараметрКомпоновки.Значение = стрПериод;

номерПериода = номерПериода + 1;
КонецЦикла;

Ошибка при вызове метода контекста (Добавить)
ПараметрКомпоновки = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Добавить();
по причине:
Коллекция значений параметров не может изменять свой состав, так как она связана с доступными параметрами.

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  1с настройка времени блокировок

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример

Приведенный в данной статье пример можно посмотреть во внешнем отчете ПримерПрограммнойРаботыСНастройкамиКомпоновкиДанных, который можно найти в каталоге 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С

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Редактирование настроек для не основной схемы компоновки данных

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

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

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

В данном примере предполагается, что в переменной Схема находится схема компоновки данных.

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

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

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

В данном примере во временное хранилище помещается схема компоновки данных, находящаяся в переменной Схема .

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

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

Источник

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

also Что-то вроде FAQ Отзывов (11) В закладки

О рубрике

Данный цикл статей, по сути, будет обычным FAQ по вопросам СКД. Здесь вы найдете ответы на самые часто задаваемые вопросы по компоновке. Думаю, данный раздел будет очень полезным.

Естественно, первым вопросом, на который мы дадим ответ, будет тот, что указан в заголовке. Этот вопрос задавался на 1с-ных форумах миллионы раз, но новички упорно спрашивают вновь и вновь. Так зафиксируем же ответ, и будем кидаться в новичков этой ссылкой.

Как же установить параметр в СКД программно

Устанавливать параметр будем в ПриОткрытии:

Нет похожих статей

11 Коммент.

Не помешали бы пояснения типа что это за объект “КомпоновщикНастроек”, а что это за свойство у него такое “Настройки” и т.д.

А про синтакс-помощник слышали?? Выделите “КомпоновщикНастроек” в коде программы и нажмите . И будет описание объекта, его методов и свойств.. Читайте …

1. “Устанавливать параметр будем в ПриОткрытии:” при открытии чего? если формы то это событие не срабатывает, срабатывает ПередОткрытием()
2. И даже если этот програмный код вставить при обработке события ПередОткрытием() выкинет с ошибкой “на 2ю строку.
*8.1

Значение не является значение объектного типа (Использование)

Спасибо! Чудесно отработало на 8.2, немного видоизменил (модуль объекта):

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(“Город”);
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(“Город”);

ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(“Ответственный”);
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение = ПараметрыСеанса.ТекущийПользователь;

Вот так работает. Фиксированные настройки видит, Настройки – нет. Вероятно, надо почитать мануал, но решительно нет времени. КомпоновщикНастроек Отчету присваивать нет нужды.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(“Город”);
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(“Город”);
ПараметрСКДФикс = КомпоновщикНастроек.ФиксированныеНастройки.ПараметрыДанных.Элементы.Найти(“Город”);
ПараметрСКДФикс.Использование = Истина;
ПараметрСКДФикс.Значение = ПараметрСКД.Значение;

ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(“Ответственный”);
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение = ПараметрыСеанса.ТекущийПользователь;
ПараметрСКДФикс = КомпоновщикНастроек.ФиксированныеНастройки.ПараметрыДанных.Элементы.Найти(“Ответственный”);
ПараметрСКДФикс.Использование = Истина;
ПараметрСКДФикс.Значение = ПараметрСКД.Значение;

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

Источник

Настройка техники © 2022
Внимание! Информация, опубликованная на сайте, носит исключительно ознакомительный характер и не является рекомендацией к применению.

Adblock
detector