Skip to content

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

Description

@SeiOkami

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

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

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

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

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


Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

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

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions