Три варианта решения:
1. Не пользоваться пересчетом (грустно...)
2. Откатывать будущие пересчеты перед закрытием и снова их делать после закрытия теми же датами. Актальная себестоимость не должна измениться (хотя надо тестировать).
3. Не уверен, но можно после закрытия сделать пересчеты снова теми же датами, они вроде должны "вылечить" ситуацию. То есть, получается следующая схема:
- пересчет на 30-е число (к примеру)
- закрытие на 15-е число
- снова пересчет на 30-е число.
Но этот вариант надо тестировать. Ну и какой-то инструмент для мониторинга должен быть, который бы выявлял бы все "испорченные" проводки по переносу, чтобы возиться только по этим номенклатурам.
А насчет кода я не советчик, к сожалению