В данной статье рассмотрены примеры работы с пустыми значениями в запросах 1С 8. Как указать пустую дату, пустую строку или пустую ссылку в языке запросов – читайте далее.
Содержание
//любое пустое значение можно задать в виде параметра
//Ниже пример запроса, который возвращает пустые значения, переданные в качестве параметра
Запрос = Новый Запрос("ВЫБРАТЬ
| &ПустаяДата КАК ПустаяДата,
| &ПустаяСтрока КАК ПустаяСтрока,
| &ПустаяСсылкаНаТовар КАК ПустаяСсылкаНаТовар,
| &ПараметрNULL КАК ПараметрNULL,
| &ПараметрНеопределено КАК ПараметрНеопределено");
Запрос.УстановитьПараметр("ПустаяДата", Дата(1,1,1));
Запрос.УстановитьПараметр("ПустаяСтрока", "");
Запрос.УстановитьПараметр("ПустаяСсылкаНаТовар", Справочники.Товары.ПустаяСсылка());
Запрос.УстановитьПараметр("ПараметрNULL", Null);
Запрос.УстановитьПараметр("ПараметрНеопределено", Неопределено);
Пустая дата в запросе 1С 8
//Кроме того, пустые значения можно задать непосредственно в запросе
//Для формирования пустой даты используется конструкция ДатаВремя(1,1,1)
//Пустая строка заключается в двойные кавычки
//Пустая ссылка устанавливается при помощи оператора Значение
// Запрос возвращает документы установки цен с пустой датой утверждения
Запрос = Новый Запрос("ВЫБРАТЬ
| УстановкаЦен.Ссылка КАК Ссылка
|ИЗ
| Документ.УстановкаЦен КАК УстановкаЦен
|ГДЕ
| УстановкаЦен.ДатаУтверждения = ДАТАВРЕМЯ(1, 1, 1)");
Проверка на пустую строку в запросе 1С 8.3
//Запрос вернет все документы установки цен, где не заполнен комментарий
Запрос = Новый Запрос("ВЫБРАТЬ
| УстановкаЦен.Ссылка КАК Ссылка
|ИЗ
| Документ.УстановкаЦен КАК УстановкаЦен
|ГДЕ
| УстановкаЦен.Комментарий = """"");
Пустая ссылка (Значение) в запросе 1С 8
// Запрос вернет все товары, у которых не заполнен основной поставщик
Запрос = Новый Запрос("ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка
|ИЗ
| Справочник.Товары КАК Товары
|ГДЕ
| Товары.ОсновнойПоставщик = Значение(Справочник.Контрагенты.ПустаяСсылка)");
Проверка на NULL в запросе
Значение типа NULL может появиться в результате использования соединений, либо при обращении к недоступным реквизитам (реквизиты групп у элементов и реквизиты элементов у групп будут иметь тип NULL)
//Запрос вернет все товары, по которым нет остатков на складе
Запрос = Новый Запрос("ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка
|ИЗ
| Справочник.Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки
| ПО ОстаткиТоваровОстатки.Товар = Товары.Ссылка
|ГДЕ
| ОстаткиТоваровОстатки.Товар ЕСТЬ NULL");