Задача. Есть список документов поступлений. Написать запрос, который получает последнюю цену товара из табличной части документа.
Вариант №1. Нашел в интернете.
ВЫБРАТЬ
ПоступлениеТоваровУслугТовары.Номенклатура,
ПоступлениеТоваровУслугТовары.Ссылка.Дата,
ПоступлениеТоваровУслугТовары.Цена
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
ПоступлениеТоваровУслугТовары.Ссылка В
(ВЫБРАТЬ ПЕРВЫЕ 1
ПоступлениеТоваровУслугТоварыУсловие.Ссылка
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТоварыУсловие
ГДЕ
ПоступлениеТоваровУслугТоварыУсловие.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура
УПОРЯДОЧИТЬ ПО
ПоступлениеТоваровУслугТоварыУсловие.Ссылка.Дата УБЫВ)
Вариант №2. так делаю я, работает быстрее варианта №1.
ВЫБРАТЬ
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК Дата
ПОМЕСТИТЬ ВТ1
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура,
ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ХарактеристикаНоменклатуры,
Дата
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПоступлениеТоваровУслугТовары.Номенклатура,
ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры,
ПоступлениеТоваровУслугТовары.Цена
ИЗ
ВТ1 КАК ВТ1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ПО ВТ1.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура
И ВТ1.ХарактеристикаНоменклатуры = ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры
И ВТ1.Дата = ПоступлениеТоваровУслугТовары.Ссылка.Дата
Вариант №3. Нашел в интернете.
ВЫБРАТЬ
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровУслугТовары.Ссылка.Дата,
ПоступлениеТоваровУслугТовары.Цена КАК Цена
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК Дата,
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура) КАК ВложенныйЗапрос
ПО ПоступлениеТоваровУслугТовары.Ссылка.Дата = ВложенныйЗапрос.Дата
И ПоступлениеТоваровУслугТовары.Номенклатура = ВложенныйЗапрос.Номенклатура
Проверял на конфигурации Управление производственным предприятием, редакция 1.3 (1.3.49.1) .
Какие еще есть варианты решения этой задачи через запросы? Поделитесь, добавлю в статью.