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