Суть вопроса такова.
Нужен запрос, который берет данные по конкретному параметру и помещает их в ВТ. Проблема в том что количество параметров нам не известно.
Например у нас 3 параметра.
"выбрать *
поместить в вт1
из
Справочник такойто
Где Справочник.Ссылка = Параметр1"
и так нужно сделать столько раз, сколько параметров.
Можно ли это осуществить? буду очень благодарен за помощь
Нужен запрос, который берет данные по конкретному параметру и помещает их в ВТ. Проблема в том что количество параметров нам не известно.
Например у нас 3 параметра.
"выбрать *
поместить в вт1
из
Справочник такойто
Где Справочник.Ссылка = Параметр1"
и так нужно сделать столько раз, сколько параметров.
Можно ли это осуществить? буду очень благодарен за помощь
По теме из базы знаний
- Анализ сложных запросов с временными таблицами-2. Не такой мудреный.
- Как сделать простой парсер сложных запросов
- Консоль отладки сложных запросов с временными таблицами, оптимизированная (1.4 / 22.11.13 / ЧИА)
- Консоль запросов с графом (Анализатор сложных запросов)
- Консоль запросов для управляемых форм 8.3
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Если я правильно понял, имеются опциональные условия на различные реквизиты. Обычно делаю так: Тут удаляется секция "ГДЕ", если условий нет, но на практике чаще есть какие-то безусловные отборы, поэтому можно просто удалять "И &СписокУсловий".
Запрос = Новый Запрос;
Запрос.Текст =
"выбрать *
|поместить в вт1
|из
|Справочник такойто
|ГДЕ &СписокУсловий";
МассивУсловий = Новый Массив;
Если ЛогическоеВыражение1 Тогда
МассивУсловий.Добавить("Справочник.Реквизит1 = &Параметр1");
Запрос.УстановитьПараметр("Параметр1", Параметр1);
КонецЕсли;
Если ЛогическоеВыражение2 Тогда
МассивУсловий.Добавить("Справочник.Реквизит2 = &Параметр2");
Запрос.УстановитьПараметр("Параметр2", Параметр2);
КонецЕсли;
//...
Если ЛогическоеВыражениеN Тогда
МассивУсловий.Добавить("Справочник.РеквизитN = &ПараметрN");
Запрос.УстановитьПараметр("ПараметрN", ПараметрN);
КонецЕсли;
Если МассивУсловий.Количество() = 0 Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ГДЕ &СписокУсловий", "");
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&СписокУсловий", СтрСоединить(МассивУсловий, " И "));
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот