Разработка в 1С 8.0

       

Код:


//создание объекта Запрос

Запрос = Новый Запрос("

|ВЫБРАТЬ Код, Наименование

|ИЗ Справочник.Номенклатура");

 

//выполнение запроса и получение результата 

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

 

//получение выборки из результата запроса

Выборка = РезультатЗапроса.Выбрать();

 

//обход записей в выборке

Пока Выборка.Следующий() Цикл

   

//обращение к полям  

Сообщить(Выборка.Наименование);  

КонецЦикла;

Два основных элемента механизма запросов ? это язык запросов и обход выборки из результата запроса. Именно в них заключена основная мощь механизма запросов, поэтому ниже они будут рассмотрены более подробно. Но прежде, чем мы перейдем к написанию запросов «с чистого листа», познакомимся с Конструктором запросов, который значительно упрощает освоение языка запросов.  

 


ВЫБРАТЬНаименование, ДатаПриема

ПОДСТРОКА(Наименование,1,2) КАК Сокращение,  

ДЕНЬ(ДатаПриема) КАК Число,  

МЕСЯЦ(ДатаПриема) КАК Месяц,  

ГОД(ДатаПриема) КАК Год  

ИЗ Справочник.Сотрудники

Код:




ВЫБРАТЬ

Наименование,

ЗакупочнаяЦена КАК Цена,  

ВЫБОР

Когда ЭтоГруппа = Истина Тогда "Это группа"  

Когда ЗакупочнаяЦена >= 1000 Тогда "1000 и выше"  

Когда ЗакупочнаяЦена >= 100 Тогда "100 - 1000"  

Когда ЗакупочнаяЦена >= 10 Тогда "10 - 100"  

Когда ЗакупочнаяЦена > 0 Тогда "0 - 10"  

Иначе "Не задана"  

КОНЕЦ КАК Диапазон

 

ИЗ Справочник.Номенклатура

Код:




Запрос= Новый Запрос("ВЫБРАТЬ * ИЗ Документ.ПриходнаяНакладная 

|ГДЕ Дата МЕЖДУ &НачДата и &КонДата");

 

Запрос.УстановитьПараметр("НачДата",ВыбНачалоПериода);

Запрос.УстановитьПараметр("КонДата",ВыбКонецПериода);

 

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

В качестве параметра может быть передано любое значение, например, значение одного из примитивных типов (число, строка, дата, булево), ДокументСсылка, СправочникСсылка, список значений и т.д.  

 

Группы справочника и список значений часто применяются с ключевым словом В. Если передается группа справочника (или родительский элемент для справочников из одних элементов), то можно применить конструкцию В ИЕРАРХИИ.  

 

Например, покажем цены на товары из указанного списка:  

Код:




//1-й пример: отбор по списку товаров

Запрос = Новый Запрос("

|ВЫБРАТЬ * ИЗ Справочник.Номенклатура

|ГДЕ Ссылка В &СписокТоваров");

 

Запрос.УстановитьПараметр("СписокТоваров",СписокВыбранныхТоваров);

 

//2-й пример: отбор по группе товаров

Запрос = Новый Запрос("

| ВЫБРАТЬ * ИЗ Справочник.Номенклатура

| ГДЕ Ссылка В ИЕРАРХИИ &ГруппаТоваров");

Запрос.УстановитьПараметр("ГруппаТоваров",ВыбГруппа);




ВЫБРАТЬ

Док.Номенклатура,Док.Номенклатура.Услуга КАК Услуга,  

Док.Номенклатура.ЗакупочнаяЦена КАК ЗакупочнаяЦена,  

Док.Количество, Док.Сумма,  

ОстаткиСкл.КоличествоОстаток КАК КоличествоСкл,  

Остатки.КоличествоОстаток, Остатки.СуммаОстаток  

ИЗ

Документ.РасходнаяНакладная.Состав КАК Док  

ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

РегистрНакопления.УчетНоменклатуры.Остатки(,  

Номенклатура В (&ПарНоменклатура) И  

Склад = &ПарСклад) КАК ОстаткиСкл  

ПО

Док.Номенклатура = ОстаткиСкл.Номенклатура  

ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ  

РегистрНакопления.СтоимостнойУчетНоменклатуры.Остатки(&Момент,  

Номенклатура В (&ПарНоменклатура)) КАК Остатки  

ПО Док.Номенклатура = Остатки.Номенклатура  

ГДЕ Док.Ссылка = &Ссылка



Содержание раздела