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