Проверка на битую ссылку в 1С 8
Битые ссылки в 1С 8
Как найти битые ссылки? Как определить, заполнена ли ссылка?
Если речь идет о регистре, допустим, о пустом значении одного из его измерений, то в запросе поможет подобная инструкция:
...
ИЗ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах ГДЕ ПартииТоваровНаСкладах.ДокументОприходования.Ссылка ЕСТЬ NULL
Такой запрос поможет, если необходимо проверить на пустую ссылку измеренияДокументОприходования.
В некоторых случаях необходимо проверять на NULL не саму ссылку, а ее представление:
ГДЕ ПартииТоваровНаСкладах.ДокументОприходования.Ссылка.Представление ЕСТЬ NULL
2. Есть другой способ, через конвертацию в строку:
Найти(Строка(Ссылка),"<Объект не найден>") <> 0
3. Есть еще способ через функцию ПолучитьОбъект():
Ссылка.ПолучитьОбъект() = Неопределено
Это будет выполняться только в случае, если ссылка битая.
4. Последний способ касается универсальной функции, которая определяет для любого значения ссылки, является ли она битой:
Функция ОбъектБДСуществует(ТестоваяСсылка) Экспорт МД = Метаданные.НайтиПоТипу(ТипЗнч(ТестоваяСсылка)); ИмяОбъекта = МД.Имя; ПолноеИмяОбъекта = МД.ПолноеИмя(); Запрос = новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | " + ИмяОбъекта + ".Ссылка КАК СсылкаБД |ИЗ | " + ПолноеИмяОбъекта + " КАК " + ИмяОбъекта + " |ГДЕ | " + ИмяОбъекта + ".Ссылка = &Cсылка"; Запрос.УстановитьПараметр("Cсылка", ТестоваяСсылка); РезультатЗапроса = Запрос.Выполнить(); Возврат Не РезультатЗапроса.Пустой(); КонецФункции
Если у Вас есть планшет и Вас беспокоит его внешний вид, хотите сохранить его в целости, то рекомендуем заказать чехол на планшет.