Уважаемые форумчане!
Прошу помощи! Ни разу до сегодняшнего дня не имела дела с отчетами (только теория). И вот взрослое задание.
Есть уже давно в компании отчет на СКД, он из регистра накопления берет количество продаж за период по номенклатурным группам (КА 1.1).
Поступила задача отфильтровать его таким образом, чтобы в документе регистраторе "Реализация товаров и услуг" остались позиции только с ценой большей или равной типу цен "оптовая" (но по самому типу цен фильтр ставить нельзя, так как ручные скидки тогда пропустит, нужно именно больше или равно определенной цене).

И тут у меня вопрос КАК?
Цену по типу цены можно взять из регистра сведений Цены номенклатуры Срез последних, а вот как ее передать в основной запрос, наложить условие по Цене, да еще и соединить дату регистра сведений с датой регистратора (ведь цена должна доставаться именно на момент продажи). Вот тут ступор. Помогите кто чем может((

Прикрепляю отчет
---
называется это "Псевдосрез" ))
выглядит примерно так (и не вздумайте дату регистратора получать из регистратора (тавтология))

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

Как то так
---
Добрый день! Для начало нужно найти цену, соответствующую дате документа,. Я бы сделал левое соединение ценыНоменклатуры.СрезПоследных к основной таблице., В связи указал Регистратор.Дата <= ЦеныНоменклатурыСрезПоследних.Период. (не забудь про связи по номенклатуре и т.д.) . Ну а когда получишь цены, можно выбрать строки где цена >= оптовой цены
---
Срез последних?) А ты наивен
---
КА 1 давно не тыкал, но цена реализации итак пишется в регистр продаж, разве не так? Максимум сумму нужно будет поделить на количество
А вопрос с ценой на дату продажи сложнее - гуглите цены на каждый день и соединяйте с полученной таблицей
---
Примерно такая схема отчета должна быть:
1. Таблица продаж
2. Соединение таблицы продаж со всеми оптовыми ценами по связи ТаблицаПродаж.Номенклатура = ОптовыеЦены.Номенклатура и ТаблицаПродаж.Период >= ОптовыеЦены.Период
3. Для измерений отчета (Регистратор - период - номенклатура) группировкой получаем максимальный период установки цен.
4. Соединяем таблицу 3 с таблицей продаж и оптовыми ценами по периоду установки - вроде как, получаем то что надо
---
Это совсем не тривиальная задача. Если так уж хочется научиться - и кто-то готов это оплатить! - то я бы посоветовал начать с ключевого пункта. Написать запрос, которые будет получать цену номенклатуры из реализаций на дату реализации. Этому есть стопицот примеров в инете. Когда это получится, дальше уже попроще будет.
На самом последнем этапе, когда запрос будет готов, можно будет вспомнить о том, что это отчет на СКД, и засунуть готовый запрос туда.
---
Согласен с (6) автор лукавит и это не учебная задачка по созданию нового отчета, а попытка ввести в искушение соблазна научить невинное дитя уму-разуму.
Это реальная задача по сложной модификацией типового отчета.

Не удивлюсь если тс - борода.
---
называется это "Псевдосрез" ))
выглядит примерно так (и не вздумайте дату регистратора получать из регистратора (тавтология))

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

Как то так
---
Спасибо вам! Буду сейчас пробовать.
---
Помогите пожалуйста, Продажи.Цена, откуда ее взять? Цена же только в документе регистратора есть
---
конечно не выберите, зайдите в параметры вирт. таблицы обороты (в конструкторе запроса) и выберите вариант периодичности "Авто"

вот же в примере я написал

```1c
    (&ПериодНач, &ПериодКон, Авто, <Еще какие-то условия>)
```
---
Цена это стоимость / количество ))
---
Помогите еще, товарищи).

По некоторым позициям нет цены на нужный тип цен, в таком случае, мне нужно искать цену по другому типу цен, как это прописать в запросе?