Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
SeiOkami opened this issue Sep 25, 2024 · 0 comments
Open

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

SeiOkami opened this issue Sep 25, 2024 · 0 comments
Assignees
Labels
СКД Система компоновки данных

Comments

@SeiOkami
Copy link
Owner

SeiOkami commented Sep 25, 2024

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

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

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

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

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


@SeiOkami SeiOkami added the СКД Система компоновки данных label Sep 25, 2024
@SeiOkami SeiOkami self-assigned this Sep 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
СКД Система компоновки данных
Projects
None yet
Development

No branches or pull requests

1 participant