Устранение битых ссылок 'Объект не найден' в 1С:Предприятие
- В отчетах, документах или регистрах отображаются строки вида
<Объект не найден> (84:a1b2c3d4...). - Сбои при формировании движений по регистрам и проведении документов.
- Ошибки ссылочной целостности при выполнении плана обмена РИБ.
- Метод
Ссылка.ПолучитьОбъект()возвращаетНеопределено.
1. Запрос на выявление битых ссылок в базе данных
ВЫБРАТЬ
Док.Ссылка КАК ДокументСсылка,
Док.Контрагент КАК Контрагент,
Док.Контрагент.Наименование КАК ПроверкаБитойСсылки
ИЗ
Документ.РеализацияТоваровУслуг КАК Док
ГДЕ
Док.Контрагент.Наименование ЕСТЬ NULL
И Док.Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)2. Запуск регламентного Тестирования и Исправления (ТИБ)
- Запустите 1С:Предприятие в режиме Конфигуратор.
- Перейдите в меню Администрирование -> Тестирование и исправление...
- Отметьте пункт: Проверка ссылочной целостности информационной базы.
- При наличии неразрешимых ссылок выберите действие: Создавать объекты или Очищать ссылки.
- Нажмите кнопку Выполнить.
3. Программное создание объекта-заглушки для восстановления GUID
GUIDСтрокой = "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d";
НовыйУИД = Новый УникальныйИдентификатор(GUIDСтрокой);
НоваяСсылка = Справочники.Контрагенты.ПолучитьСсылку(НовыйУИД);
Объект = Справочники.Контрагенты.СоздатьЭлемент();
Объект.УстановитьСсылкуНового(НоваяСсылка);
Объект.Наименование = "[ВОССТАНОВЛЕННЫЙ ЭЛЕМЕНТ]";
Объект.Записать(); Частые вопросы (FAQ)
Почему возникают битые ссылки в 1С?
Основные причины: некорректное прямое удаление объектов через Объект.Удалить() в обход механизма контроля ссылок, сбои при частичной синхронизации РИБ/обменов или аварийное прерывание транзакций СУБД.
Чем отличается 'Очищать ссылки' от 'Создавать объекты' при тестировании?
'Очищать ссылки' заменяет битую ссылку на ПустаяСсылка (NULL), а 'Создавать объекты' генерирует новый пустой элемент с утерянным GUID в соответствующей таблице.
Можно ли найти все битые ссылки типовыми средствами конфигурации?
Да, в конфигурациях на БСП для этого используется типовая обработка 'Поиск и удаление неиспользуемых объектов' или 'Поиск и замена дублей'.
Как извлечь битый GUID из строки '<Объект не найден> (XX:YYYY...)'?
Первая шестнадцатеричная часть обозначает номер таблицы метаданных, а вторая — шестнадцатеричное представление 128-битного UUID записи.