Тип: Структура. Содержит значения параметров, установленных запросу.
Полное описание, параметры и ограничения
Запрос.Параметры (Query.Parameters)
Запрос (Query)
Параметры (Parameters)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: Структура.
Содержит значения параметров, установленных запросу.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Найти параметры запроса и проверить их перед выполнением
Не подставляем пользовательский текст в язык запросов. Сравниваем обнаруженные параметры с явным контрактом двух значений.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Никакие справочники не нужны: запрос выбирает только значения параметров.
Контракт объявлен явно: непустая строка Название и целое неотрицательное Количество.
Запрос = Новый Запрос("ВЫБРАТЬ &Название КАК Название, &Количество КАК Количество");
ПараметрыТекста = Запрос.НайтиПараметры();
Сообщить(ПараметрыТекста.Количество() = 2);
Если Не ПараметрыТекста.Свойство("Название")
Или Не ПараметрыТекста.Свойство("Количество") Тогда
ВызватьИсключение "Текст запроса не соответствует учебному контракту";
КонецЕсли;
Название = "Книга";
Количество = 3;
Если ТипЗнч(Название) <> Тип("Строка") Или ПустаяСтрока(Название) Тогда
ВызватьИсключение "Название должно быть непустой строкой";
КонецЕсли;
Если ТипЗнч(Количество) <> Тип("Число") Тогда
ВызватьИсключение "Количество должно быть числом";
КонецЕсли;
Если Количество < 0 Или Количество <> Цел(Количество) Тогда
ВызватьИсключение "Количество должно быть целым и неотрицательным";
КонецЕсли;
Запрос.УстановитьПараметр("Название", Название);
Запрос.УстановитьПараметр("Количество", Количество);
Сообщить(Запрос.Параметры.Название = "Книга");
Сообщить(Запрос.Параметры.Количество = 3);
Выборка = Запрос.Выполнить().Выбрать();
Если Не Выборка.Следующий() Тогда
ВызватьИсключение "Ожидалась одна учебная строка";
КонецЕсли;
Сообщить(Выборка.Название = "Книга" И Выборка.Количество = 3);Разбор по шагам
НайтиПараметры анализирует текст и возвращает структуру имён, а не готовые значения из бизнес-данных.
Проверяем ожидаемые два ключа и ограничения конкретных значений отдельно от синтаксиса запроса.
УстановитьПараметр передаёт типизированное значение без склейки текста. Параметры позволяет прочитать установленные значения.
После Выполнить и Выбрать обязательно позиционируем выборку методом Следующий.
Как проверить результат
Все сообщения дают Истина, запрос возвращает Книга и число 3.
Измените &Количество в тексте на &Колво: проверка контракта останавливает выполнение.
Количество = -1 отклоняется до выполнения запроса.
Ожидаемый результат
Параметризованный запрос проверен по собственному контракту до чтения результата.
На что обратить внимание
НайтиПараметры не проверяет бизнес-правила и не подбирает значения автоматически.
Имя таблицы или поля не следует пытаться передать обычным параметром значения. Здесь параметры находятся в выражениях.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.