Добрый день.

Есть 2 регистра накопления (ТоварыКПпоступлению и ТоварыКОтгрузке) и есть регистр сведений (ЦеныНоменклатуры).
В регистрах накопления записаны: номенклатура, харктеристика, склад, количество
В регистре сведений: номенклатура, вид цены, цена
Мне надо для определенного вида цены, заданного периода и заданного склада вывести таблицу.
В результате таблциа должна иметь вот такой вид:

Дата Регистратор Оценка
              500 (приход - расход 700+800-900-100)
01.01.2001 Приход... 700
02.02.2002 Приход... 800
03.03.2003 Расход... 900
04.04.2004 Расход... 100

Пишу вот-так:

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

    СГРУППИРОВАТЬ ПО
    ТоварыКПоступлению.Регистратор,
    ТоварыКПоступлению.Склад,
    ТоварыКПоступлению.Количество,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ТоварыКПоступлению.Номенклатура,
    ТоварыКПоступлению.Характеристика
    ;

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

    СГРУППИРОВАТЬ ПО
    ТоварыКОтгрузке.Регистратор,
    ТоварыКОтгрузке.Номенклатура,
    ТоварыКОтгрузке.Характеристика,
    ТоварыКОтгрузке.Склад,
    ТоварыКОтгрузке.Количество,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ТоварыКОтгрузке.Количество * ЦеныНоменклатурыСрезПоследних.Цена
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Поступление.Регистратор.Дата КАК РегистраторДата,
    Поступление.Регистратор КАК Регистратор,
    Поступление.СуммаПост КАК Оценка
    ИЗ
    Поступление КАК Поступление
    ГДЕ
    Поступление.Склад = &Склад

    СГРУППИРОВАТЬ ПО
    Поступление.Регистратор.Дата,
    Поступление.Регистратор,
    Поступление.СуммаПост
    ИТОГИ
    СУММА(Оценка)
    ПО
    ОБЩИЕ,
    Регистратор
```

Вторую таблицу не пойму как присоединить, чтобы получился результат, который мне нужен.
Пока что запрос выводит примерно это:
Дата Регистратор Оценка
          1500
01.01.2001 Приход... 700
02.02.2002 Приход... 800
---
Вот готовая вроде

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

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

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

    СГРУППИРОВАТЬ ПО
    ТоварыОрганизаций.Номенклатура,
    ТоварыОрганизаций.Характеристика,
    ТоварыОрганизаций.Регистратор,
    ТоварыОрганизаций.Период,
    ТоварыОрганизаций.КоличествоОборот
    ;

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ТаблицаЦен.Регистратор КАК Регистратор,
    ТаблицаЦен.Номенклатура КАК Номенклатура,
    ТаблицаЦен.Характеристика КАК Характеристика,
    ВсеЦеныНаНужныеТовары.Цена КАК Цена,
    ТаблицаЦен.Период КАК Период
    ПОМЕСТИТЬ ТаблицаНовыхЦен
    ИЗ
    ТаблицаЦен КАК ТаблицаЦен
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеЦеныНаНужныеТовары КАК ВсеЦеныНаНужныеТовары
    ПО ТаблицаЦен.Период = ВсеЦеныНаНужныеТовары.Период
    И (ВсеЦеныНаНужныеТовары.Номенклатура = ТаблицаЦен.Номенклатура)
    И (ВсеЦеныНаНужныеТовары.Характеристика = ТаблицаЦен.Характеристика)

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ТаблицаЦен.Регистратор КАК Регистратор,
    ТаблицаЦен.Номенклатура КАК Номенклатура,
    ТаблицаЦен.Характеристика КАК Характеристика,
    ВсеЦеныНаНужныеТовары.Цена КАК Цена
    ПОМЕСТИТЬ ТаблицаСтарыхЦен
    ИЗ
    ТаблицаЦен КАК ТаблицаЦен
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеЦеныНаНужныеТовары КАК ВсеЦеныНаНужныеТовары
    ПО ТаблицаЦен.Номенклатура = ВсеЦеныНаНужныеТовары.Номенклатура
    И ТаблицаЦен.Характеристика = ВсеЦеныНаНужныеТовары.Характеристика
    И ТаблицаЦен.ПериодДо = ВсеЦеныНаНужныеТовары.Период

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ТаблицаНовыхЦен.Регистратор КАК Регистратор,
    ТаблицаНовыхЦен.Номенклатура КАК Номенклатура,
    ТаблицаНовыхЦен.Характеристика КАК Характеристика,
    ТаблицаНовыхЦен.Цена - ТаблицаСтарыхЦен.Цена КАК Цена,
    ТаблицаНовыхЦен.Период КАК Период
    ПОМЕСТИТЬ ФинальныеЦены
    ИЗ
    ТаблицаСтарыхЦен КАК ТаблицаСтарыхЦен
    ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаНовыхЦен КАК ТаблицаНовыхЦен
    ПО ТаблицаСтарыхЦен.Номенклатура = ТаблицаНовыхЦен.Номенклатура
    И ТаблицаСтарыхЦен.Характеристика = ТаблицаНовыхЦен.Характеристика
    ГДЕ
    ТаблицаНовыхЦен.Регистратор = ТаблицаСтарыхЦен.Регистратор
    ;

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

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

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

    СГРУППИРОВАТЬ ПО
    ЦеныТоваровИВремяПоследнейЦены.РегистраторТО

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

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

    СГРУППИРОВАТЬ ПО
    ФинальныеЦены.Регистратор
    ИТОГИ ПО
    ОБЩИЕ
```

Единственный минус, это строчка с изменением цены, где 0. Пробовал убрать через условие на ЕСТЬ NULL, но не получилось
 Вот строчку где установка цены = 0 , не могу убрать
---
В последний запрос объединением добавить таблицу расхода, сумму сделать со знаком "-" просто.
Ну или если прям надо чтобы приход расход был, то добавляешь поле расход, куда сумму с плюсом и поле "Всего", куда из первой таблицы с плюсом, а из второй с минусом.
---
1) Для начала определись что в итоге хочешь получить. Например, непонятно зачем ты выбираешь номенклатуру и количество, если тебе нужна только сумма и регистратор. Сразу отпадут лишние группировки
2) Используешь левое соединение, но при отсутствии цен, сумма будет нулевая. Зачем тебе такие записи, если номенклатура не нужна. Юзай внутреннее
3) Отбор по складу в последней таблице, хотя можно отобрать в первых двух. Лишние данные таскаешь
В итоге, что-то типа:

```1c
    ВЫБРАТЬ
    ТоварыКПоступлению.Регистратор,
    ТоварыКПоступлению.Номенклатура,
    ТоварыКПоступлению.Характеристика,
    ТоварыКПоступлению.Количество
    ПОМЕСТИТЬ ВТ_ПриходРасход
    ИЗ
    ТоварыКПоступлению КАК ТоварыКПоступлению
    ГДЕ
    ТоварыКПоступлению.Склад = &Склад

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

    ВЫБРАТЬ
    ТоварыКОтгрузке.Регистратор,
    ТоварыКОтгрузке.Номенклатура,
    ТоварыКОтгрузке.Характеристика,
    ТоварыКОтгрузке.Количество * -1
    ИЗ
    ТоварыКОтгрузке КАК ТоварыКОтгрузке
    ГДЕ
    ТоварыКОтгрузке.Склад = &Склад
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_ПриходРасход.Регистратор.Дата,
    ВТ_ПриходРасход.Регистратор,
    ВТ_ПриходРасход.Количество * ЦеныНоменклатурыСрезПоследних.Цена КАК Сумма
    ИЗ
    ВТ_ПриходРасход КАК ВТ_ПриходРасход
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
    ПО ВТ_ПриходРасход.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    И ВТ_ПриходРасход.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика

    УПОРЯДОЧИТЬ ПО
    ВТ_ПриходРасход.Регистратор.Дата
```
---
Сделал по Вашему совету, добавил период вид цены и итоги, все работает хорошо.
Нашел регистр накопления Товары на складе и переделал по нему, работает так-же, только я неправильно понял условие изначально. Мне надо чтобы в расчете значение цены использовалось то, которое было на момент проведения документа
Вот код:

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

    СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Регистратор.Дата,
    ТоварыНаСкладахОстаткиИОбороты.Регистратор,
    ЦеныНоменклатурыСрезПоследних.Цена

    УПОРЯДОЧИТЬ ПО
    Оценка Убыв
    ИТОГИ
    СУММА(Оценка)
    ПО
    ОБЩИЕ
```

Мне надо добавлять период к РС или делать какое-то условие?
---
Мне надо чтобы в расчете значение цены использовалось то, которое было на момент проведения документа
Это все усложняет, т.к. в результате документов может быть много и у них у всех разные даты, а срез цен только на какую-то конкретную дату будет. Если хочется это в рамках запроса делать, то придется ещё несколько временных таблиц подключать и использовать соединение не со срезом последних, а с реальными записями. Общий смысл - сначала выбрать все даты регистраторов+номенклатуру+характеристику и соединить с РС "ЦеныНоменклатуры" по номенклатуре+характеристики+(дата регистратора >= Периода записи РС "ЦеныНоменклатуры"). Сгруппировать по регистратору,номенклатуре,характеристики, итог по "Период записи РС"(Максимум). В итоге у тебя получится таблица Регистратор+Номенклатура+Характеристика+Дата последней установки цены. К ней уже можно присоеденить конкретную запись РС "ЦеныНоменклатуры" с ценой, актуальной на момент проведения документа
---
Спасибо, буду пробовать
---
Вначале делал так,

```1c
    ВЫБРАТЬ
    ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
    ЦеныНоменклатуры.Характеристика КАК Характеристика,
    ЦеныНоменклатуры.Цена КАК Цена
    ПОМЕСТИТЬ ВТ_ЦеныПериод
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонПер, ВидЦены = &ВидЦены) КАК ЦеныНоменклатуры
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
    ЦеныНоменклатуры.Характеристика КАК Характеристика,
    ЦеныНоменклатуры.Цена КАК Цена
    ПОМЕСТИТЬ ВТ_ЦеныДо
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НачПер, ВидЦены = &ВидЦены) КАК ЦеныНоменклатуры
    ;

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    NULL КАК РегистраторДата,
    "Остаток_До" КАК Регистратор,
    СУММА(ВТ_ТоварыНаСкладе.КоличествоОборот * ВТ_АктуальныеЦены.Цена) КАК Оценка
    ИЗ
    ВТ_ТоварыНаСкладеДо КАК ВТ_ТоварыНаСкладе
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ЦеныДо КАК ВТ_АктуальныеЦены
    ПО (ВТ_АктуальныеЦены.Номенклатура = ВТ_ТоварыНаСкладе.Номенклатура)
    И (ВТ_АктуальныеЦены.Характеристика = ВТ_ТоварыНаСкладе.Характеристика)

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

    ВЫБРАТЬ
    ВТ_ТоварыНаСкладе.Регистратор.Дата,
    ВТ_ТоварыНаСкладе.Регистратор,
    СУММА(ВТ_ТоварыНаСкладе.КоличествоОборот * ВТ_АктуальныеЦены.Цена)
    ИЗ
    ВТ_ТоварыНаСкладеПериод КАК ВТ_ТоварыНаСкладе
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ЦеныПериод КАК ВТ_АктуальныеЦены
    ПО (ВТ_АктуальныеЦены.Номенклатура = ВТ_ТоварыНаСкладе.Номенклатура)
    И (ВТ_АктуальныеЦены.Характеристика = ВТ_ТоварыНаСкладе.Характеристика)
    СГРУППИРОВАТЬ ПО
    ВТ_ТоварыНаСкладе.Регистратор,
    ВТ_ТоварыНаСкладе.Регистратор.Дата

    УПОРЯДОЧИТЬ ПО
    РегистраторДата
    ИТОГИ
    СУММА(Оценка)
    ПО
    ОБЩИЕ
```

работает почти правильно (выводит правильные цифры для регистраторов только после изменения цены в РС, но итог в общем правильный).
выглядит примерно так сейчас:
РегистраторДата Регистратор Оценка
                                                                           29000
                                Остаток_До 0
 03.06.2008 Поступление товаров 60000
 21.04.2011 Отчет о продажах -31000

(2ая строка в случае, если что-то уже было до введенного периода). Общий итог считает правильно, как и должно быть, но я вначале не учитывал, что было изменение цены. Поэтому мне надо иметь что-то вроде:

РегистраторДата Регистратор Оценка
                                                                           29000
                                Остаток_До 0
 03.06.2008 Поступление товаров 30000
 06.06.2008 Изменение цены 30000
 21.04.2011 Отчет о продажах -31000

т.е. до изменения цены оценка (кол-во*цена) должна считаться по старой цене, а изменение цены (регистратор регистра сведений ЦеныНоменклатуры) должна отображать разницу, на которую изменилась цена (Колво * новая цена - колво * старая цена). Не пойму как это сделать.

Попробовал начало сделать Вашим вариантом, получилось как-то так:

```1c
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ТоварыОрганизацийОбороты.Номенклатура КАК Номенклатура,
    ТоварыОрганизацийОбороты.Характеристика КАК Характеристика,
    ТоварыОрганизацийОбороты.КоличествоОборот КАК КоличествоОборот,
    ТоварыОрганизацийОбороты.Регистратор КАК Регистратор
    ПОМЕСТИТЬ ВТ_ТоварыНаСкладеПериод
    ИЗ
    РегистрНакопления.ТоварыОрганизаций.Обороты(
    &НачПер,
    &КонПер,
    Регистратор,
    Склад = &Склад
    И Организация = &Организация) КАК ТоварыОрганизацийОбороты
    ;

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

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

    СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОбороты.Регистратор,
    ТоварыНаСкладахОбороты.Номенклатура,
    ТоварыНаСкладахОбороты.Характеристика,
    ТоварыНаСкладахОбороты.Регистратор.Дата
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ДатыЦен.Номенклатура КАК Номенклатура,
    ДатыЦен.Характеристика КАК Характеристика,
    ЦеныНоменклатуры.Цена КАК Цена
    ПОМЕСТИТЬ ЦенаТовара
    ИЗ
    ДатыЦен КАК ДатыЦен
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И ДатыЦен.Характеристика = ЦеныНоменклатуры.Характеристика
    И ДатыЦен.Период = ЦеныНоменклатуры.Период
    И ВидЦены = &ВидЦены

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    NULL КАК РегистраторДата,
    "Остаток_До" КАК Регистратор,
    СУММА(ВТ_ТоварыНаСкладе.КоличествоОборот * ЦенаТовара.Цена) КАК Оценка
    ИЗ
    ВТ_ТоварыНаСкладеДо КАК ВТ_ТоварыНаСкладе
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦенаТовара
    ПО (ЦенаТовара.Номенклатура = ВТ_ТоварыНаСкладе.Номенклатура)
    И (ЦенаТовара.Характеристика = ВТ_ТоварыНаСкладе.Характеристика)

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

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

    УПОРЯДОЧИТЬ ПО
    РегистраторДата
    ИТОГИ
    СУММА(Оценка)
    ПО
    ОБЩИЕ
```

Только итоговая оценка в этом варианте получается не правильная. Пока что не могу исправить ни 1, ни 2 вариант, чтобы выводило то что нужно.
---
Во втором варианте ошибся с РН
Исправил, но все равно не правильная оценка получается

```1c
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ТоварыОрганизацийОбороты.Номенклатура КАК Номенклатура,
    ТоварыОрганизацийОбороты.Характеристика КАК Характеристика,
    ТоварыОрганизацийОбороты.КоличествоОборот КАК КоличествоОборот,
    ТоварыОрганизацийОбороты.Регистратор КАК Регистратор
    ПОМЕСТИТЬ ВТ_ТоварыНаСкладеПериод
    ИЗ
    РегистрНакопления.ТоварыОрганизаций.Обороты(
    &НачПер,
    &КонПер,
    Регистратор,
    Склад = &Склад
    И Организация = &Организация) КАК ТоварыОрганизацийОбороты
    ;

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

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

    СГРУППИРОВАТЬ ПО
    ТоварыОрганизацийОбороты.Регистратор,
    ТоварыОрганизацийОбороты.Номенклатура,
    ТоварыОрганизацийОбороты.Характеристика,
    ТоварыОрганизацийОбороты.Регистратор.Дата
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ДатыЦен.Номенклатура КАК Номенклатура,
    ДатыЦен.Характеристика КАК Характеристика,
    ЦеныНоменклатуры.Цена КАК Цена
    ПОМЕСТИТЬ ЦенаТовара
    ИЗ
    ДатыЦен КАК ДатыЦен
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И ДатыЦен.Характеристика = ЦеныНоменклатуры.Характеристика
    И ДатыЦен.Период = ЦеныНоменклатуры.Период
    И ВидЦены = &ВидЦены

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    NULL КАК РегистраторДата,
    "Остаток_До" КАК Регистратор,
    СУММА(ВТ_ТоварыНаСкладе.КоличествоОборот * ЦенаТовара.Цена) КАК Оценка
    ИЗ
    ВТ_ТоварыНаСкладеДо КАК ВТ_ТоварыНаСкладе
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦенаТовара
    ПО (ЦенаТовара.Номенклатура = ВТ_ТоварыНаСкладе.Номенклатура)
    И (ЦенаТовара.Характеристика = ВТ_ТоварыНаСкладе.Характеристика)

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

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

    УПОРЯДОЧИТЬ ПО
    РегистраторДата
    ИТОГИ
    СУММА(Оценка)
    ПО
    ОБЩИЕ
```
---
ещё группировку и итог добавь, как у тебя в начале было.Без работающего конструктора непросто их корректно прописать )
---
Цены, вроде, нормально определяешь (во временных таблицах "ДатыЦен" и "ЦенаТовара"), Но вот что в остальных таблицах хочешь получить что-то не понял. Вроде сумма уже может быть посчитана в "ЦенаТовара", а ты что-то там дальше делаешь. А у тебя в ней получаются все установленные цены для Номенклатура+Характеристика, и если ты эту таблицу потом с чем-то соединяешь(как в последней выборке), кто у тебя дубли появятся. Наверное, поэтому суммы и не сходятся
---
Я соединяю сумму до начала периода с суммой в указанный период. Мне просто надо еще выводить как изменилась цена. Т.е. надо выводить Регистратор регистра сведений ЦеныНоменклатуры для которого должна отображаться общая сумма, на которую изменилась цена (Колво * новая цена - колво * старая цена)
---
Что-то не понимаю, как ты хочешь вывести изменение цены, если у тебя номенклатура в отчет не выводится. Цена-то только у номенклатуры есть, а у тебя одни регистраторы. Так же непонятно зачем тебе "ВТ_ТоварыНаСкладеДо", если там цены нет, а количества тебе не нужны, цены в РС "ЦеныНоменклатуры" лежат. Общий смысл отчета сформулируй.
Если тебе нужны изменения цен, то в таблице "ЦенаТовара" присоедени ещё РС "ЦеныНоменклатуры" со срезом на дату "До" и пользуйся. Зачем все остальное-то?
---
Должно быть что-то наподобие этого
---
В 1ом варианте итог хотя бы правильный, а во втором итог получается меньше, чем должен быть
---
Вот результаты запросов: 1ый
---
а вот второй
---
Как видно, у меня общий итог сходится, а промежуточные нет. По поводу изменения цены (это документ, который проводится в РС ценыноменклатуры) на скрине видно, там "установка цен" написано, считается так (весь товар который есть на складе на момент установки цены * Новую цену, которая указана в этом документе - весь товар который есть на складе на момент установки цены * старую цену, которая была до проведения документа). Скрин с отчета ТОРГ 29 в рознице, мне надо чтобы запросом получилось что-то наподобие этого
---
По поводу изменения цены (это документ, который проводится в РС ценыноменклатуры) на скрине видно, там "установка цен" написано, считается так (весь товар который есть на складе на момент установки цены * Новую цену, которая указана в этом документе - весь товар который есть на складе на момент установки цены * старую цену, которая была до проведения документа)
Чет фигня это, имхо. Документы "Установка цен" у тебя в РН "ТоварыНаСкладах" ничего не пишут, но каждое их появление должно пересчитывать остатки. Т.е. для каждого документа установки цен нужно рассчитать текущие остатки, последние и предыдущие цены и добавить ещё к обычным движениям. Одним запросом это на грани невозможно/слишком заморочено
---
Я хотел изменение цены посчитать отдельным запросом, а потом объединить с результатом того запроса, т.е. вывести приход и расход, после вывести изменение цены и по всему этому посчитать общие итоги
---
Ну изменение цены-то запросом ты посчитаешь, но что бы посчитать изменение стоимости, тебе нужны остатки в количествах на дату установки цены. Как ты это запросом хочешь реализовать? Остатки запросом можно получить на одну какую-то конкретную дату, а тебе надо много разных остатков на разные даты, это только вручную обороты складывать, этож ппц в общем случае, вон как приходится извращаться, что бы только цены актуальные по регистратору получить. А тебе нужно тоже самое, только цены-то на дату указаны, а тебе придется остатки самому складывать
---
Не знаю как, буду пытаться хотя бы тот запрос доделать, чтобы считал правильно приход и расход, без учета изменения цены
---
Что-то типа этого:

```1c
    ВЫБРАТЬ
    ВЫБОР
    КОГДА ТоварыНаСкладахОбороты.Период < &НачПер
    ТОГДА 0
    ИНАЧЕ 1
    КОНЕЦ КАК Приоритет,
    ТоварыНаСкладахОбороты.Период,
    ВЫБОР
    КОГДА ТоварыНаСкладахОбороты.Период < &НачПер
    ТОГДА "Начальный остаток"
    ИНАЧЕ ТоварыНаСкладахОбороты.Регистратор
    КОНЕЦ КАК Регистратор,
    ТоварыНаСкладахОбороты.Номенклатура,
    ТоварыНаСкладахОбороты.КоличествоОборот,
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПериодУстановкиЦены
    ПОМЕСТИТЬ ВТ_Обороты
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(, &КонПер, Регистратор, Склад = &Склад) КАК ТоварыНаСкладахОбороты
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ТоварыНаСкладахОбороты.Период >= ЦеныНоменклатуры.Период
    И ТоварыНаСкладахОбороты.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И (ЦеныНоменклатуры.ТипЦен = &ТипЦены)

    СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОбороты.Период,
    ТоварыНаСкладахОбороты.Номенклатура,
    ТоварыНаСкладахОбороты.КоличествоОборот,
    ВЫБОР
    КОГДА ТоварыНаСкладахОбороты.Период < &НачПер
    ТОГДА "Начальный остаток"
    ИНАЧЕ ТоварыНаСкладахОбороты.Регистратор
    КОНЕЦ
    ;

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

    СГРУППИРОВАТЬ ПО
    ВТ_Обороты.Регистратор,
    ВТ_Обороты.Приоритет
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_Суммы.Приоритет,
    ВТ_Суммы.Регистратор,
    ВТ_Суммы.Сумма
    ПОМЕСТИТЬ ВТ_Остатки
    ИЗ
    ВТ_Суммы КАК ВТ_Суммы

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

    ВЫБРАТЬ
    МАКСИМУМ(3),
    МАКСИМУМ("Остаток на конец"),
    СУММА(ВТ_Суммы.Сумма)
    ИЗ
    ВТ_Суммы КАК ВТ_Суммы
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_Остатки.Регистратор,
    ВТ_Остатки.Сумма
    ИЗ
    ВТ_Остатки КАК ВТ_Остатки

    УПОРЯДОЧИТЬ ПО
    ВТ_Остатки.Приоритет
