Решаю задачи по спецу.
Есть код в обработке проведения документа ПродажаТоваров
Движения.СтоимостьТоваров.Очистить();
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.СтоимостьТоваров.Записать(); // Непонятная строка
Иначе
МоментИтогов = МоментВремени();
КонецЕсли;
Я так понимаю, что строка Движения.СтоимостьТоваров.Записать(); перезаписывает записи при перепроведении на пустые записи после очистки. Но даже без этой записи перепроведение нормально работает. Так какой контрпример, когда без этой строки проведение будет неправильным?
(0) Записывается пустой набор записей. Дабы старые движения текущего документа не влияли на получение данных запросом из базы. Условие сомнительно, я бы рекомендовал всегда чистить старые движения если документ проводится обусловлено и был ранее проведен.
(0) И не хватает блокировки на удаляемые движения...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший