Отпишусь.
Поскольку с финансами по этим транзакциям всё оказалось в порядке, написал класс, дублирующий этот заказ на продажу -- внутри ttsbegin/ttsabort. Получившиеся складские проводки были сохранены в память и после корректировки значений в некоторых полях типа InventTransId они были вставлены в проблемный заказ. После пересчета InventSum балансы в сладских отчетах сошлись, и я засобирался докладывать о готовности. Но напоследок решил протестировать еще на одной машине, и вот те на -- там были эти пропавшие складские проводки, видимо, данные давно не обновлялись.
В итоге старое решение переписал, потому что в некоторых воссозданных записях кое-какие второстепенные значения все-таки отличались от оригинальных, и написал другой класс, запихивающий найденные записи в файл при помощи BinaryIO, и еще один класс, считывающий их из файла в "поврежденную" базу. Цифры снова сходятся, но теперь уверенности больше.
Всем спасибо.
(Как и почему исчезли проводки, выяснить так и не удалось, к сожалению)
|