```

У меня конфигурация чуть другая, так что там в соединениях характеристик нет
---
Попробовал таким способом считает правильно только до установки цен
---
Установка цен там, как ты хочешь, не отразится, Только цены в последующих документах будут новыми. А переоценки остатков не будет. На мой взгляд такой отчет неверен методологически будет, т.к. любой отчет должен иметь возможность проверки по первичным документам. А тут придется ему на слово верить
---
Что-то я ненадолго забыл про запрос. И начал делать с нуля, чтобы не вспоминать что там было, получилось чуть лучше, чем было. Сейчас все считает правильно, единственное что не выводит - это установка цен (пока еще не придумал как сделать)

Было так:
РегистраторДата Регистратор Оценка
29000
Остаток_До 0
03.06.2008 Поступление товаров 60000
21.04.2011 Отчет о продажах -31000

Должно быть так
РегистраторДата Регистратор Оценка
29000
Остаток_До 0
03.06.2008 Поступление товаров 30000
06.06.2008 Изменение цены 30000
21.04.2011 Отчет о продажах -31000

Стало так

РегистраторДата Регистратор Оценка
-1000
Остаток_До 0
03.06.2008 Поступление товаров 30000
21.04.2011 Отчет о продажах -31000

Все документы зато теперь правильно считает, осталось добавить к этой таблице Изменение цены и все готово

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

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

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

    СГРУППИРОВАТЬ ПО
    ТоварыОрганизаций.Номенклатура,
    ТоварыОрганизаций.Характеристика,
    ТоварыОрганизаций.Регистратор,
    ТоварыОрганизаций.Период,
    ТоварыОрганизаций.КоличествоОборот
    ;

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

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

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

    СГРУППИРОВАТЬ ПО
    ЦеныТоваровИВремяПоследнейЦены.РегистраторТО

    УПОРЯДОЧИТЬ ПО
    Регистратор
```

Раньше документы прихода и расхода считались не по актуальным ценам, а по последним, поэтому общий итог был правильный, теперь считает по актуальным ценам
---
Для вывода документов изменения цен попробуй делать по аналогии с ценами на дату - соединяешь с таблицей цен по условию даты "дата документа < дата цены" и берёшь минимум по "дата цены". За счет строго равенства получишь именно следующую цену.
---
Хмм, попробую, спасибо за совет
---
что-то не очень получается, по-всякому пробовал, видимо понял Вас не до конца
---
Кажется, я что-то не то начал делать

```1c
    ВЫБРАТЬ
    МИНИМУМ(ЦеныНоменклатуры.Период) КАК Период,
    ЦеныНоменклатуры.Регистратор КАК Регистратор,
    СУММА(ЦеныНоменклатуры.Цена) КАК Цена
    ИЗ
    ВсеЦеныНаНужныеТовары КАК ВсеЦеныНаНужныеТовары
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО (ВсеЦеныНаНужныеТовары.Номенклатура = ЦеныНоменклатуры.Номенклатура)
    И (ВсеЦеныНаНужныеТовары.Характеристика = ЦеныНоменклатуры.Характеристика)
    И (ВсеЦеныНаНужныеТовары.Период < ЦеныНоменклатуры.Период)
    ГДЕ
    ЦеныНоменклатуры.ВидЦены = &ВидЦены
    И ЦеныНоменклатуры.Период МЕЖДУ &НачПер И &КонПер

    СГРУППИРОВАТЬ ПО
    ЦеныНоменклатуры.Регистратор
```
---
Зачем при получении остатка на начало обороты? Может лучше обратиться к таблице остатков?
Сейчас внимательнее запрос гляну
---
Идея получения "цены на дату документа" выглядит так:
1) Получаем все цены за нужный на период, без всяких СрезПоследних.
2) По каждой номенклатуре получаем дату последней цены. А так как цены действуют по принципу - пока не сменят, то нужно брать цены, установленные не позднее даты документа. Т.е. соединение по дате будет "Документы.Дата >= Цены.Дата", но при группировке по номенклатуре и документу будет браться максимум, так как цена нужна последняя. Помещаем в ВТ. Получим таблицу вида "документ, дата-документа, товар, дата цены".
3) Берем ВТ из шага 2, и к ней добавляем цены с шага 1, соединяя по номенклатуре и периоду.
Таким образом ты сначала нашел, когда была последняя цена перед документов, а потом взял саму цену.

А теперь ты решаешь в некотором роде обратную задачу, ищешь первые цены после документа.
1) такой же как раньше.
2) Теперь соединять надо по "Документ.Дата < Цены.Дата" и при группировке брать Минимум(Цены.Дата).
3) Аналогично.

Надеюсь, это поможет разобраться.
---
Спасибо, буду пробовать
---
Что-то не совсем так получается

Первая часть

Вторая часть

Далее решил посчитать разницу, в итоге вот что

А результат должен быть такой же как тут

