Уведомления
Очистить все
1С:Предприятие 8.x
1
Записи
1
Пользователи
0
Likes
384
Просмотры
Создатель темы 03/01/2021 1:02 пп
Если требуется в одном случае выполнить запрос с одними условиями в другом с другими, то для этого потребуется изменять текст запроса, а точнее его условия "ГДЕ". Ниже представлены несколько примеров как оптимально реализовать динамическое формирование условий запроса.
Вариант №1
Функция ВыполнениеЗапроса()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Справочник1.Ссылка
|ИЗ
| Справочник.Справочник1 КАК Справочник1";
Если ЗначениеЗаполнено(Истина) Тогда
Запрос.Текст = Запрос.Текст + " ГДЕ Справочник1.Код = &Код";
Запрос.УстановитьПараметр("Код", "000001");
КонецЕсли;
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
// Вставить обработку выборки
КонецЦикла;
КонецФункции
Вариант №2
Заменяемую подстроку "&Условие1" удобно сделать как параметр, тогда запрос можно будет открывать с помощью конструктора.
Функция ВыполнениеЗапроса()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Справочник1.Ссылка
|ИЗ
| Справочник.Справочник1 КАК Справочник1
|ГДЕ
| &Условие1";
Условие1 = "ИСТИНА";
Если ЗначениеЗаполнено(Истина) Тогда
Условие1 = " Справочник1.Код = &Код";
Запрос.УстановитьПараметр("Код", "000001");
КонецЕсли;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Условие1", Условие1);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
// Вставить обработку выборки
КонецЦикла;
КонецФункции