1С: Получение полей отбора с формы списка

Задача: узнать состав текущего отбора на форме списка..и составить аналогичный запрос в БД, для получения выборки

Решение: Применимо в данный момент только к динамическому списку. Отборы получаем чтением данных из компоновщика настроек. Запрос (фактически условие) получается крайне грубым, но приемлемым для моих входящих данных. Итак код:

 	// Проработаем текущий отбор
	sql="";   	
	для каждого стр из Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы цикл
			попытка ош=стр["Элементы"];исключение прервать; конецпопытки;
			для каждого эл из стр.Элементы цикл
				если эл.ВидСравнения=ВидСравненияКомпоновкиДанных.Содержит тогда
					sql=sql+" И "+эл.ЛевоеЗначение+" ПОДОБНО ""%"+эл.ПравоеЗначение+"%""";
				конецесли;	
				если эл.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно тогда
					sql=sql+" И "+эл.ЛевоеЗначение+" = """+эл.ПравоеЗначение+"""";
				конецесли;	
				если эл.ВидСравнения=ВидСравненияКомпоновкиДанных.Больше тогда
					sql=sql+" И "+эл.ЛевоеЗначение+" > """+эл.ПравоеЗначение+"""";
				конецесли;	
				если эл.ВидСравнения=ВидСравненияКомпоновкиДанных.Меньше тогда
					sql=sql+" И "+эл.ЛевоеЗначение+" < """+эл.ПравоеЗначение+"""";
				конецесли;	
				если эл.ВидСравнения=ВидСравненияКомпоновкиДанных.НеРавно тогда
					sql=sql+" И "+эл.ЛевоеЗначение+" <> """+эл.ПравоеЗначение+"""";
				конецесли;	
				
			конеццикла;
	конеццикла;	 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.