День добрый! Понимаю, что тема сильно избитая, но остается некоторое недопонимание!
Готовлюсь к спецу по различным курсам. Знание черпаю из курсов, статей: https://infostart.ru/public/195591/ , https://infostart.ru/public/144750/
Платформа 8.3.10.2580. База - файловая.
Настройка конфигурации, как указано в https://infostart.ru/public/195591/

Непонятно - почему при повтором оперативном проведении документа в ОбработкеПроведения не происходит очистка РегистраНакопления (Ячейки, Себестоимость), ведь в //1 и //2 указано - Движения.....Очистить() ? Без очистки - неверные значения в таблице итогов - неверен результат запроса //4.
Если же, разкомментировать участок кода - //3, т.е. принудительно запишем пустой набор записей в РегистрНакопления, то очистка происходит, в таблице итогов - верные значения и результат запроса - верен.

Вопрос - так и нужно делать, или как-то по другому?

Имеется обработка проведения (куски):

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

    Движения.Ячейки.Записывать = Истина;
    //1
    Движения.Ячейки.Очистить();
    Движения.Себестоимость.Записывать = Истина;
    //2
    Движения.Себестоимость.Очистить();

    //3
    //Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
    // Движения.Ячейки.Очистить();
    // Движения.Себестоимость.Очистить();
    // Движения.Записать();

    // Движения.Себестоимость.Записывать = Истина;
    // Движения.Ячейки.Записывать = Истина;
    //КонецЕсли;

    //4
    Запрос = Новый Запрос;
    //запрос к регистру "ячейки" из которого получаем остатки на "МоментИтогов"

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

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

    Пока ВыборкаНоменклатура.Следующий() Цикл
    //обработка запроса
    КонецЦикла;

    ...
```

Внесите пожалуйста ясность
---
Наверное зависит от методики проведения. Если это новая методика, когда с начало пишутся движения, а потом читаются то можно не очищать, на одну запись в базу меньше. Если старая методика, когда нам нужны для проведения данные регистра, а не только данные документа, то надо очистить движения записав пустой набор записей.
Движения.Себестоимость.Очистить();
В управляемых формах движения можно не очищать. Достаточно просто записать движения, будет записан пустой набор.
---
После очистки движений их записать надо в базу.

Движения.Записать()
или
Движения.Себестоимость.Записать();
---
Получается, что для корректности остатков нужно использовать след. кусок:
//3
    Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
        Движения.Ячейки.Очистить();
        Движения.Себестоимость.Очистить();
        Движения.Записать();

        Движения.Себестоимость.Записывать = Истина;
        Движения.Ячейки.Записывать = Истина;
    КонецЕсли;
---
Наверное зависит от методики проведения. Если это новая методика, когда с начало пишутся движения, а потом читаются то можно не очищать, на одну запись в базу меньше. Если старая методика, когда нам нужны для проведения данные регистра, а не только данные документа, то надо очистить движения записав пустой набор записей.
Движения.Себестоимость.Очистить();
В управляемых формах движения можно не очищать. Достаточно просто записать движения, будет записан пустой набор.
---
Большое спасибо за пояснения!
Вопрос был по старой методике контроля остатков.