Программное заполнение СКД. Поле ... не может быть использовано в группировке ...

1. MAIKL1C 22 23.01.25 16:58 Сейчас в теме
Подозреваю, потому что его нет в ресурсах, а как добавить? или не поэтому?

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	ТекстЗапроса=""; 
	ТекНастройкиКомпоновщика =КомпоновщикНастроек.Настройки;
	ТекНастройкиКомпоновщика.Структура.Очистить(); 
	СхемаКомпоновкиДанных.НаборыДанных.Очистить();  
	
	Объединение=СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных"));
	Объединение.Имя="Объединение";
	Для Каждого РН Из Метаданные.РегистрыНакопления Цикл
		ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
		ИсточникДанных.Имя =РН.Имя;
		ИсточникДанных.ТипИсточникаДанных = "Local";	
		НаборДанных=СхемаКомпоновкиДанных.НаборыДанных[0].Элементы.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
		НаборДанных.Имя=РН.Имя;
		НаборДанных.ИсточникДанных=ИсточникДанных.Имя;
		Группировка = ТекНастройкиКомпоновщика.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
		Группировка.Имя = РН.Имя;
		Группировка.Использование = Истина; 
		ТекстЗапроса=ТекстЗапроса+"ВЫБРАТЬ ";
		Для Каждого Измерение Из РН.Измерения Цикл          
			ТекстЗапроса=ТекстЗапроса+	РН.Имя+"."+Измерение.Имя+" КАК "+Измерение.Имя+",";			
			ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));      
			ПолеГруппировки.Использование      = Истина;
			ПолеГруппировки.Поле               = Новый ПолеКомпоновкиДанных(Измерение.Имя);
			ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
			ПолеГруппировки.ТипДополнения      = ТипДополненияПериодаКомпоновкиДанных.БезДополнения; 			
		КонецЦикла;
		Для Каждого Ресурс Из РН.Ресурсы Цикл
			ТекстЗапроса=ТекстЗапроса+	РН.Имя+"."+Ресурс.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,"Остаток","Оборот")+",";
			Поле = Группировка.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));      
			Поле.Поле               = Новый ПолеКомпоновкиДанных(Ресурс.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,"Остаток","Оборот"));
	       Поле.Использование=Истина;
		КонецЦикла; 
		ТекстЗапроса=Лев(ТекстЗапроса,СтрДлина(ТекстЗапроса)-1);
		ТекстЗапроса=ТекстЗапроса+"
		|ИЗ РегистрНакопления."+РН.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,".Остатки(, )",".Обороты(, , , )")+" КАК "+РН.Имя;
		
		ТекстЗапроса=ТекстЗапроса+"
		|;
		|";
		НаборДанных.Запрос=ТекстЗапроса;  
		
		Прервать;
		
	КонецЦикла;
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
2. Prikum 3 23.01.25 17:15 Сейчас в теме
(1)
потому что его нет в ресурсах
Да
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Prikum 3 23.01.25 17:15 Сейчас в теме
(1)
потому что его нет в ресурсах
Да
3. MAIKL1C 22 23.01.25 17:42 Сейчас в теме
(2) спасибо, получилось

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	ТекстЗапроса=""; 
	ТекНастройкиКомпоновщика =КомпоновщикНастроек.Настройки;
	ТекНастройкиКомпоновщика.Структура.Очистить(); 
	СхемаКомпоновкиДанных.НаборыДанных.Очистить();  
	
	Объединение=СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных"));
	Объединение.Имя="Объединение";    
	Для Каждого РН Из Метаданные.РегистрыНакопления Цикл
		ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
		ИсточникДанных.Имя =РН.Имя;
		ИсточникДанных.ТипИсточникаДанных = "Local";	
		НаборДанных=СхемаКомпоновкиДанных.НаборыДанных[0].Элементы.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
		НаборДанных.Имя=РН.Имя;
		НаборДанных.ИсточникДанных=ИсточникДанных.Имя;
		Группировка = ТекНастройкиКомпоновщика.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
		Группировка.Имя = РН.Имя;
		Группировка.Использование = Истина;
			Поле = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));      
			Поле.Использование=Истина;
		ТекстЗапроса=ТекстЗапроса+"ВЫБРАТЬ ";
		Для Каждого Измерение Из РН.Измерения Цикл          
			ТекстЗапроса=ТекстЗапроса+	РН.Имя+"."+Измерение.Имя+" КАК "+Измерение.Имя+",";			
			ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));      
			ПолеГруппировки.Использование      = Истина;
			ПолеГруппировки.Поле               = Новый ПолеКомпоновкиДанных(Измерение.Имя);
			ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
			ПолеГруппировки.ТипДополнения      = ТипДополненияПериодаКомпоновкиДанных.БезДополнения; 			
		КонецЦикла;
		Для Каждого Ресурс Из РН.Ресурсы Цикл
			ТекстЗапроса=ТекстЗапроса+	РН.Имя+"."+Ресурс.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,"Остаток","Оборот")+",";
			Поле = Группировка.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));      
			Поле.Поле               = Новый ПолеКомпоновкиДанных(Ресурс.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,"Остаток","Оборот"));
	       Поле.Использование=Истина;
	   НовыйРесурс = СхемаКомпоновкиДанных.ПоляИтога.Добавить();
		НовыйРесурс.ПутьКДанным =""+Поле.Поле;
		НовыйРесурс.Выражение =""+Поле.Поле;
		КонецЦикла; 
		ТекстЗапроса=Лев(ТекстЗапроса,СтрДлина(ТекстЗапроса)-1);
		ТекстЗапроса=ТекстЗапроса+"
		|ИЗ РегистрНакопления."+РН.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,".Остатки(, )",".Обороты(, , , )")+" КАК "+РН.Имя;
		
		ТекстЗапроса=ТекстЗапроса+"
		|;
		|";
		НаборДанных.Запрос=ТекстЗапроса;  

		
	КонецЦикла;
КонецПроцедуры
Показать
Оставьте свое сообщение

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