Admin ›
проверка логической целостности - удаляются объекты, что приводит к новым ошибкам ›
#1
18.07.21 23:45
Ситуация:
Платформа 8.3.16.1148, ms sql 2016. При выполнении тестирования исправления в лог выводятся сообщения вида:
Проверка таблицы Document426: удалено 108 записей
Следом вида:
Проверка логической целостности. Документы. ПланПродаж. Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Количество – 222
Ну и апофеозом:
Проверка логической целостности. РегистрСведений.ПланПродаж
Неверная ссылка на регистратор.
Таблица Document426 это и есть документ ПланПродаж, сообщения выводятся для нескольких типов документов, часть из удаляемых при этом документов помечены на удаление, но участвуют в других документах/регистрах.
Все 108 удаляемых документа из примера не помечены на удаление, проведённые. 222 записи табличных частей - ровно строки эти 108 заголовков (шапок, записей основной таблицы). Неверные ссылки на регистратор - ссылки на 108 удалённых заголовков.
Т.е. вместо исправления логической целостности платформа плодит ошибки.
Вопрос: как платформа определяет, что объекты надо удалить и как её в этом разубедить? Визуально в SQL две соседние записи (которые платформа оставляет и которую платформа удаляет) ничем не отличаются (кроме уид и реквизитов, естественно).
ЗЫ Сделать ТиИ, а потом запросом вернуть удалённое - не пробовал, да и как то неправильно, и возвращать придётся в кучу мест (оно очищает те же журналы от "неправильных" документов), и нет гарантии, что следующее ТиИ не повторит удаление.