Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Запросы

 

1) Простая выборка

ВЫБРАТЬ

Номенклатура.Код КАК Код,

Номенклатура.Наименование КАК Наименование,

Номенклатура.Ссылка КАК Ссылка

ИЗ

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

 

Правила записи:

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

Запрос.Текст = «ВЫБРАТЬ

| Номенклатура.Код КАК Код,

| Номенклатура.Наименование КАК Наименование,

| Номенклатура.Ссылка КАК Ссылка

|ИЗ

| Справочник.Номенклатура КАК Номенклатура»;

 

Выполнение запроса:

1) Выборка = Запрос.Выполнить().Выбрать();

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

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

КонецЦикла;

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

Если НЕ Результат.Пустой() Тогда

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

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

КонецЦикла;

КонецЕсли;

3) Таблица = Запрос.Выполнить.Выгрузить();

Для Каждого СтрокаТаблицы Из Таблица Цикл

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

КонецЦикла;

 

2) Выборка с условием

ВЫБРАТЬ

Номенклатура.Код КАК Код,

Номенклатура.Наименование КАК Наименование,

Номенклатура.Ссылка КАК Ссылка

ИЗ

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

ГДЕ

Номенклатура.ЦенаПокупки < 100

И Номенклатура.ЦенаПродажи > 140

 

3) Упорядочивание

ВЫБРАТЬ

Номенклатура.Код КАК Код,

Номенклатура.Наименование КАК Наименование,

Номенклатура.Ссылка КАК Ссылка

ИЗ

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

УПОРЯДОЧИТЬ ПО

Номенклатура.Код

 

ВЫБРАТЬ

Номенклатура.Код КАК Код,

Номенклатура.Наименование КАК Наименование,

Номенклатура.Ссылка КАК Ссылка

ИЗ

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

УПОРЯДОЧИТЬ ПО

Номенклатура.Код ВОЗР

 

ВЫБРАТЬ

Номенклатура.Код КАК Код,

Номенклатура.Наименование КАК Наименование,

Номенклатура.Ссылка КАК Ссылка

ИЗ

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

УПОРЯДОЧИТЬ ПО

Номенклатура.Код УБЫВ

 

4) Группировка

ВЫБРАТЬ

Цены.Контрагент,

Цены.Номенклатура,

МИНИМУМ(Цены.Цена)

ИЗ

РегистрСведений.Цены КАК Цены

СГРУППИРОВАТЬ ПО

Цены.Контрагент,

Цены.Номенклатура

 

ВЫБРАТЬ

Продажи.Номенклатура,

СУММА(Продажи.Сумма)

ИЗ

РегистрНакопления.Продажи КАК Продажи

СГРУППИРОВАТЬ ПО

Продажи.Номенклатура

 

5) Запросы с параметрами

ВЫБРАТЬ

Продажи.Номенклатура,

СУММА(Продажи.Сумма)

ИЗ

РегистрНакопления.Продажи КАК Продажи

ГДЕ

Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

СГРУППИРОВАТЬ ПО

Продажи.Номенклатура

 

В тексте:

Запрос.УстановитьПараметр(«ДатаНачала», ДатаНачала);

Запрос.УстановитьПараметр(«ДатаОкончания», ДатаОкончания);

 

6) Условия на группируемые поля

Номенклатура Сумма
Яблоки  
Груши  
Яблоки  
Груши  
Арбуз  

 

Номенклатура, которая принесла выручку не менее, чем 1000 руб.

ВЫБРАТЬ

Продажи.Номенклатура,

СУММА(Продажи.Сумма)

ИЗ

РегистрНакопления.Продажи КАК Продажи

ГДЕ

Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

ИМЕЮЩИЕ

СУММА(Продажи.Сумма) >= 1000

СГРУППИРОВАТЬ ПО

Продажи.Номенклатура

Номенклатура Сумма
Яблоки  

 

 

Номенклатура, которая каждый раз была продана на сумму не менее 100 руб.

ВЫБРАТЬ

Продажи.Номенклатура,

СУММА(Продажи.Сумма)

ИЗ

РегистрНакопления.Продажи КАК Продажи

ГДЕ

Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

ИМЕЮЩИЕ

МИНИМУМ(Продажи.Сумма) >= 100

СГРУППИРОВАТЬ ПО

Продажи.Номенклатура

Номенклатура Сумма
Груши  
Арбуз  

 

7) Выбор первых

ВЫБРАТЬ ПЕРВЫЕ 15

Продажи.Номенклатура,

СУММА(Продажи.Сумма)

ИЗ

РегистрНакопления.Продажи КАК Продажи

ГДЕ

Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

ИМЕЮЩИЕ

СУММА(Продажа.Сумма) >= 1000

УПОРЯДОЧИТЬ ПО

Продажи.Номенклатура.Наименование

СГРУППИРОВАТЬ ПО

Продажи.Номенклатура

 

ВЫБРАТЬ ПЕРВЫЕ 1

Таблица.Поле

ИЗ

Таблица

– если нужно узнать, есть ли записи

 

8) Выбор различные

ВЫБРАТЬ РАЗЛИЧНЫЕ

Цены.Контрагент,

Цены.Номенклатура

ИЗ

РегистрСведений.Цены КАК Цены

 

Знающие люди говорят, что лучше делать группировку

ВЫБРАТЬ

Цены.Контрагент,

Цены.Номенклатура

ИЗ

РегистрСведений.Цены КАК Цены

СГРУППИРОВАТЬ ПО

Цены.Контрагент,

Цены.Номенклатура

 

