Не находит Набор данных

1. GoreEclipse 26.02.25 20:18 Сейчас в теме
при формировании выдает такую картину:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка создания набора данных "НД1"
по причине:
Не найден внешний набор данных "НД1"
в чем беда?


код:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	КомпоновщикНастроек.Настройки.Структура.Очистить();
	МассПар=Новый Массив;
	
	Для каждого Пункт Из ТабличныйПоиск Цикл
	
		МассПар.Добавить(Пункт);
	
	КонецЦикла;
	
	СКД=Новый СхемаКомпоновкиДанных;
	
	ИД = СКД.ИсточникиДанных.Добавить();
	ИД.Имя = "СхемаСКД";
	ИД.ТипИсточникаДанных = "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.Использование=Истина;
	
	КонецЕсли;
	
	
	Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ 
    | Комплектующее.Ссылка КАК Ссылка
    |ПОМЕСТИТЬ втКомплект
    |ИЗ
    | Справочник.Комплектующее КАК Комплектующее
    |ГДЕ
    | Комплектующее.Ссылка В (&Комплект)
    |;
    |/////////////////////////
    |ВЫБРАТЬ различные
    |    ИзделиеСостав.Ссылка КАК Ссылка
    | ПОМЕСТИТЬ втИзделияСовпадающиеПоОднойСоставлящией
    |ИЗ
    |    Справочник.Изделие.Состав КАК ИзделиеСостав
    |ГДЕ
    |    ИзделиеСостав.Комплектующие В (&Комплектующие)
    |;
    |
    |/////////////////////////
    |
    |ВЫБРАТЬ различные
    |    втИзделия.Ссылка КАК Ссылка
    | ПОМЕСТИТЬ втИзделияСНедостающимЛибоЛишнимиКомплектующими
    |ИЗ
    |     втИзделияСовпадающиеПоОднойСоставлящией как втИзделия
    |        Соединение Справочник.Изделие.Состав КАК ИзделиеСостав
    |           Полное Соединение втКомплект как втКомплект
    |            По ИзделиеСостав.Комплектующие = втКомплект.Ссылка
    |         По ИзделиеСостав.Ссылка = втИзделия.Ссылка
    |ГДЕ
    |   ИзделиеСостав.Комплектующие is null
    |   Или втКомплект.Ссылка is null
    |;
    |/////////////////////////
    |ВЫБРАТЬ 
    |    ВсеИзделия.Ссылка КАК Ссылка
    | 
    |ИЗ
    |   втИзделияСовпадающиеПоОднойСоставлящией Как ВсеИзделия
    |    Левое Соединение втИзделияСНедостающимЛибоЛишнимиКомплектующими Как ЛишниеИзделия
    |    По ВсеИзделия.Ссылка = ЛишниеИзделия.Ссылка
    |ГДЕ
    |   ЛишниеИзделия.Ссылка is null
    |";
	
	Запрос.УстановитьПараметр("Комплект", МассПар);
	Запрос.УстановитьПараметр("Комплектующие", МассПар);
    РезЗап = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
	
	ВнешНаб=Новый Структура("НД1",РезЗап);
	КМ=Новый КомпоновщикМакетаКомпоновкиДанных;
	МКМ=КМ.Выполнить(СКД,НК);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МКМ,ВнешНаб);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1936660 27.02.25 09:07 Сейчас в теме
(1)
МКМ=КМ.Выполнить(СКД,НК);
МРЗСТЬ Т КК
user2107191; +1 Ответить
3. GoreEclipse 27.02.25 10:51 Сейчас в теме
(2) хочешь сказать, что ошибка возникает, поскольку пишу аббревиатурами?
4. пользователь 27.02.25 11:20
Сообщение было скрыто модератором.
...
5. пользователь 27.02.25 12:15
Сообщение было скрыто модератором.
...
6. пользователь 27.02.25 12:23
Сообщение было скрыто модератором.
...
7. пользователь 27.02.25 12:26
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот