Здравствуйте, пытаюсь вывести последнею цену закупки в отчете, но не выводит, где мог ошибиться

```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Закупки.Организация КАК Организация,
    Закупки.Номенклатура КАК Номенклатура,
    ВЫБОР КОГДА Закупки.Количество=0 ТОгда
    0
    Иначе Закупки.Сумма/Закупки.Количество
    Конец КАК ЦенаЗакупки
    ПОМЕСТИТЬ ВТ_Закупка
    ИЗ
    РегистрНакопления.Закупки КАК Закупки
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
    ВЫБРАТЬ ПЕРВЫЕ 1
    МАКСИМУМ(Закупки.Период) КАК Период,
    МАКСИМУМ(Закупки.Документ.Номер) КАК Номер,
    Закупки.Организация КАК Организация,
    Закупки.Номенклатура КАК Номенклатура
    ИЗ
    РегистрНакопления.Закупки КАК Закупки
    СГРУППИРОВАТЬ ПО
    Закупки.Организация,
    Закупки.Номенклатура
    ) КАК ВРЕМ
    ПО Закупки.Номенклатура = ВРЕМ.Номенклатура И Закупки.Организация=ВРЕМ.Организация И ЗАКУПКИ.ПЕриод=ВРем.ПЕриод И Закупки.Документ.Номер=ВРЕМ.Номер;
    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЗапасыОстатки.Организация КАК Организация,
    ЗапасыОстатки.СтруктурнаяЕдиница КАК Склад,
    ЗапасыОстатки.КоличествоОстаток КАК Количество,
    ВЫБОР
    КОГДА ЗапасыОстатки.ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
    ТОГДА 0
    ИНАЧЕ ЗапасыОстатки.КоличествоОстаток
    КОНЕЦ КАК Резерв,
    ВЫРАЗИТЬ(ЕСТЬNULL(ВТ_Закупка.ЦенаЗакупки,0) КАК ЧИСЛО (15,2)) КАК ЦенаЗакупки,
    ЗапасыОстатки.СуммаОстаток КАК Сумма,
    ЗапасыОстатки.Номенклатура КАК Номенклатура,
    ЗапасыОстатки.Характеристика КАК Характеристика,
    ВЫБОР
    КОГДА НЕ ЗапасыОстатки.КоличествоОстаток = 0
    ТОГДА ВЫРАЗИТЬ( ЗапасыОстатки.СуммаОстаток / ЗапасыОстатки.КоличествоОстаток КАК ЧИСЛО (15,2))
    ИНАЧЕ 0
    КОНЕЦ КАК Цена,
    ЗапасыОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
    ЗапасыОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
    ИЗ
    РегистрНакопления.Запасы.Остатки КАК ЗапасыОстатки
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Закупка КАК ВТ_Закупка
    ПО (ВТ_Закупка.Номенклатура = ЗапасыОстатки.Номенклатура
    И ВТ_Закупка.Организация = ЗапасыОстатки.Организация )
```
---
Получилось в итоге так вывести

