1с 8 запрос проверка на пустое значение

1с 8 запрос проверка на пустое значение ФСС

В этой статье будут рассмотрены способы проверки на пустое значение в зависимости от типа проверяемого реквизита в запросе 1С 8.3, в том числе пустой ссылки.


1с 8 запрос проверка на пустое значение

Для проверки строковых типов производится сравнение с другим образцом. В данном случае – «».

Приведенный ниже запрос отберет всех партнеров с незаполненным наименованием.

ВЫБРАТЬ
Партнеры. Ссылка
ИЗ
Справочник. Партнеры КАК Партнеры
ГДЕ
Партнеры. Наименование = «»

//любое пустое значение можно задать в виде параметра
//Ниже пример запроса, который возвращает пустые значения, переданные в качестве параметра
Запрос Запрос

Запрос. УстановитьПараметр Дата
Запрос. УстановитьПараметр
Запрос. УстановитьПараметр Справочники. Товары. ПустаяСсылка
Запрос. УстановитьПараметр
Запрос. УстановитьПараметр

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по ссылке.
Будем рады помочь Вам!

Проверка значения на пустую дату производится путем сравнения с конструкцией ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0). Пример использования приведен ниже:

ВЫБРАТЬ
Встреча. Ссылка
ИЗ
Документ. Встреча КАК Встреча
ГДЕ
Встреча. Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

NULL – это не что иное, как отсутствие значения. Многие путают его со значением «0» типа число, пустой ссылкой на какой-либо объект или же с пустой строкой. Из-за этого заблуждения возникает много ошибок.

Значение NULL будет появляться в том случае, если в запросе будет обращение к несуществующему полю, свойству или к битой ссылке.

Язык запросов в 1С основан на SQL, который не позволяет проверять на значение NULL обычным равенством. Ниже описаны два способа проверки на NULL в 1С 8.3.


1с 8 запрос проверка на пустое значение

Функция языка запросов 1С 8.3 ЕСТЬNULL() имеет два входных параметра:

Если проверяемое значение будет NULL, то эта функция вернет значение выражения замены. Если же значение будет отлично от NULL, то вернется само проверяемое выражение.

Ниже рассмотрен пример. В нем выбираются все номенклатурные позиции табличной части товара из документа «Поступление товаров и услуг». При помощи левого соединения каждой номенклатуре проставляется последняя цена из регистра сведений «Цены номенклатуры».

В данном случае может возникнуть такая ситуация, что для какой-либо позиции может просто не быть цены в регистре. В таком случае функция ЕСТЬNULL вернет нам привычный ноль. Если ей не воспользоваться, то при попытке произвести арифметические операции над полем «Цена» со значением NULL мы получим ошибку.

ВЫБРАТЬ
Товары. Номенклатура КАК Товар,
ЕСТЬNULL(Цены. Цена, 0) КАК АктуальнаяЦена
ИЗ
Документ. ПоступлениеТоваровУслуг. Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. ЦеныНоменклатуры. СрезПоследних КАК Цены
ПО Товары. Номенклатура = Цены. Номенклатура
ГДЕ
Товары. Ссылка = &СсылкаНаДокумент

2.

_Pups_

Сейчас в теме

3.

Mogilnikova

Сейчас в теме

а откуда выборка то идет? реквизит чего?
может там она не пустая оказаться, а null?

4.

Velesstroy_OOO

Сейчас в теме

В СКД можно воспользоваться глобальной функцией «ЗначениеЗаполнено»

5.

ResetAtreides

Сейчас в теме

Пример использования ЗначениеЗаполнено() в языке запросов приведете?

6.

DmitriyPopow

Сейчас в теме

он наверное имел в виду в вычисляемых полях.

7.

ResetAtreides

Сейчас в теме

Возможно, но к отбору, как хотел ТС, они никак не относятся

8.

Velesstroy_OOO

Сейчас в теме

это намек посмотреть на другой механизм.
Не видя листинга запроса и что из себя представляют исходные таблицы все советы будут из теорчасти.

9.

ResetAtreides

Сейчас в теме

чтобы сравнить в запросе на пустую ссылку, достаточно знать тип ссылки и конструкцию «Значение(. ПустаяСсылка)». Никаких других изобретений велосипеда не нужно

11.

Velesstroy_OOO

Сейчас в теме

этот случай простой и решение подошло. В другой ситуации когда у поля несколько типов значений, как будете проверять на пустую ссылку?

12.

ResetAtreides

Сейчас в теме

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

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

14.

Velesstroy_OOO

Сейчас в теме

Век живи, век учись. Интересное решение.

Не во всех случаях сработает. Например, если у справочника длина кода = 0, то вызовет ошибку, так как в таблице такого поля не будет.

15.

spezc

Сейчас в теме

точно. тогда ПометкаУдаления

10.

V. Stavinsky

Сейчас в теме

может пойдет вот такое: ЗначениеЗаполнено (Ссылка. ВерсияДанных)?

13.

spezc

Сейчас в теме

16.

Jen1978

Сейчас в теме

17.

Jen1978

Сейчас в теме

после пустаяссылка скобки не ставим

18.

Amigo-NN

Сейчас в теме

Я проблему с пустыми ссылками на документы решил следующим образом:
НЕ ТИПЗНАЧЕНИЯ(ВТ_АктуальныеРегистраторы. СторнируемыйДокумент. Дата) = ТИП(ДАТА)

Получается, если СторнируемыйДокумент = живой документ, то у него тип Дата. А если пустая ссылка — то тип NULL

19.

nomad_irk

Сейчас в теме

Потому что ТипЗначения() не работает на старых платформах

20.

Maden

Сейчас в теме

Ссылка. ВерсияДанных = «»»»

21.

blazh

Сейчас в теме

А если для запроса то не надо ссылку конвертнуть в строку? Это вопрос, а не ирония 🙂

22.

Maden

Сейчас в теме

23.

cartograph

Сейчас в теме

Читайте также:  Социальное страхование

Это неправильно сработает, если есть неразрешённые (битые) ссылки. Напр., при переносе данных в новую базу.

14.

davay2000

Сейчас в теме

получилось! Сделал в запросе такое условие:

ВЫБОР
КОГДА &СчетДт в (ОтборыПоСубконто. Счет)
И (ОтборыПоСубконто. Субконто1. Ссылка ЕСТЬ NULL ИЛИ ОтборыПоСубконто. Субконто1 = &СубконтоДт1)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ

15.

Kamikaze43

Сейчас в теме

,

+1 только так и не иначе

16.

IrinaL___

Сейчас в теме

Можно и вот так :
ВЫБОР
КОГДА РасчетыСПокупателямиОстатки. Заказ. Ссылка ЕСТЬ NULL
ТОГДА «пустое значение»
ИНАЧЕ «не пустая ссылка»
КОНЕЦ КАК Поле1

тогда не нужно никаких параметров!

17.

tolyan_ekb

Сейчас в теме

IrinaL___, думаете несколько лет спустя автор все еще ждет ответа?

18.

Азбука Морзе

Сейчас в теме

tolyan_ekb,
Автор только породил тему, а дальше она живет собственной жизнью. Все как у людей:)

44.

davay2000

Сейчас в теме

автор с удовольствием удалит тему, но к несчастью, автор не может найти кнопку удалить топик.

19.

Nebiros777

Сейчас в теме

tolyan_ekb,
Да и не только для автора ответы. Многие через гугля попадают на страничку и не тратят драгоценное время до сдачи проекта)))

20.

Atix

Сейчас в теме

Если вы пытаетесь проверить неогранниченное текстовое поле на «заполненность» в запросе, это можно сделать через выражение и временную таблицу, например так:

45.

crash-16

Сейчас в теме

А зачем временная таблица? Сразу в условиях прописать:

46.

resonance

Сейчас в теме

21.

kitaevay

Сейчас в теме

Может кому то будет интересно — в запросе к полю, которое может хранить несколько разных Типов значения и которое не заполнено вернётся Неопределено.

Т.е. для таких полей достаточно сравнить с Неопределено, пример:

ВЫБРАТЬ РАЗЛИЧНЫЕ
ИсполнителиЗадач. РольИсполнителя КАК РольИсполнителя
ИЗ
РегистрСведений. ИсполнителиЗадач КАК ИсполнителиЗадач
ГДЕ
ИсполнителиЗадач. ДополнительныйОбъектАдресации = НЕОПРЕДЕЛЕНО

23.

Nimfetamin

Сейчас в теме

kitaevay, Спасибо огромное.

38.

unmensch

Сейчас в теме

Это поле может быть заполнено пустой ссылкой одного из допустимых объектов. Условие некорректно.

41.

agdam_m

Сейчас в теме

Если поле составного типа то тип может быть указан, а значение не заполнено, для того чтобы обрабатывать эту ситуацию нужно писать:

ВЫБРАТЬ РАЗЛИЧНЫЕ
ИсполнителиЗадач. РольИсполнителя КАК РольИсполнителя
ИЗ
РегистрСведений. ИсполнителиЗадач КАК ИсполнителиЗадач
ГДЕ
ИсполнителиЗадач. ДополнительныйОбъектАдресации = НЕОПРЕДЕЛЕНО
ИЛИ ИсполнителиЗадач. ДополнительныйОбъектАдресации. Ссылка ЕСТЬ NULL

47.

Letos

Сейчас в теме

Это очень плохо вариант.

1. Если это составной тип, то запрос будет выполняться для каждого типа.
2. Н ЕОПРЕДЕЛЕНО — это тип. И 1С будет сравнивать не значение, а пытаться определить тип и с типом сравнивать.

48.

SlavaKron

Сейчас в теме

1. Не будет.
2. Н ЕОПРЕДЕЛЕНО — это значение.

49.

spacecraft

Сейчас в теме

22.

Alexey26

Сейчас в теме

24.

Team leader

Сейчас в теме

ВЫБРАТЬ
ОбщепитРецептураТовары. Номенклатура КАК Номенклатура,
ОбщепитРецептураТовары. Номенклатура. Код КАК Код,
ОбщепитРецептураТовары. Ссылка КАК Ссылка
ИЗ
Документ. ОбщепитРецептура. Товары КАК ОбщепитРецептураТовары
ГДЕ
ВЫБОР
КОГДА ОбщепитРецептураТовары. Номенклатура. Ссылка ЕСТЬ NULL
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ

43.

KazanKokos

Сейчас в теме

ВЫБРАТЬ
ОбщепитРецептураТовары. Номенклатура КАК Номенклатура,
ОбщепитРецептураТовары. Номенклатура. Код КАК Код,
ОбщепитРецептураТовары. Ссылка КАК Ссылка
ИЗ
Документ. ОбщепитРецептура. Товары КАК ОбщепитРецептураТовары
ГДЕ
НЕ ОбщепитРецептураТовары. Номенклатура. Ссылка ЕСТЬ NULL

Не одно и тоже?

25.

Nickon

Сейчас в теме

Бухи убирают из документов «ПоступлениеТоваровУслуг» счет расчета по авансам 60.02. Как в запросе проверить поле СчетУчетаРасчетаПоАвансам на пустое значение?

26.

Душелов

Сейчас в теме

Глобальный контекст
ЗначениеЗаполнено (ValueIsFilled)

Возвращаемое значение:
Тип: Булево. Для значений типа Булево всегда возвращается Истина.

27.

Nickon

Сейчас в теме

28.

Душелов

Сейчас в теме

Не заметил про запрос 🙂

29.

Nickon

Сейчас в теме

30.

Ish_2

Сейчас в теме

А также использование литерала функционального типа ЗНАЧЕНИЕ и литерала ПустаяСсылка.
Например, возможно условие в запросе

исключающее в выходной таблице запроса записи с пустой ссылкой справочника Контрагенты.

31.

redgad

Сейчас в теме

Можно так:
СчетАвансов. Код = NULL

В конкретном случае СчетАвансов никогда не будет равен NULL

32.

anig99

Сейчас в теме

— не покатит. N ULL=NULL даёт ложь.

33.

redgad

Сейчас в теме

Да, действительно надо использовать есть null

34.

Ish_2

Сейчас в теме

Да простят меня

,

,

и сам автор , но если в названии темы употреблено выражение «пустое значение» , то
правильным ответом является только

.
NULL — это не пустое значение , это NULL.

35.

anig99

Сейчас в теме

36.

Nickon

Сейчас в теме

Вариант

срабатывает тоже, если указывать не Контрагент. Ссылка а просто Контрагент. А вот для выражения ЕСТЬ NULL необходимо указывать ссылочное значение.

37.

KulSer

Сейчас в теме

Только что проверил на 1С:Предприятие 8.3 (8.3.10.2299), УПП 1.3 обычное (неуправляемые формы) приложение.
Для ссылок на один-единственный тип данных работает ЕСТЬ NULL.
Для ссылок, у которых составной тип данных, работает Неопределено.
Вот как всё запутано 🙁

39.

Nigelist

Сейчас в теме

В отдельных случаях, свойство не заполнено. Можно ли в запросе, сделать чтобы возвращался определенный текст, если свойство не заполнено?

40.

GetNight

Сейчас в теме

Читайте также:  Что надо успеть сделать самозанятому в 2020 году, чтобы в 2021 году получать выплаты по больничному из ФСС

можно так:

42.

eksdak

Сейчас в теме

6.

Asya. Ozerova

Сейчас в теме

Давно ли Неопределено стало = NULL?

10.

karamazoff

Сейчас в теме

друг ! у тебя такой рейтинг и ты задаешь такие вопросы?

24.

Asya. Ozerova

Сейчас в теме

Нужно в запросе как-то проверить на пустое значение

25.

Asya. Ozerova

Сейчас в теме

Я в курсе.
Вам несколько человек говорят, что то что вы предлагаете — в таком виде работать не будет.
Вы можете проверить сами.
Это может сработать, если проверять на null реквизит Реквизита. Но не сам реквизит.
Но в этом случае будет соединение со всеми таблицами этого составного реквизита.

44.

Asya. Ozerova

Сейчас в теме

Я Вам говорю исходя из собственного опыта

Даже не знаю что на это ответить. Ну только то что ваш опыт вам врет. Учите матчасть.

48.

Asya. Ozerova

Сейчас в теме

Учитесь Сын! Так есть

Не останавливайся на достигнутом! Продолжай проверять реквизиты основной таблицы на NULL, и будешь ты самой крутой 1С-ницей в мире!

Вы бы хоть сначала в консоли проверили свои слова.
То что никто в теме вас не поддерживает, ни на что не намекает?
Или вы считаете некомпетентными всех кроме себя?
Просто так упорно утверждать то, в чем вы ошибаетесь, ведь самой же потом стыдно будет.

Да ладно, все ошибаются. Надо только уметь признавать свои ошибки.

Если вам лень сделать пример самостоятельно, вот вам тестовая база.


1с 8 запрос проверка на пустое значение

Заберу, пожалуй, в цитатник. Потом, как-нибудь верну обратно.

2.

SlavaKron

Сейчас в теме

ГДЕ Реквизит = Неопределено

Спасибо!
Там — пустое значение, например Документы. Отпуск. ПустоеЗначение.
Но не перебирать же все возможные виды документов?

4.

spacecraft

Сейчас в теме

Вот именно для этого пустым значением у составного типа является Неопределенно. Документы. Отпуск. ПустоеЗначение у составного типа это уже заполненное значение (возможно предопределенным) значением документа Отпуск.

Как проверить на ПустоеЗначение у составного реквизита?

7.

spacecraft

Сейчас в теме

для начала определите что такое ПустоеЗначение. Такого типа нет в 1С.

8.

Dr. HiHi

Сейчас в теме

а почему там пустое документе, а не неопределено??
возможно стоит при записи правильно передавать данные или при записи в регистр корректировать записи??
чтобы потом проверять на Неопределено, а не выдумывать что-то

9.

SlavaKron

Сейчас в теме

Если задача найти в том числе и пустые ссылки, то в принципе можно заставить платформу перебрать все возможные виды документов. Тогда условие будет такое:
ГДЕ Реквизит. Ссылка ЕСТЬ NULL
Но такой финт будет дорого стоить – в запросе будет неявная связь со всеми таблицами ссылочного типа.

11.

Asya. Ozerova

Сейчас в теме

Вы не правы, будет проверяться конкретный объект

12.

Asya. Ozerova

Сейчас в теме

Но это в том случае когда сам Запрос будет составлен грамотно, я об этом сказала еще в

18.

Asya. Ozerova

Сейчас в теме

Да нет, показалось —

Но, как говорится: «Броня крепка и танки наши

Да, но нет.

«Гешефтный труд и труд кибуцных пашен
Мы защитим, страну свою храня,
Мы палестинцев нафиг разъебашим
И быстротой, и натиском огня.»

А где «таки»? Должна быть как минимум одна штука, а то и таки две!

