ПостроительЗапроса.Текст

Свойства · Text

Тип: Строка. Исходный текст построителя запроса.

Полное описание, параметры и ограничения

ПостроительЗапроса.Текст (QueryBuilder.Text)

ПостроительЗапроса (QueryBuilder)

Текст (Text)

Доступен, начиная с версии 8.0.

Использование:
Чтение и запись.
Описание:
Тип: Строка.
Исходный текст построителя запроса.
Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Получить обычный Запрос и выполнить его отдельно

ПолучитьЗапрос применим только в запросном режиме, без установленного ИсточникДанных.

Где и как запускать

Полный серверный общий модуль собственной учебной базы.

Подготовка

  1. Создайте собственный общий модуль УчебныйПостроительЗапроса в учебной базе 8.5.1.1343. Установите флаг Сервер. Каждый урок — отдельный полный текст модуля с процедурой ВыполнитьПример() Экспорт.

  2. Из серверного обработчика команды своей учебной обработки вызовите УчебныйПостроительЗапроса.ВыполнитьПример(). Не переносите серверные таблицы значений в тонкий клиент.

  3. Данные Книга/Ручка/Коробка создаются самим уроком в памяти. Нет чтения справочников, документов, регистров, внешних сервисов или записи информационной базы.

  4. ПостроительЗапроса — отдельный старый API, не объект Запрос и не конструктор запросов. У него нет Вывести и оформительских свойств ПостроительОтчета.

  5. Проверки рассчитаны на исходные вымышленные значения. После изменения образцов пересчитайте контрольные суммы и количества строк.

Процедура ВыполнитьПример() Экспорт
    Построитель = Новый ПостроительЗапроса("ВЫБРАТЬ &Название КАК Наименование, &Количество КАК Количество");
    Построитель.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
    Построитель.Параметры.Вставить("Название", "Учебная книга");
    Построитель.Параметры.Вставить("Количество", 3);
    Построитель.ЗаполнитьНастройки();
    Сообщить(СтрДлина(Построитель.Текст) > 0);
    Запрос = Построитель.ПолучитьЗапрос();
    Сообщить(ТипЗнч(Запрос) = Тип("Запрос"));
    Запрос.УстановитьПараметр("Количество", 9);
    ОтдельныйРезультат = Запрос.Выполнить();
    ОтдельныеСтроки = ОтдельныйРезультат.Выгрузить();
    Сообщить(ОтдельныеСтроки.Количество() = 1);
    Сообщить(ОтдельныеСтроки.Получить(0).Количество = 9);
    Сообщить(ОтдельныеСтроки.Получить(0).Наименование = "Учебная книга");
    Сообщить(Построитель.Параметры.Количество = 3);
    Построитель.Выполнить();
    СтрокиПостроителя = Построитель.Результат.Выгрузить();
    Сообщить(СтрокиПостроителя.Получить(0).Количество = 3);
КонецПроцедуры

Разбор по шагам

  1. Построитель создаётся из текста, без ОписаниеИсточникаДанных: здесь ПолучитьЗапрос разрешён.

  2. После получения Запрос работаем с его собственным методом УстановитьПараметр.

  3. Меняем число только у полученного запроса; явно проверяем исходные параметры построителя.

  4. Два выполнения нужны для обучения и сравнения отдельных объектов, а не для ускорения.

Как проверить результат

  1. Семь булевых проверок Истина. У Запрос — количество 9, у исходного построителя — 3.

  2. Название остаётся Учебная книга; изменение числа не изменяет второй параметр.

Ожидаемый результат

Показано различие двух API и самостоятельная настройка полученного запроса.

На что обратить внимание

  1. Не вызывайте ПолучитьЗапрос после установки ИсточникДанных: этот режим явно исключён справкой.

  2. ПолучитьЗапрос не является выполнением запроса; выполнение вызывается отдельно.

  3. Не переносите двукратное выполнение тяжёлого рабочего запроса без необходимости.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Собрать запрос только к двум учебным параметрам

Конструктор принимает текст; Параметры — структура; Выполнить заполняет свойство Результат, а не возвращает таблицу.

Где и как запускать

Полный серверный общий модуль собственной учебной базы.

Подготовка

  1. Создайте собственный общий модуль УчебныйПостроительЗапроса в учебной базе 8.5.1.1343. Установите флаг Сервер. Каждый урок — отдельный полный текст модуля с процедурой ВыполнитьПример() Экспорт.

  2. Из серверного обработчика команды своей учебной обработки вызовите УчебныйПостроительЗапроса.ВыполнитьПример(). Не переносите серверные таблицы значений в тонкий клиент.

  3. Данные Книга/Ручка/Коробка создаются самим уроком в памяти. Нет чтения справочников, документов, регистров, внешних сервисов или записи информационной базы.

  4. ПостроительЗапроса — отдельный старый API, не объект Запрос и не конструктор запросов. У него нет Вывести и оформительских свойств ПостроительОтчета.

  5. Проверки рассчитаны на исходные вымышленные значения. После изменения образцов пересчитайте контрольные суммы и количества строк.

Процедура ВыполнитьПример() Экспорт
    Построитель = Новый ПостроительЗапроса("ВЫБРАТЬ &Название КАК Наименование, &Количество КАК Количество");
    Построитель.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
    Построитель.Параметры.Вставить("Название", "Учебная книга");
    Построитель.Параметры.Вставить("Количество", 3);
    Построитель.ЗаполнитьНастройки();
    Сообщить(СтрНайти(Построитель.Текст, "&Название") > 0);
    Построитель.Выполнить();
    Сообщить(ТипЗнч(Построитель.Результат) = Тип("РезультатЗапроса"));
    Строки = Построитель.Результат.Выгрузить();
    Сообщить(Строки.Количество() = 1);
    Сообщить(Строки.Получить(0).Наименование = "Учебная книга");
    Сообщить(Строки.Получить(0).Количество = 3);
    Построитель.Параметры.Вставить("Количество", 4);
    Построитель.Выполнить();
    НовыеСтроки = Построитель.Результат.Выгрузить();
    Сообщить(НовыеСтроки.Получить(0).Количество = 4);
    Сообщить(Строки.Получить(0).Количество = 3);
КонецПроцедуры

Разбор по шагам

  1. В тексте отсутствует ИЗ: запрос выбирает значения параметров и не читает таблицы базы.

  2. Имя Название в структуре соответствует &Название, а псевдоним результирующего поля — Наименование.

  3. ЗаполнитьНастройки разбирает текст. Затем Выполнить и чтение Результат дают результат запроса.

  4. Вставить с тем же ключом заменяет параметр. Для следующего результата снова вызываем Выполнить.

  5. Ранее выгруженная таблица Строки остаётся самостоятельным снимком с количеством 3.

Как проверить результат

  1. Семь булевых проверок Истина. Первый результат: Учебная книга / 3; второй: Учебная книга / 4.

  2. Исходный снимок не меняется вместе с параметрами построителя.

Ожидаемый результат

Получены два независимых результата из одного текста без конфигурационных зависимостей.

На что обратить внимание

  1. У ПостроительЗапроса нет УстановитьПараметр: используйте его структуру Параметры.

  2. Не присваивайте Результат: это свойство только для чтения.

  3. Не пишите Результат = Построитель.Выполнить(): документированное место результата — свойство.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.