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