Использование конструктора произвольного запроса
Создание запроса с помощью конструктора произвольного запроса выглядит следующим образом:
знч Запрос = новый ПроизвольныйЗапрос(
"ВЫБРАТЬ
Сотрудники.Ссылка КАК Ссылка,
Сотрудники.ФИО КАК ФИО
ИЗ
Сотрудники КАК Сотрудники")
При необходимости можно сначала создать запрос без текста, а затем установить свойство Текст
:
знч Запрос = новый ПроизвольныйЗапрос()
Запрос.Текст =
"ВЫБРАТЬ
Сотрудники.Ссылка КАК Ссылка,
Сотрудники.ФИО КАК ФИО
ИЗ
Сотрудники КАК Сотрудники"
При использовании конструктора переменная Запрос имеет тип ПроизвольныйЗапрос
.
Обход результата запроса
Для создания переменной, в которой будет храниться результат запроса, используйте модификатор исп
. Он необходим для того, чтобы «1С:Шина» закрыл результат запроса после окончания работы с ним.
// Выполнить запрос.
исп РезультатЗапроса = Запрос.Выполнить()
Если вы передаете результат запроса в другие методы или модули, то там, при необходимости, вы можете самостоятельно закрыть его РезультатЗапроса.Закрыть()
.
Чтобы выполнить запрос, используйте метод Выполнить()
. ПроизвольныйЗапрос.Выполнить()
вернет значение обобщенного типа РезультатЗапроса<СтрокаРезультатаПроизвольногоЗапроса>
. Этот тип является производным от типа Обходимое<СтрокаРезультатаПроизвольногоЗапроса>
, поэтому результат запроса сразу же можно использовать в цикле для ... из
либо создать массив на его основе.
Для обращения к полям рез ультата запроса можно использовать их псевдонимы из текста запроса или, если их нет, псевдонимы, автоматически сформированные «1С:Шиной».
// Обойти результат запроса и обработать его.
для СтрокаРезультат из РезультатЗапроса
пер СотрудникСсылка = СтрокаРезультат.Ссылка
пер СотрудникФИО = СтрокаРезультат.ФИО
;
// Либо создать массив на основе результата запроса.
знч Результат = новый ЧитаемыйМассив(Запрос.Выполнить())
Если псевдонимы нужных вам полей определяются программным алгоритмом, то можно использовать синтаксис []
.
// Обойти результат зап роса и обработать его.
знч ПолеСсылки = "Ссылка"
знч ПолеФИО = "ФИО"
для СтрокаРезультата из РезультатЗапроса
пер СотрудникСсылка = СтрокаРезультата[ПолеСсылки]
пер СотрудникФИО = СтрокаРезультата[ПолеФИО]
;
Параметры запроса
Для установки параметров запроса используйте метод ПроизвольныйЗапрос.УстановитьПараметр()
.
// Создать запрос с параметром.
знч Запрос = новый ПроизвольныйЗапрос(
"ВЫБРАТЬ
Сотрудники.Ссылка КАК Ссылка,
Сотрудники.ФИО КАК ФИО,
Сотрудники.Возраст КАК Возраст
ИЗ
Сотрудники КАК Сотрудники
ГДЕ
Возраст <= &ПараметрВозраст")
// Установить значения параметров запроса.
Запрос.УстановитьПараметр("ПараметрВозраст", 40)
При установке параметров запроса «1С:Шина» не выполняет никаких проверок. Можно установить значение параметра, которого нет в тексте запроса. Можно повторно установить значение параметра, тем самым «затерев» предыдущее значение.