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