при формировании отчета выдает данную ошибку "Ошибка при вызове метода контекста (Выполнить)
{Отчет.ИзделияСКомплектующими.МодульОбъекта(81)}: МКМ=КМ.Выполнить(СКД,НК);
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено "Комплектующие"
Ошибка компоновки макета
по причине:
Поле не найдено "Комплектующие"
"
и как это решить?

Код:

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СКД=Новый СхемаКомпоновкиДанных;

    ИД = СКД.ИсточникиДанных.Добавить();
    ИД.Имя = "СхемаСКД";
    ИД.ТипИсточникаДанных = "Local";

    НД=СКД.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
    НД.Имя="НД1";
    НД.ИмяОбъекта="НД1";
    НД.ИсточникДанных="СхемаСКД";

    ПНД = НД.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
    ПНД.Поле = "Наименование";
    ПНД.ПутьКДанным = "Наименование";
    ПНД.Заголовок = "Наименование";

    ПНД2 = НД.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
    ПНД2.Поле = "Комплектующие";
    ПНД2.ПутьКДанным = "Состав.Комплектующие";
    ПНД2.Заголовок = "Комплектующие";

    НК=КомпоновщикНастроек.Настройки;

    Если нк.Структура.Количество()=0 Тогда

    Таб=НК.Структура.Добавить(Тип("ТаблицаКомпоновкиДанных"));

    ГКД1 = Таб.Строки.Добавить();
    ГКД1.Использование = Истина;
    ПГКД1 = ГКД1.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    ПГКД1.Использование = Истина;
    ПГКД1.Поле = Новый ПолеКомпоновкиДанных("Наименование");

    ВП1=ГКД1.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
    ВП1.Использование=Истина;

    ГКД2 = ГКД1.Структура.Добавить();
    ГКД2 = Таб.Колонки.Добавить();
    ГКД2.Использование = Истина;
    ПГКД2 = ГКД2.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    ПГКД2.Использование = Истина;
    ПГКД2.Поле = Новый ПолеКомпоновкиДанных("Комплектующие");

    ВП2=ГКД2.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
    ВП2.Использование=Истина;

    КонецЕсли;

    Запр=Новый Запрос;
    Запр.Текст="ВЫБРАТЬ
    | Изделие.Наименование КАК Наименование,
    | Изделие.Состав.(
    | Комплектующие КАК Комплектующие
    | ) КАК Состав
    |ИЗ
    | Справочник.Изделие КАК Изделие
    | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Комплектующее КАК Комплектующее
    | ПО Изделие.Состав.Комплектующие = Комплектующее.Наименование
    |ГДЕ
    | Изделие.Состав.Комплектующие = &Комплектующие";

    Запр.УстановитьПараметр("Комплектующие",Справочники.Комплектующее.НайтиПоНаименованию("а"));
    РезЗап=Запр.Выполнить().Выгрузить();
    ВнешНаб=Новый Структура("НД1",РезЗап);
    КМ=Новый КомпоновщикМакетаКомпоновкиДанных;
    МКМ=КМ.Выполнить(СКД,НК);

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

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

Наименование - наименование справочника "Изделие", Комплектующие - Данные из табличной части ранее названного справочника.
---
Переписать запрос на плоский. Примерно такой, как я понимаю:
```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ИзделиеСостав.Ссылка КАК Ссылка
    ПОМЕСТИТЬ ВТ_Изделия
    ИЗ
    Справочник.Изделие.Состав КАК ИзделиеСостав
    ГДЕ
    ИзделиеСостав.Комплектующие = &Комплектующие;

    ВЫБРАТЬ
    ВТ_Изделия.Ссылка.Наименование КАК Наименование,
    ИзделиеСостав.Комплектующие КАК Комплектующие
    ИЗ
    ВТ_Изделия КАК ВТ_Изделия
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Изделие.Состав КАК ИзделиеСостав
    ПО ВТ_Изделия.Ссылка = ИзделиеСостав.Ссылка
```
 Поменять
```1c
    ПНД2.ПутьКДанным = "Состав.Комплектующие";
```
 на
```1c
    ПНД2.ПутьКДанным = "Комплектующие";
```
---
```1c
    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("ВнешнийНаборДанных1",ВнешнийНаборДанных1);
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
    Результат = ЭлементыФормы.Результат;
    Результат.Очистить();
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);
```

ВнешнийНаборДанных1 - это Таблица значений (можно из запроса Выгрузить)
---
Переписать запрос на плоский. Примерно такой, как я понимаю:
```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ИзделиеСостав.Ссылка КАК Ссылка
    ПОМЕСТИТЬ ВТ_Изделия
    ИЗ
    Справочник.Изделие.Состав КАК ИзделиеСостав
    ГДЕ
    ИзделиеСостав.Комплектующие = &Комплектующие;

    ВЫБРАТЬ
    ВТ_Изделия.Ссылка.Наименование КАК Наименование,
    ИзделиеСостав.Комплектующие КАК Комплектующие
    ИЗ
    ВТ_Изделия КАК ВТ_Изделия
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Изделие.Состав КАК ИзделиеСостав
    ПО ВТ_Изделия.Ссылка = ИзделиеСостав.Ссылка
```
 Поменять
```1c
    ПНД2.ПутьКДанным = "Состав.Комплектующие";
```
 на
```1c
    ПНД2.ПутьКДанным = "Комплектующие";
```
---
Традиционная смесь ссылок и строк, милота!