Мой первый опыт в схеме запросов

Попробовал впервые изменить запрос (условие отбора ГДЕ) с помощью схемы запросов, потому что мне нужно было изменить вот такой кусок запроса:

В принципе, можно было заменить через СтрЗаменить, но я сначала полез не в тот запрос и мне показалось, что так не получится, поэтому решил освоить схему запроса.

В итогде у меня получилось изменить условие и код выглядит так:

Для Каждого ТекОператор ИЗ ТекЗапрос.Операторы Цикл
	
	//Во второй части (про задачи) меняем условия
	Если ТекЗапрос.Операторы.Индекс(ТекОператор) = 1 Тогда
		
		//КУдалению = Новый Массив();
		Для Каждого ТекОтбор ИЗ ТекОператор.Отбор Цикл 
			
			Если 
				Найти(ТекОтбор, "&ВыбранныеКалендари") <> 0 
				//ИЛИ Найти(ТекОтбор, "&РазрешенныеИсточники") <> 0 
				Тогда
				//КУдалению.Добавить(ТекОтбор); 
				ТекОператор.Отбор.Установить(ТекОператор.Отбор.Индекс(ТекОтбор), Новый ВыражениеСхемыЗапроса("Истина"))
			КонецЕсли;
			
		КонецЦикла;                                     
		//дор_Сервер.УдалитьЭлементыКоллекции(ТекОператор.Отбор, КУдалению);
		
		ТекОператор.Отбор.Добавить(
		"ЗадачаСотрудника.ПометкаУдаления = ЛОЖЬ
		|И ВЫБОР КОГДА &дор_ОтборСвои 
		|ТОГДА ЗадачаСотрудника.Автор = &ТекущийПользователь 
		|ИНАЧЕ ЗадачаСотрудника.Календарь В(&ВыбранныеКалендари) 
		|КОНЕЦ");   
		
	КонецЕсли;
	
КонецЦикла;

В запросе две части, объединенные через ОБЪЕДИНИТЬ ВСЕ, нужный мне запрос находится во второй части. Удалить отбор сложно (в коде видны следы попытки удаления частей условия), поэтому я делаю замену через замену условия на Истина.

Приятный сюрприз, что можно добавлять свои довольно сложные условия в виде простого текста, не нужно конструировать из подчастей, удобно.

Среда: УНФ 1.6.27.167.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 2

  1. Павел:

    Мертворожденная ерунда. Особенно ввиду того что условия не парсятся в элементы конструктора, а работать с ними приходится как тупо с текстом. Ну и вишенка — стандартная ерунда в типовых — запрос составляется из кусков текста. В общем овчина выделки не стоит

    • ну почему же. Хотя как альтернатива можно убирать все разделители до пробела и менять уже в таком запросе

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

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