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

Реквизит типа КомпоновщикНастроекКомпоновкиДанных

При открытии формы таблица Пользовательских настроек пуста.

Подскажите пожалуйста, как связать

Спасибо за подсказки.

Воспользовался первой подсказкой, для подключения непосредственно.

Макет правильный, он работает в отчете.
При открытии формы загружаю пользовательские настройки:

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

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

Теперь таблица появляется, но при открытии Выбранные поля все поля отмечены красным крестиком и новые не добавляются.

СКД = Справочники.ЭтикеткиИЦенники.ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
АдресСхемы = ПоместитьВоВременноеХранилище(СКД, УникальныйИдентификатор);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));
КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);

Первый вариант тоже работает:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СКД = Справочники.ЭтикеткиИЦенники.ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
АдресСхемы = ПоместитьВоВременноеХранилище(СКД, УникальныйИдентификатор);
КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));

Источник

Программная работа с КомпоновщикНастроекКомпоновкиДанных

Всем доброго времени суток!

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

В таблице отбора компоновщика настроек устанавливаем нужный отбор (или не устанавливаем, на усмотрение пользователя).

Для простоты в настоящий момент в схеме только один элемент группировки (пусть будет Ссылка, выборка из списка документов)

Привожу тестовый код.

ВЫБРАТЬ
*
ИЗ
Документ.РеализацияТоваровУслуг
ГДЕ
Ссылка = &Ссылка

// Код инициирующий КомпоновщикНастроекКомпоновкиДанных опускаю, там все нормально.

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

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

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

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

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

Как не кручу, все равно выводит пустую таблицу.
Где засада?

Источник

УФ: Использование отбора настройки СКД в 1С

Реквизит формы с типом КомпоновщикНастроекКомпоновкиДанных

Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti →

Рассмотрим задачу, когда на форме нужно получить значения отбора (вид сравнения и значения сравнения) для дальнейшего использования.

Рассмотрим на примере. На форму объекта внешней обработки добавляем реквизит НастройкиСКД с типом КомпоновщикНастроекКомпоновкиДанных:

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

Добавление реквизита с типом КомпоновщикНастроекКомпоновкиДанных

Раскрываем реквизит НастройкиСКД и перетаскиваем на форму в раздел Элементы НастройкиСКД.Настройки.Отбор.

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

Таким образом, в пользовательском режиме на форме появится таблица для определения отборов, настроенных в макете МакетСКД с типом Схема компоновки данных со всеми доступными значениями видов сравнения (В списке, В группе, Равно и т.д.).

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример

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

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

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

Источник

Как в реквизитах справочника сохранить данные отбора. Управляемые формы.

Добрый день.
Управляемые формы.
Добавляю реквизит формы с типом КомпоновщикНастроекКомпоновкиДанных.
Оттуда из настроек перетягиваю на форму отбор.
В событии «При создании на сервере» я в этот отбор вставляю нужные мне поля из макета. Все отлично.
Но как мне теперь выбранные пользователем данные отбора сохранить и потом использовать в других объектах?

У реквизитов элемента справочника нет типа «Компоновщик настроек компоновки данных», как быть?
возможно у кого-то есть идеи?

(2) Добавил в список реквизитов справочника реквизит ДанныеОтбораР с типом Хранилище Значения.
В событии формы «при создании на сервере» написал следующий код:

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

ЭлементСправочника = ОБъект.Ссылка.ПолучитьОбъект();
ХранилищеЗначения = ЭлементСправочника.ДанныеОтбораР;
Если ХранилищеЗначения.Получить() = неопределено
тогда
//Получим схему из обработки
ОбъектТМП = РеквизитФормыВЗначение(«Объект»);
СхемаКомпоновки = ОбъектТМП.ПолучитьМакет(«СхемаКомпоновкиДляОтбора»);

//Берем настройки по умолчанию из схемы
НастройкиКомпоновки = СхемаКомпоновки.НастройкиПоУмолчанию;

//Инициализируем наш отбор
Адрес = Новый УникальныйИдентификатор();
URLСхемы = ПоместитьВоВременноеХранилище(СхемаКомпоновки, Адрес);
ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы);

В событии «При записи на сервере» добавил это, чтобы данные сохранялись в реквизит. Но что-то не работает. Ошибки никакой не выдает, отладчик по всем полям проходит. Что я не так сделал?

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *