Люди добрые, прошу помощи, второй день ломаю голову и ничего на ум не приходит.
Нужно сформировать дерево значений из отчёта СКД Анализ начислений и удержаний, но вывод постоянно пустой. Вот код:

```1c
    СхемаКомпоновкиДанных = Отчеты.АнализНачисленийИУдержаний.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

    КомпоновщикНастроекДанныхОтчета = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроекДанныхОтчета.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных (СхемаКомпоновкиДанных));
    КомпоновщикНастроекДанныхОтчета.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Найти("РасчетныйЛисток").Настройки);

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

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

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

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

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

Код отрабатывает, структура отчета в дереве, но значения нулевые
---
А инициацию запросов механизма представлений кто делать будет?
https://infostart.ru/1c/articles/841337/

После строки

```1c
    СхемаКомпоновкиДанных = Отчеты.АнализНачисленийИУдержаний.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
```

Добавить

```1c
    ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеЗапросы(СхемаКомпоновкиДанных.НаборыДанных);
```

И еще разрешить использование внешних функций в вычисляемых полях, вместо

```1c
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, НаборыВнешнихДанных, ДанныеРасшифровки);
```

должно быть

```1c
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, НаборыВнешнихДанных, ДанныеРасшифровки, Истина);
```
---
а какая цель получения данных из СКД, не проще ли собрать нужный запрос и данные из него передать в дерево?
---
не до конца понимаю как собрать запрос зарплаты общий, сказали с скд скопировать, но там внешние наборы данных есть и в ошибку запрос падает, если сможешь подсказать как собрать, буду благодарен
---
а почему именно дерево, нельзя ли в рамках СКД реализовать что требуется? выводить информацию в том виде, который нужен
---
Нет, после этого мне нужно будет из этого дерева сформировать xml файл
---
В этом же коде сделайте вывод в табличный документ. Может статься что отчет реально пустой и взращивание дерева тут не причем.
---
Тут вот и вопрос, почему он пустой, что может быть не так
Проверяю формирование напрямую из Расчетного листка, всё формирует
---
А инициацию запросов механизма представлений кто делать будет?
https://infostart.ru/1c/articles/841337/

После строки

```1c
    СхемаКомпоновкиДанных = Отчеты.АнализНачисленийИУдержаний.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
```

Добавить

```1c
    ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеЗапросы(СхемаКомпоновкиДанных.НаборыДанных);
```

И еще разрешить использование внешних функций в вычисляемых полях, вместо

```1c
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, НаборыВнешнихДанных, ДанныеРасшифровки);
```

должно быть

```1c
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, НаборыВнешнихДанных, ДанныеРасшифровки, Истина);
```
---
ВЫ святейший человек, спасибо вам большое
---
Организация, подразделение, должность, сотрудник - реквизиты формы
---
https://infostart.ru/1c/articles/1002582/