Серьезно? Что вы сказали в 6?

6. Asya. Ozerova 38 29.03.23 19:46

То есть остальной ответ вы оставили у себя в голове?

19.

Asya. Ozerova

Сейчас в теме

для проерки реквизита этого достаточно вполне

21.

Asya. Ozerova

Сейчас в теме

Так это работает!

1с 8 запрос проверка на пустое значениеЕсли значению составного типа не был присвоен тип, то будет Неопределено. Но также может быть и пустая ссылка на любой из составляющих типов.
С чего вдруг будет Null то?

Именно так и есть. Есть записи с Неопределено и есть записи со ссылками на пустой документ какой-нибудь из допустимых.
Неопределено — проверяется. А как пустую ссылку на документ проверить?

Можно до запроса сформировать массив с пустыми ссылками, которые есть составе типа реквизита, и Неопределено.

Выбор
Когда Реквизит В (&МассивПустыхЗначений) Тогда Истина
Иначе Ложь
Конец

ДА ЛАДНО? Какая таблица из составного типа будет проверяться?

А что, оно само не разберется?=))

На NULL — конечно не разберется. Null бывает только в правых таблицах.

23.

Asya. Ozerova

Сейчас в теме

Не надо врать. Это работает только в правых таблицах

В данном случае это не работает.

27.

vadim1011985

Сейчас в теме

А если сначала проверить на неопределенно если тип не выбран , а если тип выбран проверить по УникальномуИдентификатору

А если он не «Неопределено»?

32.

Asya. Ozerova

Сейчас в теме

все равно сработает, данных нет

Продолжайте, не останавливайтесь!

35.

Asya. Ozerova

Сейчас в теме

А если он все таки NULL? Никто же не привел текст запроса. Этот составной тип используется в левой таблице или в правой (в случае соединения)?

46.

vadim1011985

Сейчас в теме

Ну если Вам так хочется с null

ВЫБОР
КОГДА isNull(Реквизит, &ПустойИдентификатор)= НЕОПРЕДЕЛЕНО
ТОГДА «Неопределено»
КОГДА УНИКАЛЬНЫЙИДЕНТИФИКАТОР(isNull(Реквизит, &ПустойИдентификатор)) = &ПустойИдентификатор
ТОГДА «Пустая ссылка»
ИНАЧЕ «Заполнено»
КОНЕЦ КАК ТипЗаполнения

Читайте также:  Фонд соцстрахования Балашова: официальный сайт и адреса отделений

Я ж написал — в текущих типовых не прокатит. В самописных — юзайте нафиг.

52.

vadim1011985

Сейчас в теме

только что проверил на типовой БП (3.0.129.13) все работает

isNull нужно только если будут соединения при условии что поле составного типа в правой таблице ( при левом соединении)

Без соединений проверка на null y не нужна

Это просто записи регистра накопления анализируются.

37.

SlavaKron

Сейчас в теме

Если версия платформы позволяет, то вариант рабочий. Такой запрос не делает соединения со всеми таблицами типа:

ВЫБОР
КОГДА Реквизит = НЕОПРЕДЕЛЕНО
ТОГДА «Неопределено»
КОГДА УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Реквизит) = &ПустойИдентификатор
ТОГДА «Пустая ссылка»
ИНАЧЕ «Заполнено»
КОНЕЦ КАК ТипЗаполнения

38.

Asya. Ozerova

Сейчас в теме

Вопрос то был в СКД, но мы рады

40.

vadim1011985

Сейчас в теме

хммм а в чем разница ? и в СКД будет работать

39.

vadim1011985

Сейчас в теме

Да , я уже свой вариант проверил . У вас более компактная запись

Только в самописных конфигурациях, да.

43.

vadim1011985

Сейчас в теме

Да с чего вы взяли ?

Потому что в типовых конфигурациях есть такое понятие как «Режим совместимости». Ознакомьтесь на досуге.

51.

SlavaKron

Сейчас в теме

Могу ошибаться, но вроде бы эта штука не зависит от версии совместимости – только от платформы.

Нет, в типовых конфигах можно использовать только те возможности (включая встроенный язык 1С и язык запросов 1С), которые соответствуют установленному режиму совместимости конкретной конфигурации.

Думаю, профи должны это знать «как два пальца об асфальт».

56.

SlavaKron

Сейчас в теме

