Задача: построить отчет, который выводит остатки не свежих товаров (т.е. условие: дата закупки > X дней).

Как рассуждаю:
1. Отметаем свежие товары (Условие: ДатаЗакупки < ДекущаяДата - Х);
2. Из того что осталось, вычитаем расход товаров (у нас ФИФО);
3. Если остатки меньше нуля (т.е. не свежие кончились и пошел расход свежих) - убираем эти строки.

Пытаюсь в запросе реализовать первый пункт:

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

Но вместо того, чтобы уменьшался приход при увеличении &КоличествоДнейСМоментаЗакупки, строки просто исчезают из отчёта целиком.

Подскажите, что не так? (приложил внешний отчет УТ10.3)
---
Я не уверен, но мне кажется, что для 2ух условий вам нужно будет брать 2 таблицы(и накладывать условия в виртуальной таблице, а не в "ГДЕ")

Немного не понял, почему (6) не работает? Строки он тогда не удаляет, цифры должны меняться, на худой конец сделать условие чтоб не выводил нулевые строки(для того что-бы уменьшить количество строк)
---
Почему ты считаешь что у тебя при увеличении параметра будут меняться цифры "Количество...."?
---
Потому что условие будет выполняться для всё большего количества документов
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата >= ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, -&КоличествоДнейСМоментаЗакупки)
---
Ну если только остатки, то

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

Зачем усложнять? Или есть нюансы?
---
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,

Написаны для того, чтобы отследить поведение отчёта.

Так, например, данная строка не отсеивает приходы с нужной датой, а сразу удаляется и приход и расход и остаток, в общем вся строка:
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата < ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, &КоличествоДнейСМоментаЗакупки)

Это не правильно, и хотелось бы разобраться почему это не работает и как правильно сделать..
---
А не проще сделать в регистре измерение- дата прихода, и смотреть по ней уже и списывать наиболее "древние товары"? Хотя если база рабочая- такие изменения вносить сложновато будет....
Просто накладывать условия не на виртуальную таблицу, а уже на выборку - неправильно все таки
---
регистр трогать не хотелось бы, отчет внешний
---
выбор когда ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата < ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, -&КоличествоДнейСМоментаЗакупки) Тогда 0 Иначе ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток конец

это вместо КоличествоКонечныйОстаток

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

Так вообще поле "Приход" не отображается. Отображается, в ресурсы не добавил.
Но всё равно не работает. Не меняется количество..
---
возможно ли в одном запросе ресурсы регистра брать на разные даты?

```1c
    ВЫБРАТЬ
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
    ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты КАК ПартииТоваровНаСкладахОстаткиИОбороты
    ГДЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход (и тут условие, что КоличествоПриход на такое-то число) И
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход (на КонецПериода)
```
---
Я не уверен, но мне кажется, что для 2ух условий вам нужно будет брать 2 таблицы(и накладывать условия в виртуальной таблице, а не в "ГДЕ")

Немного не понял, почему (6) не работает? Строки он тогда не удаляет, цифры должны меняться, на худой конец сделать условие чтоб не выводил нулевые строки(для того что-бы уменьшить количество строк)
---
Цифры не меняет
---
создай список номенклатуры ЛЕВЫМ (ПРАВЫМ) соединением
и тогда список номенклатуры будет неизменным, а остатки будут меняться, вплоть до нуля
---
было бы здорово, но не с базой где куча номенклатуры, которая не используется
---
ДокументОприходования - это измерение РН. Для указанной задачи достаточно наложить условие в параметрах виртуальной таблицы. И использовать РегистрНакопления.ПартииТоваровНаСкладах.Остатки, а не РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты.
---
Это работает, спасибо)

На данном этапе запрос выглядит так:

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

Я добавил в него документ, совершающий движение, и увидел что работает это немножко не так..

Необходимо было отсеять поступления товаров по условию. Условие написал следующее: ДокументОприходования.Дата < &Дата
Но в итоге вместе с нужными документами отсеялись и все документы прихода, так как они тоже не выполняют этого условия.

Подскажите, как поправить этот момент?