Ребят доброго всем дня у меня проблема с регистром свободные остатки!при первом проведении все хорошо!но если провести документ по новой то регистр задваивает данные!подскажите как исправить ситуацию!

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)

    // регистр ТоварыНаСкладах Приход
    Движения.ТоварыНаСкладах.Записывать = Истина;
    Движения.ТоварыНаСкладах.Очистить();
    Для Каждого ТекСтрока Из Продукция Цикл
    Движение = Движения.ТоварыНаСкладах.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = ЭтотОбъект.Дата;
    Движение.Склад = ЭтотОбъект.Склад;
    Движение.Номенклатура = ТекСтрока.Номенклатура;
    Движение.Количество = ТекСтрока.Количество;
    КонецЦикла;
    // регистр ТоварыНаСкладах Расход
    Движения.ТоварыНаСкладах.Записывать = Истина;
    Для Каждого ТекСтрока Из Материалы Цикл
    Движение = Движения.ТоварыНаСкладах.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = ЭтотОбъект.Дата;
    Движение.Склад = ЭтотОбъект.Склад;
    Движение.Номенклатура = ТекСтрока.Номенклатура;
    Движение.Количество = ТекСтрока.Количество;
    КонецЦикла;

    // регистр МатериалыВПроизводстве Приход
    Движения.МатериалыВПроизводстве.Записывать = Истина;
    Для Каждого ТекСтрока Из Материалы Цикл
    Движение = Движения.МатериалыВПроизводстве.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = ЭтотОбъект.Дата;
    Движение.Подразделение = ЭтотОбъект.Подразделение2;
    Движение.Затрата = ТекСтрока.Номенклатура;
    Движение.Количество = ТекСтрока.Количество;
    КонецЦикла;
    // регистр НезавершенноеПроизводство Приход
    Движения.НезавершенноеПроизводство.Записывать = Истина;
    Для Каждого ТекСтрока Из Материалы Цикл
    Движение = Движения.НезавершенноеПроизводство.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = ЭтотОбъект.Дата;
    Движение.Подразделение = ЭтотОбъект.Подразделение2;
    Движение.Затрата = ТекСтрока.Номенклатура;
    Движение.Количество = ТекСтрока.Количество;
    КонецЦикла;

    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    КонецПроцедуры
```

конфа Управление производственным предприятием, редакция 1.3 (1.3.111.1)
---
В свойствах документа смотрите "Удаление движений". И событие "ОбработкаУдаленияПроведения".
---
ну при проведении очищайте регистр СвободныеОстатки этого документа и всё.
---
не вижу в коде регистра СвободныеОстатки
---
он был но я убрал его,т.к. товары на складах плюсом бьет еще по свободным остаткам!

```1c
    ///// регистр СвободныеОстатки Приход
    //Движения.СвободныеОстатки.Записывать = Истина;
    //Для Каждого ТекСтрока из Продукция цикл
    // Движение = Движения.СвободныеОстатки.Добавить();
    // Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    // Движение.Период = ЭтотОбъект.Дата;
    // Движение.Номенклатура = ТекСтрока.Номенклатура;
    // Движение.Количество = ТекСтрока.Количество;
    // Движение.Склад = ЭтотОбъект.Склад;
    //КонецЦикла;
    ///// регистр СвободныеОстатки Расход
    //Движения.СвободныеОстатки.Записывать = Истина;
    //Для Каждого ТекСтрока из Материалы цикл
    // Движение = Движения.СвободныеОстатки.Добавить();
    // Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    // Движение.Период = ЭтотОбъект.Дата;
    // Движение.Номенклатура = ТекСтрока.Номенклатура;
    // Движение.Количество = ТекСтрока.Количество;
    // Движение.Склад = ЭтотОбъект.Склад;
    //КонецЦикла;
```
---
т.е. при первом проведении происходило задвоение!а теперь при перепроведении документа
---
ну при проведении очищайте регистр СвободныеОстатки этого документа и всё.
---
т.е. вот так?

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)

    Движения.СвободныеОстатки.Записывать = Истина;
    Движения.СвободныеОстатки.Очистить();

    // регистр ТоварыНаСкладах Приход
    Движения.ТоварыНаСкладах.Записывать = Истина;
    Движения.ТоварыНаСкладах.Очистить();
    Для Каждого ТекСтрока Из Продукция Цикл
    Движение = Движения.ТоварыНаСкладах.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = ЭтотОбъект.Дата;
    Движение.Склад = ЭтотОбъект.Склад;
    Движение.Номенклатура = ТекСтрока.Номенклатура;
    Движение.Количество = ТекСтрока.Количество;
    КонецЦикла;
    // регистр ТоварыНаСкладах Расход
    Движения.ТоварыНаСкладах.Записывать = Истина;
    Для Каждого ТекСтрока Из Материалы Цикл
    Движение = Движения.ТоварыНаСкладах.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = ЭтотОбъект.Дата;
    Движение.Склад = ЭтотОбъект.Склад;
    Движение.Номенклатура = ТекСтрока.Номенклатура;
    Движение.Количество = ТекСтрока.Количество;
    КонецЦикла;

    // регистр МатериалыВПроизводстве Приход
    Движения.МатериалыВПроизводстве.Записывать = Истина;
    Для Каждого ТекСтрока Из Материалы Цикл
    Движение = Движения.МатериалыВПроизводстве.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = ЭтотОбъект.Дата;
    Движение.Подразделение = ЭтотОбъект.Подразделение2;
    Движение.Затрата = ТекСтрока.Номенклатура;
    Движение.Количество = ТекСтрока.Количество;
    КонецЦикла;
    // регистр НезавершенноеПроизводство Приход
    Движения.НезавершенноеПроизводство.Записывать = Истина;
    Для Каждого ТекСтрока Из Материалы Цикл
    Движение = Движения.НезавершенноеПроизводство.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = ЭтотОбъект.Дата;
    Движение.Подразделение = ЭтотОбъект.Подразделение2;
    Движение.Затрата = ТекСтрока.Номенклатура;
    Движение.Количество = ТекСтрока.Количество;
    КонецЦикла;

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