Вроде бы написал, как Вы и советовали

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

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

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

    СГРУППИРОВАТЬ ПО
    ТоварыОрганизаций.Номенклатура,
    ТоварыОрганизаций.Характеристика,
    ТоварыОрганизаций.Регистратор,
    ТоварыОрганизаций.Период,
    ТоварыОрганизаций.КоличествоОборот
    ;

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

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

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

    СГРУППИРОВАТЬ ПО
    ЦеныТоваровИВремяПоследнейЦены.РегистраторТО
    ;

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

    СГРУППИРОВАТЬ ПО
    ТоварыОрганизацийОбороты.Регистратор,
    ТоварыОрганизацийОбороты.Номенклатура,
    ТоварыОрганизацийОбороты.Характеристика,
    ТоварыОрганизацийОбороты.Период,
    ТоварыОрганизацийОбороты.КоличествоОборот
    ;

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

    СГРУППИРОВАТЬ ПО
    ЦеныТоваровИВремяПервойЦены.Регистратор
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ДокументыПоПоследнейЦене.Регистратор КАК Регистратор,
    ДокументыПоПервойЦене.Оценка - ДокументыПоПоследнейЦене.Оценка КАК Поле1
    ИЗ
    ДокументыПоПоследнейЦене КАК ДокументыПоПоследнейЦене
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокументыПоПервойЦене КАК ДокументыПоПервойЦене
    ПО (ДокументыПоПервойЦене.Регистратор = ДокументыПоПоследнейЦене.Регистратор)

    СГРУППИРОВАТЬ ПО
    ДокументыПоПоследнейЦене.Регистратор,
    ДокументыПоПервойЦене.Оценка - ДокументыПоПоследнейЦене.Оценка
```
---
Заметил, что если в результирующей таблице из 251850 отнять 16200 , то получится 235650 (такое жи число как первая установка цены), а вот остальные никак не сходятся
---
Попробовал просчитать вручную, кажется понял почему неправильно считает, но не пойму как исправить
(34) 2) По каждой номенклатуре получаем дату последней цены. А так как цены действуют по принципу - пока не сменят, то нужно брать цены, установленные не позднее даты документа. Т.е. соединение по дате будет "Документы.Дата >= Цены.Дата", но при группировке по номенклатуре и документу будет браться максимум, так как цена нужна последняя. Помещаем в ВТ. Получим таблицу вида "документ, дата-документа, товар, дата цены".
В результате этой части получается так
Приход01 Кроссовки 10.06.2008 01.06.2008 (цена на тот момент 2136,а количество 2 штуки)
Приход01 Мокасины 10.06.2008 02.06.2008 (1300 х 1)
Приход01 Сапоги 10.06.2008 02.06.2008 (1300 х 1)
 2) Теперь соединять надо по "Документ.Дата < Цены.Дата" и при группировке брать Минимум(Цены.Дата).
3) Аналогично.
В результате этой части получается так
Приход01 Кроссовки 10.06.2008 31.10.2008 (2136 х 2)

т.е. в 3 шагах я получаю
1 часть
Приход01 6872

2 часть
приход01 4272

Проблема в том, что при последующей цене посчитался только тот товар, который был в документе установки цены. т.е. только кроссовки. А по сути кроссовки были в документе изменения цены, но цену даже не меняли. И тут я запутался, что мне делать дальше
---
В (36) пример того, как должно быть, берется из Торг-29, если я правильно помню. Она считает приход, расход, изменение цены. Почему бы тогда не взять её за основу?
---
Правильно, надо сделать запрос, который выводит практически тоже самое, что и в ТОРГ-29. Я пытался в нем разобраться и сделать так же, но не получилось( Мне осталось только посчитать изменение цены и объединить с запросом ДокументыПоПоследнейЦене
---
Решил сделать вот так,

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ТаблицаЦен.Регистратор КАК Регистратор,
    ТаблицаЦен.Номенклатура КАК Номенклатура,
    ТаблицаЦен.Характеристика КАК Характеристика,
    УстановленныеЦеныНоменклатуры.Цена КАК Цена
    ПОМЕСТИТЬ ТаблицаНовыхЦен
    ИЗ
    ТаблицаЦен КАК ТаблицаЦен
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ УстановленныеЦеныНоменклатуры КАК УстановленныеЦеныНоменклатуры
    ПО ТаблицаЦен.Период = УстановленныеЦеныНоменклатуры.Период
    И (УстановленныеЦеныНоменклатуры.Номенклатура = ТаблицаЦен.Номенклатура)
    И (УстановленныеЦеныНоменклатуры.Характеристика = ТаблицаЦен.Характеристика)
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ТаблицаЦен.Регистратор КАК Регистратор,
    ТаблицаЦен.Номенклатура КАК Номенклатура,
    ТаблицаЦен.Характеристика КАК Характеристика,
    УстановленныеЦеныНоменклатуры.Цена КАК Цена
    ПОМЕСТИТЬ ТаблицаСтарыхЦен
    ИЗ
    ТаблицаЦен КАК ТаблицаЦен
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ УстановленныеЦеныНоменклатуры КАК УстановленныеЦеныНоменклатуры
    ПО ТаблицаЦен.Номенклатура = УстановленныеЦеныНоменклатуры.Номенклатура
    И ТаблицаЦен.Характеристика = УстановленныеЦеныНоменклатуры.Характеристика
    И ТаблицаЦен.ПериодДо = УстановленныеЦеныНоменклатуры.Период
    ;

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

    СГРУППИРОВАТЬ ПО
    ТаблицаНовыхЦен.Регистратор
```

