Имя: Пароль:
1C
 
Запрос, оценка номенклатуры документа на момент проведения.
0 Sinderlok
 
13.06.17
13:40
Здравствуйте, нужна небольшая помощь. Есть запрос:

ВЫБРАТЬ
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,
    ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
    ЦеныНоменклатуры.Цена КАК Цена
ПОМЕСТИТЬ НоменклатураЦены
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Обороты(
            &Начало,
            &Конец,
            Регистратор,
            Склад = &Склад
                И Организация = &Организация) КАК ТоварыОрганизацийОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ПО ТоварыОрганизацийОбороты.Период >= ЦеныНоменклатуры.Период
            И (ЦеныНоменклатуры.Номенклатура = ТоварыОрганизацийОбороты.Номенклатура)
ГДЕ
    ЦеныНоменклатуры.ВидЦены = &ВидЦены
    И ЦеныНоменклатуры.Период МЕЖДУ &Начало И &Конец

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатуры.Номенклатура,
    ЦеныНоменклатуры.Характеристика,
    ЦеныНоменклатуры.Цена

Который в результате выводит примерно такие цены на товар:

01.01.2008 Вентилятор 1068руб
01.01.2017 Вентилятор 1890руб.

Нужно подсчитать стоимость товара на момент прихода и вывести вот так.

Дата | Документ(Регистратор) | стоимость

Моя проблема состоит в том что стоимость всех вентиляторов по 1068 рублей считает правильно, но как только дело доходит до новой цены в 1890рублей запрос почему то делает умножает не новую цену вентилятора на количество, а сумму обоих цен на количество.
Вот этот второй запрос которые вычисляет сумму.

ВЫБРАТЬ
    СУММА(НоменклатураЦены.Цена * ТоварыОрганизацийОбороты.КоличествоОборот) КАК Сумма,
    ТоварыОрганизацийОбороты.Регистратор КАК Регистратор,
    ТоварыОрганизацийОбороты.Период КАК Период
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Обороты(
            &Начало,
            &Конец,
            Регистратор,
            Склад = &Склад
                И Организация = &Организация) КАК ТоварыОрганизацийОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураЦены КАК НоменклатураЦены
        ПО (НоменклатураЦены.Номенклатура = ТоварыОрганизацийОбороты.Номенклатура)

СГРУППИРОВАТЬ ПО
    ТоварыОрганизацийОбороты.Регистратор,
    ТоварыОрганизацийОбороты.Период

Помогите пожалуйста, что я делаю не так?
1 Джинн
 
13.06.17
13:44
Все. Я давал Вам ссылку - Вы в ней не разобрались. Прочитайте еще раз и вникните.
2 FIXXXL
 
13.06.17
13:48
в двух словах: сначала получаешь дату, потом по дате цену
агрегирующие функции в соседних полях ничего не знают друг о друге
3 Buster007
 
13.06.17
13:49
(1) так судя по пред. теме, он смог сделать срез последних, но вот похоже копи-паст вылетел из головы..
4 Джинн
 
13.06.17
13:52
Книга знаний: Срез последних на каждую дату в запросе

Обратите особое внимание на МАКСИМУМ