9) Объединение

 

ВЫБРАТЬ

Продажи.Номенклатура,

Продажи.Сумма

ИЗ

РегистрНакопления.Продажи КАК Продажи


ГДЕ

Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

И Продажи.Сумма >= 1000

 

ОБЪЕДИНИТЬ ВСЕ

 

ВЫБРАТЬ

Продажи.Номенклатура,

Продажи.Сумма

ИЗ

РегистрНакопления.Продажи КАК Продажи

ГДЕ

Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

И Продажи.Номенклатура.ЦенаПродажи >= 100

 

Если вместе «ОБЪЕДИНИТЬ ВСЕ» написать «ОБЪЕДИНИТЬ», то будут исключаться дубли. Но… те же проблемы, что и с РАЗЛИЧНЫЕ.

Обычно (over 99,9%) – «ОБЪЕДИНИТЬ ВСЕ»

 

10) Соединения

В 1С есть четыре(!) вида соединений: внутреннее, полное, левое, правое


10.1) Внутреннее соединение (Т1.Поле1 = Т2.Поле3)

Поле1 Поле2
   
   
   
   
   
   

 

Поле3 Поле4
   
   
   
   
   
   

 

ВЫБРАТЬ

Т1.Поле1,

Т1.Поле2,

Т2.Поле4

ИЗ

Т1 ВНУТРЕНЕЕ СОЕДИНЕНИЕ Т2

ПО Т1.Поле1 = Т2.Поле3

Поле1 Поле2 Поле4
     
     
     
     
     
     
     
     
     

 


10.2) Левое соединение (Т1.Поле1 = Т2.Поле3)

Поле1 Поле2
   
   
   
   
   
   

 

Поле3 Поле4
   
   
   
   
   
   

 

ВЫБРАТЬ

Т1.Поле1,

Т1.Поле2,

Т2.Поле4

ИЗ

Т1 ЛЕВОЕ СОЕДИНЕНИЕ Т2

ПО Т1.Поле1 = Т2.Поле3

Поле1 Поле2 Поле4
     
     
     
     
     
    NULL
     
     
     
     

 

 


10.3) Правое соединение (Т1.Поле1 = Т2.Поле3)

Поле1 Поле2
   
   
   
   
   
   

 

Поле3 Поле4
   
   
   
   
   
   

 

ВЫБРАТЬ

Т2.Поле3,

Т1.Поле2,

Т2.Поле4

ИЗ

Т1 ПРАВОЕ СОЕДИНЕНИЕ Т2

ПО Т1.Поле1 = Т2.Поле3

Поле3 Поле2 Поле4
     
     
     
     
     
     
     
  NULL  
  NULL  
     
     

 

 


10.4) Полное соединение (Т1.Поле1 = Т2.Поле3)

Поле1 Поле2
   
   
   
   
   
   

 

Поле3 Поле4
   
   
   
   
   
   

 


ВЫБРАТЬ

Т1.Поле1,

Т1.Поле2,

Т2.Поле3,

Т2.Поле4

ИЗ

Т1 ПОЛНОЕ СОЕДИНЕНИЕ Т2

ПО Т1.Поле1 = Т2.Поле3

Поле1 Поле2 Поле3 Поле4
       
       
       
       
       
    NULL NULL
       
       
       
       
NULL NULL    
NULL NULL    

 

Левое ∩ Правое = Внутреннее

Левое U Правое = Полное

 


11) Итоги

Номенклатура Контрагент Количество Сумма
Яблоки К1    
Груши К1    
Яблоки К2    
Арбуз К2    
Груши К1    
Арбуз К2    

 

ВЫБРАТЬ

Таблица.Номенклатура,

Таблица.Контрагент,

Таблица.Количество,

Таблица.Сумма

ИЗ

Таблица КАК Таблица

ИТОГИ

СУММА(Количество),

СУММА(Сумма)

ПО

Номенклатура

 

1) Выборка = Запрос.Выполнить.Выбрать();

2) Выборка = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

 

1:

Номенклатура Контрагент Количество Сумма
Яблоки NULL    
Яблоки К1    
Яблоки К2    
Груши NULL    
Груши К1    
Груши К1    
Арбуз NULL    
Арбуз К2    
Арбуз К2    

 

9 элементов в выборке


2:

Номенклатура Контрагент Количество Сумма
Яблоки NULL    
Яблоки К1    
Яблоки К2    
Груши NULL    
Груши К1    
Груши К1    
Арбуз NULL    
Арбуз К2    
Арбуз К2    

 

3 элемента в выборке

из выборки можно… выбрать!

И в каждой выборке из выборки будет по 2 элемента

 

 

ВыборкаИтоги = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

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

ВыборкаДетали = ВыборкаИтоги.Выбрать();

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

 

КонецЦикла;

 

КонецЦикла;

 


Работа с датами

НАЧАЛОПЕРИОДА(<Дата>, ДЕНЬ)

НАЧАЛОПЕРИОДА(<Дата>, МЕСЯЦ)

 

КОНЕЦПЕРИОДА(<Дата>, НЕДЕЛЯ)

 

ДОБАВИТЬКДАТЕ(<Дата>, МИНУТА, 5)

 

РАЗНОСТЬДАТ(<Дата1>, <Дата2>, ЧАС)

РАЗНОСТЬДАТ(<Дата1>, <Дата2>, СЕКУНДА)


 

 



<== предыдущая | следующая ==>
Пакетный запрос | Досмотр ручной клади





Date: 2015-05-05; view: 351; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.045 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию