В процессе административного обслуживания информационных баз 1С специалисты часто сталкиваются с появлением битых ссылок — элементов, которые отображаются в интерфейсе как <Объект не найден> с указанием уникального идентификатора (GUID). Естественным шагом для исправления данной ошибки является запуск процедуры Тестирование и исправление информационной базы (ТИИ) с включенной опцией «Создавать объекты» при проверке ссылочной целостности. Однако на практике встречаются ситуации, когда регламентное задание ТИИ находит сотни битых ссылок, но не создает необходимые объекты-заглушки. Проанализируем, почему возникает такое поведение платформы «1С:Предприятие» и какими способами можно восстановить целостность данных.
Разберем ключевой фактор, приводящий к описанной проблеме. Если в информационной базе используется механизм разделения данных (общие реквизиты с режимом разделения, характерные для облачных сервисов, конфигураций в режиме 1С:Фреш или систем с мультиарендностью), платформа изменяет алгоритм проверки ссылочной целостности.
Когда процедура ТИИ сталкивается с битой ссылкой на разделяемый объект, платформа не может однозначно определить, к какой именно области данных (Data Area ID) должен относиться создаваемый элемент-заглушка. Чтобы избежать случайного перемешивания или искажения данных в независимых областях разделения, платформа блокирует автоматическое создание элементов. В журнал регистрации и отчет ТИИ выводится лишь предупреждение о наличии ошибки ссылочной целостности, а сами объекты автоматически не создаются. В этом случае требуется ручное или программное вмешательство.
Помимо разделения данных, существуют и другие особенности архитектуры платформы, из-за которых ТИИ может пропускать создание объектов:
Проанализируем ситуацию, когда сами восстановленные элементы-заглушки не представляют бизнес-ценности для пользователей (например, при разделении базы через РИБ для подчиненных узлов). В таком случае создание пустых справочников или документов только загромождает базу данных.
Чтобы быстро и красиво привести информационную базу в порядок, рекомендуется переключить режим обработки ссылок в настройках ТИИ:
1С:Предприятие в монопольном режиме под правами администратора.Администрирование — Тестирование и исправление.При наличии ссылок на несуществующие объекты выберем вариант «Очищать ссылки» (вместо «Создавать объекты»).Если проблема возникла в подчиненном узле распределенной информационной базы (РИБ), а в центральной (главной) базе эти объекты присутствуют и валидны, наиболее правильным решением будет восстановление данных через обмен:
Регистрация изменений для обмена.Если необходимо создать объекты-заглушки вручную с сохранением конкретного уникального идентификатора, воспользуемся программным кодом. Разберем по шагам, как извлечь UUID из текста ссылки и восстановить объект в справочнике.
Рассмотри пример кода для программного восстановления элемента справочника по его уникальному идентификатору:
// Указываем найденный в интерфейсе UUID битой ссылки
СтрокаGUID = "e1c2b3d4-5678-90ab-cdef-1234567890ab";
ИмяСправочника = "Номенклатура";
// Формируем уникальный идентификатор
НовыйУид = Новый УникальныйИдентификатор(СтрокаGUID);
// Получаем ссылку на будущий объект
СсылкаНаОбъект = Справочники[ИмяСправочника].ПолучитьСсылку(НовыйУид);
// Создаем новый элемент справочника
НовыйОбъект = Справочники[ИмяСправочника].СоздатьЭлемент();
// Назначаем объекту зафиксированный ранее GUID
НовыйОбъект.УстановитьСсылкуНового(СсылкаНаОбъект);
НовыйОбъект.Наименование = "Восстановленный объект (заглушка)";
Попытка
НовыйОбъект.Записать();
Сообщить("Объект успешно создан с GUID: " + СтрокаGUID);
Исключение
Сообщить("Не удалось записать объект: " + ОписаниеОшибки());
КонецПопытки;
В приведенном коде метод УстановитьСсылкуНового() позволяет жестко привязать новый элемент к исходному УникальныйИдентификатор, благодаря чему битая ссылка <Объект не найден> мгновенно подменяется созданным элементом во всех документах и регистрах.
При большом количестве битых ссылок разного типа вызов программного кода вручную для каждого GUID становится трудоемким. Для таких задач проанализируем применение специализированных административных обработок (например, «Поиск и замена дублей», «Поиск битых ссылок» или «Восстановление ссылочной целостности»).
Подобные инструменты сканируют метаданные базы, находят все невалидные ссылки типа УникальныйИдентификатор и массово формируют объекты-заглушки во всех таблицах, существенно экономя время администратора.