Такие вещи, которые в ядре платформы, обычно не зависят от версии совместимости. Тот же IE в поле html никто не будет поддерживать только ради обратной совместимости.

Ну вот в конструкторе запросов я вижу про УникальныйИдентификатор (БСП 3.1.4).
Как он будет работать в типовых — не уверен.
Пока верю тебе на слово ))

Что нужно указать в качестве &ПустойИдентификатор?

65.

vadim1011985

Сейчас в теме

см. пример в ответе 27

34.

Asya. Ozerova

Сейчас в теме

36.

Asya. Ozerova

Сейчас в теме

За то что я говорю, я могу сделать, а Вы!?

70.

демиденкоНаталияФедоровна

Сейчас в теме

71.

vadim1011985

Сейчас в теме

в запросе , а не в коде

Проверка на NULL

Значение NULL возвращается в том случае, когда реквизита попросту нет. Тип в этом случае будет тоже NULL. Например, вы объединяете две таблицы через левое соединение. В том случае, когда для левой таблицы не будет найдено ни одного значения в правой, вернется NULL.

Проверку на данное значение можно осуществить при помощи конструкции «ЕСТЬ NULL» и «ЕСТЬNULL()». В первом случае возвращается Истина или Ложь. Во втором случае можно сразу задать другое значение в том случае, когда возвращается NULL.

В приведенном ниже запросе 1С 8.3 будут возвращен список контактных лиц тех партнеров, у кого не задан сегмент.

ВЫБРАТЬ
КонтактныеЛицаПартнеров. Ссылка
ИЗ
Справочник. КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник. СегментыПартнеров КАК СегментыПартнеров
ПО КонтактныеЛицаПартнеров. Владелец = СегментыПартнеров. Родитель
ГДЕ
СегментыПартнеров. Ссылка ЕСТЬ NULL

ЕСТЬ NULL в операторе ВЫБОР

Аналогом функции ЕСТЬNULL() является «ЕСТЬ NULL», которая используется в операторе ВЫБОР и проверяет, является ли значение NULL. « ЕСТЬ» в данном случае подразумевает равенство и запрос предыдущего примера будет выглядеть следующим образом:

ВЫБРАТЬ
Товары. Номенклатура КАК Товар,
ВЫБОР
КОГДА Цены. Цена ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ Цены. Цена
КОНЕЦ КАК АктуальнаяЦена
ИЗ
Документ. ПоступлениеТоваровУслуг. Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. ЦеныНоменклатуры. СрезПоследних КАК Цены
ПО Товары. Номенклатура = Цены. Номенклатура
ГДЕ
Товары. Ссылка = &СсылкаНаДокумент

Пустая дата в запросе 1С 8

//Кроме того, пустые значения можно задать непосредственно в запросе
//Для формирования пустой даты используется конструкция ДатаВремя(1,1,1)
//Пустая строка заключается в двойные кавычки
//Пустая ссылка устанавливается при помощи оператора Значение

// Запрос возвращает документы установки цен с пустой датой утверждения
Запрос Запрос

Пустая ссылка в запросе 1С

В случае, когда возвращаемый реквизит имеет ссылочный тип, например, это элемент какого-либо справочника, документа и т. п., используется следующая конструкция: ЗНАЧЕНИЕ(Справочник. ИмяСправочника. ПустаяСсылка).

В приведенном ниже примере запрос выбирает всех партнеров, у которых не указан бизнес-регион.

ВЫБРАТЬ
Партнеры. Ссылка
ИЗ
Справочник. Партнеры КАК Партнеры
ГДЕ
Партнеры. БизнесРегион = ЗНАЧЕНИЕ(Справочник. БизнесРегионы. ПустаяСсылка)

Чтобы проверить на «ЗначениеЗаполнено» нужно сделать обратное условие:

Проверка на NULL в запросе

Значение типа NULL может появиться в результате использования соединений, либо при обращении к недоступным реквизитам (реквизиты групп у элементов и реквизиты элементов у групп будут иметь тип NULL)

//Запрос вернет все товары, по которым нет остатков на складе
Запрос Запрос

Отличия функции ЕСТЬNULL() от ЕСТЬ NULL

// Запрос вернет все товары, у которых не заполнен основной поставщик
Запрос Запрос

Оцените статью
ФСС Help
Добавить комментарий