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

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

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

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

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

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

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

	

2 комментариев

Добавить свой
  1. 1
    Инара

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

    • 2
      Владимир Тюрюков

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

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

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

+ Leave a Comment