Цитата:
Сообщение от
Zabr
В таком случае, непонятно отсутствие во всех индексах на таблице поля Canceled (я уж молчу об отдельном индексе под это дело...). То есть, похоже, разработчики таким вот образом как бы намекают, что не стоит этого делать...
В таком случае, непонятно наличие оператора
X++:
delete_from inventSettlement
index hint ItemDateIdx
where inventSettlement.ItemId == _inventTable.ItemId &&
inventSettlement.Cancelled == NoYes::Yes &&
inventSettlement.SettleModel != InventSettleModel::PhysicalValue &&
inventSettlement.TransDate < transDateDel;
в методе inventCostCleanup.updateDelSettlement(). На что же нам намекают его авторы ?
А если говорить по делу, то та функциональность которая нужна топикстартеру присутствует в этом самом классе inventCostCleanup. Разница только в том, что он проводки по ГК не удаляет, а сторнирует. (О чем уже было сказано Raven Melancholic).
Если написать свой класс, который удаляет отмененные записи в inventSettlement, проводки по ГК (с аккуратным пересчетом балансов в ledgerBalanceDim / LedgerBalanceDimTrans) и сопутствующую запись в inventClosing, то можно добиться полного удаления следов закрытия/пересчета склада. Я конечно знаю, что это методологически неверно, но во время запуска системы мне приходилось для устранения последствий собственных ошибок такие классы писать.