0
slafor
24.03.23
✎
23:41
|
1С:Розница 3.0.
Столкнулся с такой особенностью.
Есть документ "Возврат товаров поставщику". Как правило, у нас этот документ создается после возврата товара от покупателя. То есть товар вернулся на склад и потом уходит поставщику "обратно".
Пытаюсь сменить время уже проведенного возврата поставщику (с 15:00 на 21:00), программно: меняю время, пишу строку Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный); и выдает ошибку что товара на складе... нет. Догадываюсь, что товар уже ушел со склада обратно поставщику, пишу последовательно строки:
Док.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
... и всё проводится нормально.
Разве перепроведение документа автоматически не отменяет предыдущее проведение еще до перепроведения (простите за возможный каламбур ) )?
Что интересно: если я пишу это строку дважды:
Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
то второй раз он проводится нормально.
Парадокс, или я что-то не допонимаю?
|
|
2
Mort
25.03.23
✎
01:00
|
Ты забанен, друг, но я отвечу.
Кроме давно известных свойств "проведение" и "оперативное проведение", нужно посмотреть свойства документа:
"Удаление движений"
"Запись движений при проведении".
В типовых часто любят удаление движений делать своими, программными средствами. В этом случае надо палить в коде где и как очищаются.
|
|