1с битая ссылка

Задача: Найти битые ссылки в справочнике и по возможности восстановить их.

Исходные данные: В справочнике ‘Футбольные клубы’ есть реквизит ‘Спонсор’ – тип ‘СправочникСсылка.Спонсоры’. Какой-то умный пользователь, воспользовался брешью в системе прав доступа и напрямую удалил элемент ‘Газ’ из этого справочника. В итоге имеем такую картину:

<Объект не найден>
<Объект не найден>

Рассмотрим способы, с помощью которых, мы сможем отыскать элементы с битыми ссылками:

  • С помощью запроса. Обращаемся в запросе через ‘точку’ к любым данным нашего битого реквизита ‘Спонсор’. В результате программой будет построено “левое соединение”, для получения этого значения. А как мы знаем, если при соединении таблиц, какие-то данные отсутствуют, то в итоге мы получим ‘NULL’:
Поиск битых ссылок с помощью запроса.
Поиск битых ссылок с помощью запроса.
  • С помощью метода ‘ПолучитьОбъект()‘. В случае если мы пытаемся получить объект битой ссылки, то в итоге получим пустое значение, не принадлежащее ни к одному типу:
Поиск битых ссылок с метода "ПолучитьОбъект()"
Поиск битых ссылок с метода “ПолучитьОбъект()”.
  • Поиск по строке ‘Объект не найден’. Преобразуем значение реквизита ‘Спонсор’ в строку и ищем вхождение подстроки ‘<Объект не найден>’:
  • С помощью универсальной функции из конфигурации ‘Библиотека стандартных подсистем’: ‘Функция СсылкаСуществует(ПроверяемаяСсылка)‘:

Вот такими простыми способами мы можем выявить любые битые ссылки в нашей конфигурации.

Так как же восстановить значение битой ссылки? Для начала нам нужен любой архив нашей рабочей базы, где данные значения еще имеют нормальный (не битый) вид.

Теперь нужно получить уникальный идентификатор битой ссылки, делается это просто:

GUID битой ссылки.

Имея архив базы, GUID и тип данных – мы легко можем получить утерянный элемент:

Найденные ссылки.
Найденные ссылки.

С помощью универсальной обработки переноса данных “Выгрузка загрузка данных xml” осуществляем восстановление элемента.

Выгружаем из архива:

 Выгрузка загрузка данных xml.
Выгрузка данных xml.
Выгрузка данных xml.
Выгрузка данных xml.

Загружаем в базу с битой ссылкой:

Загрузка данных.
Загрузка данных.

Внимание! Загрузку данных лучше производить в толстом клиенте! В тонком клиенте бывает возникают ошибки при работе с данной обработкой.

Готово. Элемент жив!

Восстановленный элемент.
Восстановленный элемент.

Вот так вот просто мы восстановили нашу битую ссылку. С помощью вышеописанных алгоритмов можно восстановить любые битые данные! Естественно при наличии архивов.

1+

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *