Автор: Дмитрий   Дата: 2018-07-11 00:00:00

Результат работы системы компоновки данных в дерево значений 1С

Задача вывести результат работы СКД в дерево значений.

1. Создаем обработку

2. Добавляем макет. Тип макета: Схема компоновки данных.

Макет СКД

3. В макете пишем простой запрос.

ВЫБРАТЬ
	Номенклатура.Ссылка КАК Ссылка
ИЗ
	Справочник.Номенклатура КАК Номенклатура

УПОРЯДОЧИТЬ ПО
	Ссылка ИЕРАРХИЯ

4. Вкладка Настройки. Добавим Новая группировка. Значение Поля оставим не заполненым. Тип: Без иерархии.

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

Группировка

Детальные записи

5. Добавляем новую форму. Размещаем дерево значений ДЗЕ.

Дерево значений

6. В модуле формы:

Процедура КнопкаВыполнитьНажатие(Кнопка)
	// Вставить содержимое обработчика.
	СформироватьТаблицуЗначений(ДЗЕ);
	ЭлементыФормы.ДЗЕ.СоздатьКолонки();
КонецПроцедуры

7. В модуле объекта:

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

8. Результат:

Результат работы