20 апр. 2018 г.

Пример добавления условия в запрос программно

Есть запрос:

ВЫБРАТЬ ПЕРВЫЕ 1
З.Ссылка
ИЗ
Задача.ЗадачиПользователя КАК З
ГДЕ
З.Объект = &Объект
И З.Проект = &Проект
И З.ПометкаУдаления = ЛОЖЬ

Необходимо в него добавить условие: И З.Описание ПОДОБНО "%" + &ЧастьОписания + "%"
Программно это можно сделать так:


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

Вариант 2 ("в одну строку"):

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Ссылка
|ИЗ Задача.ЗадачиПользователя З
|ГДЕ Объект = &Объект И Проект = &Проект И ПометкаУдаления = Ложь";
СЗ = Новый СхемаЗапроса();
СЗ.УстановитьТекстЗапроса(Запрос.Текст);
СЗ.ПакетЗапросов.Получить(0).Операторы.Получить(0).Отбор.Добавить("З.Описание ПОДОБНО  ""%"" + &ЧастьОписания + ""%""");
Запрос.Текст = СЗ.ПолучитьТекстЗапроса();

Комментариев нет:

Отправить комментарий