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