3
АнализДанных
02.09.20
✎
09:42
|
(0)
1) Можно в запросе условие писать:
Выбор когда &АнализНаименования Тогда
ИмяТаблицы.Наименование
Иначе
ИмяТаблицы.Код
Конец
2) Можно, через построитель запроса. Всё писать не буду, примерно так реализуется:
ПостроительЗапроса = Новый ПостроительЗапроса;
ПрстроительЗапроса.текст =
Выбрать * из ИмяТаблицы
{где
имятаблицы.код как код,
Имятаблицы.Наименование как наименование}
ПостроительЗапроса.Параметры.Вставить("код", 123)
//или так: ПостроительЗапроса.Параметры.Вставить("наименование", "тест")
Запрос = ПостроительЗапроса.Получитьзапрос();
//тут система сама в текст запроса поставит нужный текст
|
|
4
АнализДанных
02.09.20
✎
10:15
|
(3) Вот полный код:
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.Текст = "ВЫБРАТЬ
| *
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|{ГДЕ
| ЗаказКлиента.Номер КАК Номер,
| ЗаказКлиента.Контрагент.* КАК Контрагент";
Если ЕстьУсловиеПоНомеру Тогда
// Здесь в текст запроса добавится строка "ГДЕ ЗаказКлиента.Номер = &Номер
ЭлОтбора = ПостроительЗапроса.Отбор.Добавить("Номер");
ЭлОтбора.Использование = Истина;
ЭлОтбора.Значение = КлючИЗначение.Значение;
КонецЕсли;
Если ЕстьУсловиеПоКонтрагенту Тогда
// Здесь в текст запроса добавится строка "ГДЕ ЗаказКлиента.Контрагент В &СписокКонтрагентов"
ЭлОтбора = ПостроительЗапроса.Отбор.Добавить("Контрагент");
ЭлОтбора.Использование = Истина;
ЭлОтбора.ВидСравнения = ВидСравнения.ВСписке;
ЭлОтбора.Значение = СписокКонтрагентов;
КонецЕсли;
// В "Запрос.Текст" система сама добавит нужные условия, если ты их добавлял в "отбор" выше
Запрос = ПостроительЗапроса.ПолучитьЗапрос();
|
|