Документ РасходнаяНакладная списывает товары по принципу ФИФО. Если проводить документ после его первого проведения, т.е. на складе было 15 товаров, при первом проведении списывается 10. Если не отменять проведение и провести его еще раз, выдает, что товара на складе не хватает, так как осталось 5 штук из 10 необходимых. Вроде как надо что-то исправить в запросе, связанное с датой проведения, но я не знаю как это сделать. Выгрузку прилагаю, заранее спасибо.

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

    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    Отказ = Истина;
    Сообщить("Не указан метод списания в учетной политике!!!");

    Возврат;
    КонецЕсли;

    Выборка = Результат.Выбрать();
    Выборка.Следующий();
    МетодСписания = Выборка.МетодСписания;

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

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

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

    КРаспределениюПоПартиям = Выборка.Количество;

    Обход = Выборка.Выбрать();

    Пока Обход.Следующий() И НЕ КРаспределениюПоПартиям = 0 Цикл
    Запись = Движения.ОстаткиМатериалов.Добавить();

    ЗаполнитьЗначенияСвойств(Запись, Обход);
    Запись.ВидДвижения = ВидДвиженияНакопления.Расход;

    Если КРаспределениюПоПартиям >= Обход.Остаток Тогда
    Запись.Количество = Обход.Остаток;
    Запись.Стоимость = Обход.Стоимость;

    КРаспределениюПоПартиям = КРаспределениюПоПартиям - Обход.Остаток;
    Иначе
    Запись.Количество = КРаспределениюПоПартиям;
    Запись.Стоимость = Обход.Стоимость / Обход.Остаток * КРаспределениюПоПартиям;

    КРаспределениюПоПартиям = 0;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;

    КонецПроцедуры
```
---
автоматическое удаление движений документа включите!
Конфигуратор --- конструктор документа ---- Закладка: Движения --- Удаление движений: Удалять автоматически
---
автоматическое удаление движений документа включите!
Конфигуратор --- конструктор документа ---- Закладка: Движения --- Удаление движений: Удалять автоматически
---
Спасибо, все заработало.
---
У вас в регистре накопления остатки нету отбора до момента имеющегося документа, у вас все там. Ясное дело, попадут и движения уже проведенного документа туда