Использование конструктора произвольного запроса

Создание запроса с помощью конструктора произвольного запроса выглядит следующим образом:

знч Запрос = новый ПроизвольныйЗапрос(
                                      "ВЫБРАТЬ 
                                             Сотрудники.Ссылка КАК Ссылка,
                                             Сотрудники.ФИО КАК ФИО 
                                       ИЗ
                                             Сотрудники КАК Сотрудники")

При необходимости можно сначала создать запрос без текста, а затем установить свойство Текст:

знч Запрос = новый ПроизвольныйЗапрос()
Запрос.Текст = 
               "ВЫБРАТЬ 
                  Сотрудники.Ссылка КАК Ссылка,
                  Сотрудники.ФИО КАК ФИО 
               ИЗ
                  Сотрудники КАК Сотрудники"

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

Обход результата запроса

Для создания переменной, в которой будет храниться результат запроса, используйте модификатор исп. Он необходим для того, чтобы «1С:Шина» закрыл результат запроса после окончания работы с ним.

// Выполнить запрос.
исп РезультатЗапроса = Запрос.Выполнить()

Если вы передаете результат запроса в другие методы или модули, то там, при необходимости, вы можете самостоятельно закрыть его РезультатЗапроса.Закрыть().

Чтобы выполнить запрос, используйте метод Выполнить(). ПроизвольныйЗапрос.Выполнить() вернет значение обобщенного типа РезультатЗапроса<СтрокаРезультатаПроизвольногоЗапроса>. Этот тип является производным от типа Обходимое<СтрокаРезультатаПроизвольногоЗапроса>, поэтому результат запроса сразу же можно использовать в цикле для ... из либо создать массив на его основе.

Для обращения к полям результата запроса можно использовать их псевдонимы из текста запроса или, если их нет, псевдонимы, автоматически сформированные «1С:Шиной».

// Обойти результат запроса и обработать его.
для СтрокаРезультат из РезультатЗапроса
   пер СотрудникСсылка = СтрокаРезультат.Ссылка    
   пер СотрудникФИО = СтрокаРезультат.ФИО
;

// Либо создать массив на основе результата запроса.
знч Результат = новый ЧитаемыйМассив(Запрос.Выполнить())

Если псевдонимы нужных вам полей определяются программным алгоритмом, то можно использовать синтаксис [].

// Обойти результат запроса и обработать его.
знч ПолеСсылки = "Ссылка"
знч ПолеФИО = "ФИО"
для СтрокаРезультата из РезультатЗапроса
   пер СотрудникСсылка = СтрокаРезультата[ПолеСсылки]    
   пер СотрудникФИО = СтрокаРезультата[ПолеФИО]
; 

Параметры запроса

Для установки параметров запроса используйте метод ПроизвольныйЗапрос.УстановитьПараметр().

// Установить значения параметров запроса.
Запрос.УстановитьПараметр("Возраст", 40)

При установке параметров запроса «1С:Шина» не выполняет никаких проверок. Можно установить значение параметра, которого нет в тексте запроса. Можно повторно установить значение параметра, тем самым «затерев» предыдущее значение.