Бывает необходимо получить в запросе пустую ссылку на какой-то объект или выбрать объекты с незаполненным реквизитом, установив отбор по пустой ссылке. Разберем в статье разные варианты получение и отбора по пустой ссылке, а также способы проверки на заполненность. В этой заметке во всех примерах будет устанавливаться отбор или сравнение на пустую ссылку в справочнике и пустую ссылку в документе.

Отбор по пустой ссылке

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

Пустая ссылка через установить параметр

В примере устанавливаем пустую ссылку с помощью функции запроса УстановитьПараметр.

Запрос = Новый Запрос("
|	...
|	ГДЕ РеквизитСправочника = &ПустаяСсылкаСправочник
|	И РеквизитДокумента = &ПустаяСсылкаДокумент)";

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

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

Пустую ссылку можно указать в запросе или в соединении, с помощью команды ЗНАЧЕНИЕ.

Запрос = Новый Запрос("
|	...
|	ГДЕ РеквизитСправочника = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|	И РеализацияТоваровУслуг.ДокументОснование = ЗНАЧЕНИЕ(Документ.Заказ.ПустаяСсылка)

Отбор объектов с не заполненными ссылками

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

Запрос = Новый Запрос("
|	...
|	ГДЕ ТоварыНаСкладах.Регистратор.ДокументОснование.Ссылка ЕСТЬ NULL";

Отбор объектов с заполненными значениями. Обратная ситуация и с ней есть особенности. В этом случае нужно использовать оператор «ЕСТЬ НЕ NULL», а не ставить НЕ в начало условия.

Запрос = Новый Запрос("
|	...
|	ГДЕ РеализацияТоваровУслуг.Сделка.Ссылка ЕСТЬ НЕ NULL";

Получение пустого значения в запросе

Получение пустой ссылки в запросе аналогично отбору по пустой ссылке, работает по формуле:

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

  • ЗНАЧЕНИЕ(Документ.НаименованиеДокумента.ПустаяСсылка)

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

Материалы по теме:

  • Про пустые значения на ИТС — ссылка
  • Больше материалов по программирование на 1с — ссылка