Skip to content

Запрос из СКД и настроек #154

@SeiOkami

Description

@SeiOkami

С учетом параметров-выражений

Текущая версия:

Какая-то шняга на обдумать:

Процедура СообщитьЗапрос()
	
	КомпоновщикМакета	= Новый КомпоновщикМакетаКомпоновкиДанных;     
	МакетКомпоновки		= КомпоновщикМакета.Выполнить(
		СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки());
	
	НаборДанных = МакетКомпоновки.НаборыДанных.Получить(0);
	Сообщить(НаборДанных.Запрос);
	
	Возврат;
	ПараметрыВыражения = Новый Массив;

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


Metadata

Metadata

Assignees

Labels

СКДСистема компоновки данных

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions