Не могу В языке запросов проверить Пустая ссылка или нет. В реквизите хранится ссылка на справочник. В запросе надо выбрать записи, в которых есть реальная ссылка. Помогите пож.
---
если знаешь что за справочник, проверь на неравенство Ссылка<>Значение(Справочник.ТвойСправочник.ПустаяСсылка)
---
если знаешь что за справочник, проверь на неравенство Ссылка<>Значение(Справочник.ТвойСправочник.ПустаяСсылка)
---
а откуда выборка то идет? реквизит чего?
может там она не пустая оказаться, а null?
---
Для справки

В СКД можно воспользоваться глобальной функцией "ЗначениеЗаполнено"
---
В СКД можно воспользоваться глобальной функцией "ЗначениеЗаполнено"
Пример использования ЗначениеЗаполнено() в языке запросов приведете?
---
он наверное имел в виду в вычисляемых полях.
---
Возможно, но к отбору, как хотел ТС, они никак не относятся
---
это намек посмотреть на другой механизм.
Не видя листинга запроса и что из себя представляют исходные таблицы все советы будут из теорчасти.
---
чтобы сравнить в запросе на пустую ссылку, достаточно знать тип ссылки и конструкцию "Значение(..ПустаяСсылка)". Никаких других изобретений велосипеда не нужно
---
этот случай простой и решение подошло. В другой ситуации когда у поля несколько типов значений, как будете проверять на пустую ссылку?
---
Через

```1c
    Ссылка В (Неопределено, Значение(Справочник.С1.ПустаяСсылка), Значение(Справочник.С2.ПустаяСсылка))
```

(10)
Конкретно так не получится, если Ссылка пустая, там NULL, а с NULL сравнивать только через EстьNULL/(Eсть NULL). А вообще, через любой реквизит можно, но не по феншую, да и зачем?
---
Век живи, век учись. Интересное решение.

(13) Не во всех случаях сработает. Например, если у справочника длина кода = 0, то вызовет ошибку, так как в таблице такого поля не будет.
---
точно. тогда ПометкаУдаления
---
Согласно документации по ЗначениеЗаполнено(), ей можно пользоваться только для примитивных типов, массивов и коллекций.
---
может пойдет вот такое: ЗначениеЗаполнено (Ссылка.ВерсияДанных)?
---
Если ...Ссылка.Код Есть Null Тогда "не заполнено"
---
где
 Спр.Ссылка <> ЗНАЧЕНИЕ(Справочник.Контрагент.ПустаяСсылка)
---
после пустаяссылка скобки не ставим
---
Я проблему с пустыми ссылками на документы решил следующим образом:
НЕ ТИПЗНАЧЕНИЯ(ВТ_АктуальныеРегистраторы.СторнируемыйДокумент.Дата) = ТИП(ДАТА)

Получается, если СторнируемыйДокумент = живой документ, то у него тип Дата. А если пустая ссылка - то тип NULL
---
достаточно сделать
```1c
    ЕстьNull(ВТ_АктуальныеРегистраторы.СторнируемыйДокумент.Дата, ДатаВремя(1,1,1)) > датавремя(1,1,1)
```

Потому что ТипЗначения() не работает на старых платформах
---
Ссылка.ВерсияДанных = """"
---
А если для запроса то не надо ссылку конвертнуть в строку? Это вопрос, а не ирония :)
---
Это текст для запроса. Прям в запросе так пишешь.
Выбрать Ссылка Из Справочник.Номенклатура Где Ссылка.ВерсияДанных<>""""
---
Это неправильно сработает, если есть неразрешённые (битые) ссылки. Напр., при переносе данных в новую базу.
---
Через неявное левое
Ссылка.Ссылка есть null
---
через новый метод (использую для составного типа)
УникальныйИдентификатор(Ссылка) = УникальныйИдентификатор(ЗНАЧЕНИЕ(Справочник.ЛЮБОЙ.ПустаяСсылка))

ну или сравнить с параметром с пустым УН

нюанс этого метода что на Неопределено тоже срабатывает (в моём случае это плюс), хотя ВЫБРАТЬ УникальныйИдентификатор(Неопределено) не работает.
---
На справочник работает Ссылка<>Значение(Справочник.ТвойСправочник.ПустаяСсылка)
на Поле строка <>""""
---
На "пустую строку" поля нравится такая проверка

поле + "!" <> "!"
---
поле + "!" <> "!"
спасибо)