При списании от выбранной даты у меня списываются товары по сроку годности
А нужно чтобы сначала списывалось по выбранной дате а потом остаток из остального по сроку годности
Как исправить ?

Код модуля "продажа товаров"

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    // регистр ОстаткиТоваров Расход
    Запрос = Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    | ПродажаТовараСписокТоваров.Товар КАК Товар,
    | СУММА(ПродажаТовараСписокТоваров.Количество) КАК Количество,
    | ПродажаТовараСписокТоваров.СрокГодности КАК СрокГодности
    |ПОМЕСТИТЬ Товары
    |ИЗ
    | Документ.ПродажаТовара.СписокТоваров КАК ПродажаТовараСписокТоваров
    |ГДЕ
    | ПродажаТовараСписокТоваров.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    | ПродажаТовараСписокТоваров.Товар,
    | ПродажаТовараСписокТоваров.СрокГодности
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Товар
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    | ОстаткиТоваровОстатки.СрокГодности КАК СрокГодности,
    | Товары.Товар КАК Товар,
    | Товары.Количество КАК Количество,
    | ЕСТЬNULL(ОстаткиТоваровОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    | ПРЕДСТАВЛЕНИЕ(Товары.Товар) КАК ТоварП,
    | ВЫБОР
    | КОГДА ОстаткиТоваровОстатки.СрокГодности <= Товары.СрокГодности
    | ТОГДА 0
    | ИНАЧЕ 1
    | КОНЕЦ КАК ПорядокПартий
    |ИЗ
    | Товары КАК Товары
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(&МоментВремени, ) КАК ОстаткиТоваровОстатки
    | ПО Товары.Товар = ОстаткиТоваровОстатки.Товар
    |
    |УПОРЯДОЧИТЬ ПО
    | ПорядокПартий,
    | ОстаткиТоваровОстатки.СрокГодности
    |ИТОГИ
    | МАКСИМУМ(Количество),
    | СУММА(КоличествоОстаток)
    |ПО
    | Товар";

    Запрос.УстановитьПараметр("Ссылка",Ссылка);
    Если Режим = РежимПроведенияДокумента.Оперативный Тогда
    Запрос.УстановитьПараметр("МоментВремени",Неопределено)
    Иначе
    Запрос.УстановитьПараметр("МоментВремени",МоментВремени());
    КонецЕсли;

    ВыборкаТовары = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    Движения.ОстаткиТоваров.Записывать = Истина;

    Пока ВыборкаТовары.Следующий() Цикл
    Если ВыборкаТовары.Количество > ВыборкаТовары.КоличествоОстаток Тогда
    Сообщить("Нехватает " + ВыборкаТовары.ТоварП + " "+ (ВыборкаТовары.Количество - ВыборкаТовары.КоличествоОстаток));
    Отказ = Истина;
    Продолжить;
    КонецЕсли;
    ОсталосьСписать = ВыборкаТовары.Количество;
    ВыборкаПартии = ВыборкаТовары.Выбрать();
    Пока ВыборкаПартии.Следующий() Цикл
    Если ВыборкаПартии.КоличествоОстаток <= ОсталосьСписать Тогда
    СписатьКоличество = ВыборкаПартии.КоличествоОстаток;
    ОсталосьСписать = ОсталосьСписать - СписатьКоличество;
    Иначе
    СписатьКоличество = ОсталосьСписать;
    ОсталосьСписать = 0;
    КонецЕсли;

    Если СписатьКоличество > 0 Тогда
    Движение = Движения.ОстаткиТоваров.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Дата;
    Движение.Товар = ВыборкаТовары.Товар;
    Движение.СрокГодности = ВыборкаПартии.СрокГодности;
    Движение.Количество = СписатьКоличество;
    КонецЕсли;
    Если ОсталосьСписать = 0 Тогда
    Прервать;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    КонецПроцедуры
```
---
Нашёл ошибку

```1c
    | ВЫБОР
    | КОГДА ОстаткиТоваровОстатки.СрокГодности = Товары.СрокГодности
    | ТОГДА 0
    | ИНАЧЕ 1
    | КОНЕЦ КАК ПорядокПартий
```
---
Нашёл ошибку

```1c
    | ВЫБОР
    | КОГДА ОстаткиТоваровОстатки.СрокГодности = Товары.СрокГодности
    | ТОГДА 0
    | ИНАЧЕ 1
    | КОНЕЦ КАК ПорядокПартий
```