```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Закупки.Организация КАК Организация,
    Закупки.Номенклатура КАК Номенклатура,
    ВЫБОР КОГДА Закупки.Количество=0 ТОгда
    0
    Иначе Закупки.Сумма/Закупки.Количество
    Конец КАК ЦенаЗакупки
    ПОМЕСТИТЬ ВТ_Закупка
    ИЗ
    РегистрНакопления.Закупки КАК Закупки
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    МАКСИМУМ(Закупки.Период) КАК Период,
    Закупки.Организация КАК Организация,
    Закупки.Номенклатура КАК Номенклатура
    ИЗ
    РегистрНакопления.Закупки КАК Закупки
    СГРУППИРОВАТЬ ПО
    Закупки.Организация,
    Закупки.Номенклатура
    ) КАК ВРЕМ
    ПО Закупки.Номенклатура = ВРЕМ.Номенклатура И Закупки.Организация=ВРЕМ.Организация И ЗАКУПКИ.ПЕриод=ВРем.ПЕриод;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЗапасыОстатки.Организация КАК Организация,
    ЗапасыОстатки.СтруктурнаяЕдиница КАК Склад,
    ЗапасыОстатки.КоличествоОстаток КАК Количество,
    ВЫБОР
    КОГДА ЗапасыОстатки.ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
    ТОГДА 0
    ИНАЧЕ ЗапасыОстатки.КоличествоОстаток
    КОНЕЦ КАК Резерв,
    ЕСТЬNULL(ВТ_Закупка.ЦенаЗакупки,0) КАК ЦенаЗакупки,
    ЗапасыОстатки.СуммаОстаток КАК Сумма,
    ЗапасыОстатки.Номенклатура КАК Номенклатура,
    ЗапасыОстатки.Характеристика КАК Характеристика,
    ВЫБОР
    КОГДА НЕ ЗапасыОстатки.КоличествоОстаток = 0
    ТОГДА ЗапасыОстатки.СуммаОстаток / ЗапасыОстатки.КоличествоОстаток
    ИНАЧЕ 0
    КОНЕЦ КАК Цена,
    ЗапасыОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
    ЗапасыОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
    ИЗ
    РегистрНакопления.Запасы.Остатки КАК ЗапасыОстатки
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Закупка КАК ВТ_Закупка
    ПО (ВТ_Закупка.Номенклатура = ЗапасыОстатки.Номенклатура
    И ВТ_Закупка.Организация = ЗапасыОстатки.Организация )
```
---
МАКСИМУМ(Закупки.Период) КАК Период,
МАКСИМУМ(Закупки.Документ.Номер) КАК Номер,
Закупки.Организация КАК Организация,
Закупки.Номенклатура КАК Номенклатура

а почему не через:
ЦеныНоменклатурыПоставщиковСрезПоследних.Цена
или
ЦеныНоменклатурыСрезПоследних.Цена
?
---
вот так можно

```1c
    //выборка номенклатуры с последней ценой продажи по дате
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ПартииТоваровКомпанииОстатки.Номенклатура.Артикул,
    | СУММА(ПартииТоваровКомпанииОстатки.КоличествоОстаток) КАК КоличествоОстаток
    |ПОМЕСТИТЬ ВТ
    |ИЗ
    | РегистрНакопления.ПартииТоваровКомпании.Остатки(
    | &НаДату,
    | ТИПЗНАЧЕНИЯ(Партия) = ТИП(Документ.ПоступлениеТоваров)
    | И Партия.Контрагент = &ПартияКонтрагент) КАК ПартииТоваровКомпанииОстатки
    |ГДЕ
    | ПартииТоваровКомпанииОстатки.КоличествоОстаток > 0
    | И ПартииТоваровКомпанииОстатки.СкладКомпании В(&СкладКомпании)
    | И ПартииТоваровКомпанииОстатки.Номенклатура.Производитель = &Производитель
    |
    |СГРУППИРОВАТЬ ПО
    | ПартииТоваровКомпанииОстатки.Номенклатура.Артикул
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    //максимум периода
    |ВЫБРАТЬ
    | Цены.Номенклатура,
    | МАКСИМУМ(Цены.Период) КАК Период
    |ПОМЕСТИТЬ ВТ1
    |ИЗ
    | РегистрСведений.Цены КАК Цены
    |ГДЕ
    | Цены.ТипЦен = &ТипЦен
    |
    |СГРУППИРОВАТЬ ПО
    | Цены.Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    //получаем номенклатуру с ценой и посделней датой, нужно соединять и по номенклатуре и по периоду
    |ВЫБРАТЬ
    | Цены.Номенклатура,
    | Цены.Цена
    |ПОМЕСТИТЬ ВТ3
    |ИЗ
    | РегистрСведений.Цены КАК Цены
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ1 КАК ВТ1
    | ПО Цены.Номенклатура = ВТ1.Номенклатура
    | И Цены.Период = ВТ1.Период
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ.НоменклатураАртикул КАК Артикул,
    | ВТ.КоличествоОстаток КАК Количество,
    | ВТ3.Цена
    |ИЗ
    | ВТ КАК ВТ
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ3 КАК ВТ3
    | ПО ВТ.НоменклатураАртикул = ВТ3.Номенклатура.Артикул";
```
---
ВЫБРАТЬ ПЕРВЫЕ 1вот это абсолютно лишнее.
И надо еще учитывать, что запись с максимальным периодом и запись с максимальным номером могут быть две разные записи, тогда внутреннее соединение не получится.
(2) (3) Цены закупки могут не фиксироваться установкой цен или ценами поставщика.
---
...В таблицу ВТЦены выбрать данные по срезу последних цен...
(5) ...Цены закупки могут не фиксироваться установкой цен или ценами поставщика...

Соглсен, могут.

Тогда так: "В таблицу ВТЦены выбрать данные по ценам в разрезе измерений таблицы ВТЗакупка"
---
Вложенный подзапрос однозначно зря. Лучше через временную таблицу.
И, согласен с (2)

В таблицу ВТЗакупка выбрать закупки
В таблицу ВТЦены выбрать данные по срезу последних цен
Соединить таблицу ВТЗакупки с таблицей ВТЦены левым соединением по организации и номенклатуре.
---
Получилось в итоге так вывести

```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Закупки.Организация КАК Организация,
    Закупки.Номенклатура КАК Номенклатура,
    ВЫБОР КОГДА Закупки.Количество=0 ТОгда
    0
    Иначе Закупки.Сумма/Закупки.Количество
    Конец КАК ЦенаЗакупки
    ПОМЕСТИТЬ ВТ_Закупка
    ИЗ
    РегистрНакопления.Закупки КАК Закупки
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    МАКСИМУМ(Закупки.Период) КАК Период,
    Закупки.Организация КАК Организация,
    Закупки.Номенклатура КАК Номенклатура
    ИЗ
    РегистрНакопления.Закупки КАК Закупки
    СГРУППИРОВАТЬ ПО
    Закупки.Организация,
    Закупки.Номенклатура
    ) КАК ВРЕМ
    ПО Закупки.Номенклатура = ВРЕМ.Номенклатура И Закупки.Организация=ВРЕМ.Организация И ЗАКУПКИ.ПЕриод=ВРем.ПЕриод;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЗапасыОстатки.Организация КАК Организация,
    ЗапасыОстатки.СтруктурнаяЕдиница КАК Склад,
    ЗапасыОстатки.КоличествоОстаток КАК Количество,
    ВЫБОР
    КОГДА ЗапасыОстатки.ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
    ТОГДА 0
    ИНАЧЕ ЗапасыОстатки.КоличествоОстаток
    КОНЕЦ КАК Резерв,
    ЕСТЬNULL(ВТ_Закупка.ЦенаЗакупки,0) КАК ЦенаЗакупки,
    ЗапасыОстатки.СуммаОстаток КАК Сумма,
    ЗапасыОстатки.Номенклатура КАК Номенклатура,
    ЗапасыОстатки.Характеристика КАК Характеристика,
    ВЫБОР
    КОГДА НЕ ЗапасыОстатки.КоличествоОстаток = 0
    ТОГДА ЗапасыОстатки.СуммаОстаток / ЗапасыОстатки.КоличествоОстаток
    ИНАЧЕ 0
    КОНЕЦ КАК Цена,
    ЗапасыОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
    ЗапасыОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
    ИЗ
    РегистрНакопления.Запасы.Остатки КАК ЗапасыОстатки
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Закупка КАК ВТ_Закупка
    ПО (ВТ_Закупка.Номенклатура = ЗапасыОстатки.Номенклатура
    И ВТ_Закупка.Организация = ЗапасыОстатки.Организация )
```