Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПроектБизнесПроц_1С.doc
Скачиваний:
12
Добавлен:
08.12.2018
Размер:
1.34 Mб
Скачать
      1. Написание текста запроса и его выполнение

Методически, работа с объектом типа Запрос строится следующим образом:

// Создаем объект запрос Запрос = Новый Запрос(); Запрос.Текст = "Здесь мы запишем текст запроса"; // Если текст запроса содержит некоторые параметры, то перед // его выполнением необходимо им присвоить конкретные значения: Запрос.УстановитьПараметр("Параметр1",ЗначениеПараметра1); …………………………………………………………… Запрос.УстановитьПараметр("ПараметрN",ЗначениеПараметраN); Результат = Запрос.Выполнить(); // Обработка результата

Текст запроса всегда начинается с ключевого слова ВЫБРАТЬ языка запросов, за которым через запятую следует указать: из каких реквизитов каких объектов запрос должен сделать выборку.

Так, в нашем случае нам нужны свойства Период и Курс регистра сведений Курсы. Поэтому мы можем записать следующий текст:

Запрос.Текст ="ВЫБРАТЬ |РегистрСведений.Курсы.Период, РегистрСведений.Курсы.Курс";

Если мы сейчас выполним запрос, то объект построит следующую таблицу, содержащую результат запроса:

Период

Курс

28.12.2007

25,2600

01.01.2008

24,8500

01.01.2009

23,7844

31.01.2009

23,6222

02.03.2009

23,5729

01.04.2009

23,3801

01.05.2009

23,1021

31.05.2009

23,7090

30.06.2009

23,3483

30.07.2009

23,2450

18.08.2009

23,3532

Для удобства написания текста запроса можно таблице, из которой объект будет выбирать записи, дать краткое название – псевдоним, применив ключевое слово КАК:

Запрос.Текст = " ВЫБРАТЬ Курсы.Период, Курсы.Курс |ИЗ РегистрСведений.Курсы КАК Курсы";

Сейчас в выборку попадают все записи, что есть в регистре (за все возможные периоды). Для того чтобы записи удовлетворяли какому-либо условию, можно в тексте запроса после оператора ВЫБРАТЬ применить ключевое слово ГДЕ, после которого написать условие отбора записей.

В учебных целях мы ограничим выборку датой регистрации объединения:

Запрос.Текст = "ВЫБРАТЬ Курсы.Период, Курсы.Курс |ИЗ РегистрСведений.Курсы КАК Курсы |ГДЕ Курсы.Период >= &Период";

Обратим внимание на знак & перед именем параметра запроса.

Чтобы запрос работал правильно, необходимо этому параметру присвоить значение перед выполнением запроса, поэтому полный текст будет выглядеть следующим образом:

// Создаем объект запрос Запрос = Новый Запрос(); // Формируем текст запроса Запрос.Текст = "ВЫБРАТЬ Курсы.Период, Курсы.Курс |ИЗ РегистрСведений.Курсы КАК Курсы |ГДЕ Курсы.Период >= &Период"; // Устанавливаем значение параметра Запрос.УстановитьПараметр("Период", Константы.ДатаРегистрации.Получить()); // И выполняем запрос Результат = Запрос.Выполнить();

Последнее, что нам осталось сделать - это указать порядок, в котором записи будут располагаться в таблице, содержащей результат запроса:

Запрос.Текст = "ВЫБРАТЬ Курсы.Период, Курсы.Курс |ИЗ РегистрСведений.Курсы КАК Курсы |ГДЕ Курсы.Период >= &Период |УПОРЯДОЧИТЬ ПО Период УБЫВ";