В процессе работы с конфигурацией Комплексная автоматизация часто возникает неприятная ситуация: в стандартных отчетах, например, в Товары в резерве на складах, вместо наименования документа отображается Объект не найден. Разберем вместе, почему это происходит и как вернуть порядок в учетные данные, если стандартные средства платформы оказались бессильны.
Многие привыкли, что Тестирование и исправление информационной базы — панацея от всех бед. Однако бывают случаи, когда ТИИ пропускает битые ссылки. Это случается, когда проблема кроется не в целостности таблиц БД, а в логике движений регистров. Если запись в Регистре накопления ссылается на документ, который физически был удален, база данных может не считать это критической ошибкой структуры, требующей удаления всей строки, так как для учета эта информация может быть критически важной.
Объект не найден — это лишь следствие того, что система безопасности блокирует доступ текущему пользователю к конкретному документу. Даже под администратором могут работать программные ограничения.Модуля проведения могут привести к записи в регистр ссылки на пустое значение или объект, который не был корректно зафиксирован в транзакции.Прежде чем приступать к «хирургическим» методам, убедимся, что дело не в ограничениях доступа. Рассмотрим настройку отчета. Убедитесь, что в системе не включено Ограничение прав на уровне записей (RLS), которое скрывает часть документов. Попробуйте запустить отчет под пользователем с полными правами, у которого RLS отключено на уровне конфигуратора или системы прав доступа.
Если проблема не в правах, необходимо «увидеть» поврежденные записи напрямую. Для этого воспользуемся Консолью запросов. Напишем запрос, чтобы выбрать записи, которые ссылаются на несуществующие объекты.
ВЫБРАТЬ
Регистр.Регистратор,
Регистр.ДокументРезерва
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах КАК Регистр
ГДЕ
Регистр.ДокументРезерва ЕСТЬ NULL
ИЛИ Регистр.ДокументРезерва = НЕОПРЕДЕЛЕНО
После выполнения запроса мы получим список записей. Если в результате есть строки, где значение ссылки не определено, это подтверждает наличие «битых» данных в регистре.
Если стандартное ТИИ с галками Очищать ссылки и Удалять объекты не дает результата, рекомендуем воспользоваться проверенными сторонними инструментами. Часто на специализированных ресурсах, таких как Инфостарт, существуют готовые обработки для Восстановления объектов и Очистки движений.
Эти инструменты работают иначе: они перебирают записи в регистрах и, если обнаруживают ссылку на объект, который не существует в базе, принудительно удаляют такие записи из движений регистра. Это позволяет «очистить» отчет от пустых строк.
Посмотрим на Журнал регистрации. Отфильтруем его по событиям удаления за тот период, когда проблема начала проявляться. Если документ был удален пользователем, вы увидите запись об этом событии. Это поможет понять, не было ли «кривых рук», которые привели к удалению документов, участвующих в резервировании.
Чтобы минимизировать появление Объект не найден:
архивные копии перед проведением работ по исправлению структуры базы.непосредственное удаление объектов для всех пользователей, кроме администратора.Помните, что удаление данных из регистров — это крайняя мера. Перед любыми манипуляциями обязательно тестируйте решение на копии базы!