Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Пакетный запрос ⇐ ПредыдущаяСтр 3 из 3
ВЫБРАТЬ ЦеныНоменклатуры.Номенклатура КАК Номенклатура, ЦеныНоменклатуры.Цена КАК Цена ПОМЕСТИТЬ ВложеннаяТаблица ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ГДЕ ЦеныНоменклатуры.ТипЦен = &ЦенаПокупки
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.Цена ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ГДЕ ЦеныНоменклатуры.ТипЦен = &ЦенаПродажи ; /////////////////////////////////////// ВЫБРАТЬ ВложеннаяТаблица.Номенклатура, ВложеннаяТаблица.Цена ИЗ ВложеннаяТаблица КАК ВложеннаяТаблица
СГРУППИРОВАТЬ ПО ВложеннаяТаблица.Номенклатура, ВложеннаяТаблица.Цена
Внешние таблицы
ВЫБРАТЬ ТаблицаТоваров.Номенклатура, ТаблицаТоваров.Цена ПОМЕСТИТЬ Товары ИЗ &ТаблицаТоваров КАК ТаблицаТоваров ; //////////////////// ВЫБРАТЬ Товары.Номенклатура, Товары.Цена ИЗ Товары КАК Товары СГРУППИРОВАТЬ ПО Товары.Номенклатура, Товары.Цена
Замечания: 1) Первый запрос – всегда простая выборка 2) Обязательно использование менеджера временных таблиц
Запрос = Новый Запрос(); Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц();
Запрос.Текст = «…»;
Запрос.установитьПараметр(«ТаблицаТоваров», ЭтотОбъект.Товары.Выгрузить());
Соединение (join)
В 1С такие соединения: внутреннее, левое, правое, полное
Т1
Т2
Условие: Т1.П1 = Т2.П3. Выбираются П1 (П3), П2, П4
Т1 внутреннее соединение Т2
Т1 левое соединение Т2
Т1 правое соединение Т2
Т1 полное соединение Т2
Левое Ç Правое = Внутреннее Левое È Правое = Полное
Выбираем номенклатуру и цену, если цены нет, то цена = 0
ВЫБРАТЬ Товары.Номенклатура, Товары.Количество, МИНИМУМ(ЕстьNULL (Цены.Цена, 0)) КАК Цена ИЗ Документ.ПриходнаяНакладная.Товары КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены ПО Товары.Номенклатура = Цены.Номенклатура И Цены.ТипЦен = &ЦенаПокупки ГДЕ Товары.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО Товары.Номенклатура, Товары.Количество
Выбираем номенклатуру и цену, если цена есть
ВЫБРАТЬ Товары.Номенклатура, Товары.Количество, МИНИМУМ(Цены.Цена) КАК Цена ИЗ Документ.ПриходнаяНакладная.Товары КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены ПО Товары.Номенклатура = Цены.Номенклатура И Цены.ТипЦен = &ЦенаПокупки ГДЕ Товары.Ссылка = &Ссылка НЕ Цены.Цена ЕСТЬNULL СГРУППИРОВАТЬ ПО Товары.Номенклатура, Товары.Количество
Итоги
ВЫБРАТЬ Товары.Номенклатура, Товары.Количество, ЕстьNULL(Цены.Цена, 0) КАК Цена ИЗ Документ.ПриходнаяНакладная.Товары КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены ПО Товары.Номенклатура = Цены.Номенклатура И Цены.ТипЦен = &ЦенаПокупки ГДЕ Товары.Ссылка = &Ссылка ИТОГИ МАКСИМУМ(Цена) ПО Номенклатура
До итогов
Итог МАКСИМУМ(Цена) по Номенклатура 1) без группировок Выборка = Запрос.Выполнить.Выбрать(); или Выборка = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.Прямой);
1) c группировками ВыборкаИтогов = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаИтогов = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаИтогов.Следующий() Цикл Номенклатура = ВыборкаИтогов.Номенклатура; МаксЦена = ВыборкаИтогов.Цена; ВыборкаДетали = ВыборкаИтогов.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл Количество = ВыборкаДетали.Количество; Цена = ВыборкаДетали.Цена; // Номенклатура тоже известна КонецЦикла;
КонецЦикла;
Date: 2015-05-05; view: 403; Нарушение авторских прав |