Вроде бы вывело правильно изменение цены, сейчас буду тестировать на других периодах и складах
---
Посмотрел отдельно по номенклатуре, все считает вроде правильно, только вот одной номенклатуры нет, потому что это первый документ установки цены для данной номенклатуры. Т.е. я посчитал все на 11.04 все сошлось, но не хватает 1 номенклатуры, у которой первый раз установилась цена именно этим документом, остальная номенклатура на 11.04 уже имела предыдущую цену, не пойму как исправить
---
Нет, ошибка не в этом. Почему то количество номенклатуры на складе неправильно смотрит
---
Все-таки удалось посчитать изменение цен, сейчас все приведу в нормальный вид и выложу код
---
Благодарю за помощь, ваша подсказка очень помогла
---
Хотя можно извратиться, добавить к оборотам по РН "ТоварыНаСкладах" движения по номенклатуре документов "Установка цен" с минусом, с ценами до этого документа и их же с плюсом, с ценами текущего(самого себя) документа. Но стоит ли это того, итоговую сумму по документу "Установка цен" ты ничем не проверишь и она каждый раз может быть разной
---
"Приоритет" можно выкинуть, это чтоб остатки на начало и конец вверху и внизу результата были
---
А вот эта хорошая идея, позаимствую, спасибо)
---
Кажется, мне надо после того как получил дату последней цены, брать дату предыдущей цены, а не первой после установки.
---
Хотя впринципе и по следующему тоже можно
---
А вот для других неправильно
---
Вот готовая вроде

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

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

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

    СГРУППИРОВАТЬ ПО
    ТоварыОрганизаций.Номенклатура,
    ТоварыОрганизаций.Характеристика,
    ТоварыОрганизаций.Регистратор,
    ТоварыОрганизаций.Период,
    ТоварыОрганизаций.КоличествоОборот
    ;

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ТаблицаЦен.Регистратор КАК Регистратор,
    ТаблицаЦен.Номенклатура КАК Номенклатура,
    ТаблицаЦен.Характеристика КАК Характеристика,
    ВсеЦеныНаНужныеТовары.Цена КАК Цена,
    ТаблицаЦен.Период КАК Период
    ПОМЕСТИТЬ ТаблицаНовыхЦен
    ИЗ
    ТаблицаЦен КАК ТаблицаЦен
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеЦеныНаНужныеТовары КАК ВсеЦеныНаНужныеТовары
    ПО ТаблицаЦен.Период = ВсеЦеныНаНужныеТовары.Период
    И (ВсеЦеныНаНужныеТовары.Номенклатура = ТаблицаЦен.Номенклатура)
    И (ВсеЦеныНаНужныеТовары.Характеристика = ТаблицаЦен.Характеристика)

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ТаблицаЦен.Регистратор КАК Регистратор,
    ТаблицаЦен.Номенклатура КАК Номенклатура,
    ТаблицаЦен.Характеристика КАК Характеристика,
    ВсеЦеныНаНужныеТовары.Цена КАК Цена
    ПОМЕСТИТЬ ТаблицаСтарыхЦен
    ИЗ
    ТаблицаЦен КАК ТаблицаЦен
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеЦеныНаНужныеТовары КАК ВсеЦеныНаНужныеТовары
    ПО ТаблицаЦен.Номенклатура = ВсеЦеныНаНужныеТовары.Номенклатура
    И ТаблицаЦен.Характеристика = ВсеЦеныНаНужныеТовары.Характеристика
    И ТаблицаЦен.ПериодДо = ВсеЦеныНаНужныеТовары.Период

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ТаблицаНовыхЦен.Регистратор КАК Регистратор,
    ТаблицаНовыхЦен.Номенклатура КАК Номенклатура,
    ТаблицаНовыхЦен.Характеристика КАК Характеристика,
    ТаблицаНовыхЦен.Цена - ТаблицаСтарыхЦен.Цена КАК Цена,
    ТаблицаНовыхЦен.Период КАК Период
    ПОМЕСТИТЬ ФинальныеЦены
    ИЗ
    ТаблицаСтарыхЦен КАК ТаблицаСтарыхЦен
    ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаНовыхЦен КАК ТаблицаНовыхЦен
    ПО ТаблицаСтарыхЦен.Номенклатура = ТаблицаНовыхЦен.Номенклатура
    И ТаблицаСтарыхЦен.Характеристика = ТаблицаНовыхЦен.Характеристика
    ГДЕ
    ТаблицаНовыхЦен.Регистратор = ТаблицаСтарыхЦен.Регистратор
    ;

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

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

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

    СГРУППИРОВАТЬ ПО
    ЦеныТоваровИВремяПоследнейЦены.РегистраторТО

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

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

    СГРУППИРОВАТЬ ПО
    ФинальныеЦены.Регистратор
    ИТОГИ ПО
    ОБЩИЕ
```

Единственный минус, это строчка с изменением цены, где 0. Пробовал убрать через условие на ЕСТЬ NULL, но не получилось
 Вот строчку где установка цены = 0 , не могу убрать