Тип: Структура. Параметры, передаваемые генерируемому запросу.
Полное описание, параметры и ограничения
ПостроительЗапроса.Параметры (QueryBuilder.Parameters)
ПостроительЗапроса (QueryBuilder)
Параметры (Parameters)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Тип: Структура.
Параметры, передаваемые генерируемому запросу.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Получить обычный Запрос и выполнить его отдельно
ПолучитьЗапрос применим только в запросном режиме, без установленного ИсточникДанных.
Где и как запускать
Полный серверный общий модуль собственной учебной базы.
Подготовка
Создайте собственный общий модуль УчебныйПостроительЗапроса в учебной базе 8.5.1.1343. Установите флаг Сервер. Каждый урок — отдельный полный текст модуля с процедурой ВыполнитьПример() Экспорт.
Из серверного обработчика команды своей учебной обработки вызовите УчебныйПостроительЗапроса.ВыполнитьПример(). Не переносите серверные таблицы значений в тонкий клиент.
Данные Книга/Ручка/Коробка создаются самим уроком в памяти. Нет чтения справочников, документов, регистров, внешних сервисов или записи информационной базы.
ПостроительЗапроса — отдельный старый API, не объект Запрос и не конструктор запросов. У него нет Вывести и оформительских свойств ПостроительОтчета.
Проверки рассчитаны на исходные вымышленные значения. После изменения образцов пересчитайте контрольные суммы и количества строк.
Процедура ВыполнитьПример() Экспорт
Построитель = Новый ПостроительЗапроса("ВЫБРАТЬ &Название КАК Наименование, &Количество КАК Количество");
Построитель.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
Построитель.Параметры.Вставить("Название", "Учебная книга");
Построитель.Параметры.Вставить("Количество", 3);
Построитель.ЗаполнитьНастройки();
Сообщить(СтрДлина(Построитель.Текст) > 0);
Запрос = Построитель.ПолучитьЗапрос();
Сообщить(ТипЗнч(Запрос) = Тип("Запрос"));
Запрос.УстановитьПараметр("Количество", 9);
ОтдельныйРезультат = Запрос.Выполнить();
ОтдельныеСтроки = ОтдельныйРезультат.Выгрузить();
Сообщить(ОтдельныеСтроки.Количество() = 1);
Сообщить(ОтдельныеСтроки.Получить(0).Количество = 9);
Сообщить(ОтдельныеСтроки.Получить(0).Наименование = "Учебная книга");
Сообщить(Построитель.Параметры.Количество = 3);
Построитель.Выполнить();
СтрокиПостроителя = Построитель.Результат.Выгрузить();
Сообщить(СтрокиПостроителя.Получить(0).Количество = 3);
КонецПроцедурыРазбор по шагам
Построитель создаётся из текста, без ОписаниеИсточникаДанных: здесь ПолучитьЗапрос разрешён.
После получения Запрос работаем с его собственным методом УстановитьПараметр.
Меняем число только у полученного запроса; явно проверяем исходные параметры построителя.
Два выполнения нужны для обучения и сравнения отдельных объектов, а не для ускорения.
Как проверить результат
Семь булевых проверок Истина. У Запрос — количество 9, у исходного построителя — 3.
Название остаётся Учебная книга; изменение числа не изменяет второй параметр.
Ожидаемый результат
Показано различие двух API и самостоятельная настройка полученного запроса.
На что обратить внимание
Не вызывайте ПолучитьЗапрос после установки ИсточникДанных: этот режим явно исключён справкой.
ПолучитьЗапрос не является выполнением запроса; выполнение вызывается отдельно.
Не переносите двукратное выполнение тяжёлого рабочего запроса без необходимости.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Собрать запрос только к двум учебным параметрам
Конструктор принимает текст; Параметры — структура; Выполнить заполняет свойство Результат, а не возвращает таблицу.
Где и как запускать
Полный серверный общий модуль собственной учебной базы.
Подготовка
Создайте собственный общий модуль УчебныйПостроительЗапроса в учебной базе 8.5.1.1343. Установите флаг Сервер. Каждый урок — отдельный полный текст модуля с процедурой ВыполнитьПример() Экспорт.
Из серверного обработчика команды своей учебной обработки вызовите УчебныйПостроительЗапроса.ВыполнитьПример(). Не переносите серверные таблицы значений в тонкий клиент.
Данные Книга/Ручка/Коробка создаются самим уроком в памяти. Нет чтения справочников, документов, регистров, внешних сервисов или записи информационной базы.
ПостроительЗапроса — отдельный старый API, не объект Запрос и не конструктор запросов. У него нет Вывести и оформительских свойств ПостроительОтчета.
Проверки рассчитаны на исходные вымышленные значения. После изменения образцов пересчитайте контрольные суммы и количества строк.
Процедура ВыполнитьПример() Экспорт
Построитель = Новый ПостроительЗапроса("ВЫБРАТЬ &Название КАК Наименование, &Количество КАК Количество");
Построитель.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
Построитель.Параметры.Вставить("Название", "Учебная книга");
Построитель.Параметры.Вставить("Количество", 3);
Построитель.ЗаполнитьНастройки();
Сообщить(СтрНайти(Построитель.Текст, "&Название") > 0);
Построитель.Выполнить();
Сообщить(ТипЗнч(Построитель.Результат) = Тип("РезультатЗапроса"));
Строки = Построитель.Результат.Выгрузить();
Сообщить(Строки.Количество() = 1);
Сообщить(Строки.Получить(0).Наименование = "Учебная книга");
Сообщить(Строки.Получить(0).Количество = 3);
Построитель.Параметры.Вставить("Количество", 4);
Построитель.Выполнить();
НовыеСтроки = Построитель.Результат.Выгрузить();
Сообщить(НовыеСтроки.Получить(0).Количество = 4);
Сообщить(Строки.Получить(0).Количество = 3);
КонецПроцедурыРазбор по шагам
В тексте отсутствует ИЗ: запрос выбирает значения параметров и не читает таблицы базы.
Имя Название в структуре соответствует &Название, а псевдоним результирующего поля — Наименование.
ЗаполнитьНастройки разбирает текст. Затем Выполнить и чтение Результат дают результат запроса.
Вставить с тем же ключом заменяет параметр. Для следующего результата снова вызываем Выполнить.
Ранее выгруженная таблица Строки остаётся самостоятельным снимком с количеством 3.
Как проверить результат
Семь булевых проверок Истина. Первый результат: Учебная книга / 3; второй: Учебная книга / 4.
Исходный снимок не меняется вместе с параметрами построителя.
Ожидаемый результат
Получены два независимых результата из одного текста без конфигурационных зависимостей.
На что обратить внимание
У ПостроительЗапроса нет УстановитьПараметр: используйте его структуру Параметры.
Не присваивайте Результат: это свойство только для чтения.
Не пишите Результат = Построитель.Выполнить(): документированное место результата — свойство.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.