Рубрики
1С: Предприятие 8.х Запросы

Как отобрать пустые ссылки в запросе 1c8

отобрать можно через

ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
ЗНАЧЕНИЕ(Документ.Реализация.ПустаяСсылка) 

либо передавая в запрос в качестве параметра пустую ссылку:

Запрос.УстановитьПараметр("ПустаяСсылка", Справочники.Номенклатура.ПустаяСсылка());

Вот пример запроса с проверкой на пустую ссылку:

    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |   докТовары.Ссылка 
    |ИЗ
    |   Документ.ЭКОМ_Документы.ТЧ_Товары КАК докТовары
    |ГДЕ
    |   докТовары.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    |";
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();


		

2 ответа к “Как отобрать пустые ссылки в запросе 1c8”

Здравствуйте! Простите за глупый вопрос. Как написать запрос, чтобы, если значение пусто(значения в поле нет) подставлял 0? Делаю в запросе вот так ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК Остаток, не работает.

Спасибо за вопрос.
Пусто в Запросе может быть как NULL или как Неопределено.
NULL возникает при соединении таблиц когда соответствие не найдено.
Неопределено – тип данных 1С. Может возникать в других случаях.

Я предлагаю посмотреть через КонсольЗапросов какое значение возвращается в этом поле. А потом сделать вот такое поле с проверкой на это значение:
ВЫБОР КОГДА СвободныеОстаткиОстатки.ВНаличииОстаток = Неопределено Тогда 0 Иначе СвободныеОстаткиОстатки.ВНаличииОстаток КОНЕЦ КАК Остаток,

но можно попробовать сразу эту конструкцию, а если не взлетит то попробовать узнать значение через консоль запросов

Добавить комментарий

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