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