Пустая ссылка в запросе в 1С
В языке запросов 1С часто требуется проверить: является ли значение пустой ссылкой.
Пустая ссылка — это такое значение ссылочных объектов, когда оно имеет этот же тип, но само значение не выбрано.
На языке программирования 1С данное значение можно получить через менеджеры объекта.
- Перечисления.Пол.ПустаяСсылка(),
- Справочники.Организации.ПустаяСсылка(),
- ПланыСчетов.Хозрасчетный.ПустаяСсылка(),
- ПредопредленноеЗначение(«ПланСчетов.Хозрасчетный.ПустаяСсылка»)
Альтернативой сравнению с пустой ссылкой имеется метод Пустая() у значения ссылочного типа:
Например:
булКонтрагентВыбран = ВыбКонтрагент.Пустая();
- Как же в запросе 1С сравнить на пустое значение
- 1.Если требуется получить значение пустого типа.
- 2. Если требуется сравнить со значением не составного типа:
- 3. Если требуется проверка составного значения:
Как же в запросе 1С сравнить на пустое значение
Для этого у нас есть несколько вариантов в зависимости от требований задачи:
1.Если требуется получить значение пустого типа.
Воспользуемся функцией ЗНАЧЕНИЕ()
Выбрать
ЗНАЧЕНИЕ (Перечисление.Пол.ПустаяСсылка)//Без вопроса в единственном числеЛибо через переданный в запрос параметр:
Выбрать
&ПустойПараметрНужногоТипа2. Если требуется сравнить со значением не составного типа:
Выбрать
Значение(Перечисление.Пол.ПустаяСсылка)<>Значение(Перечисление.Пол.Мужской) как ЭтоБулевоИстинаВыбрать
Выбор когда &ПустойПараметрНужногоТипа ИЛИ Значение(Перечисление.Пол.Мужской) Тогда Истина Иначе Ложь Конец как ЭтоНеЖенскийПол3. Если требуется проверка составного значения:
В этом случае значение
- может быть неопределенного типа (очищено или ни разу не выбрано)
- пустой ссылкой любого из типов (выбран тип, но не выбрано значение)
- выбранным значением любого из типов (выбрано значение)
В этом случае обычно первые два варианта считаются пустым значением, но пустыми ссылками являются только вторые.
//Мы инициализировали массив заполненных значений и сравнили его с пустым
Выбор когда ЗНАЧЕНИЕ(Значение(Перечисление.Пол.ПустаяСсылка) в (Значение(Перечисление.Пол.Мужской),Значение(Перечисление.Пол.Женский)) ИЛИ Есть NULL Тогда Истина Иначе Ложь конец ЗначениеПустое
//Мы инициализировали массив пустых ссылок и проверили вхождение в него нашего «неизвестного» значения
Выбор когда ЗНАЧЕНИЕ(Значение(Перечисление.Пол.Мужской) в (Значение(Перечисление.Пол.ПустаяСсылка),Значение(Справочник.Контрагенты.ПустаяСсылка)) Тогда Истина Иначе Ложь конец ЗначениеПустое
Также мы можем передать массив параметром
Выбрать Выбор когда ЗНАЧЕНИЕ(Значение(Перечисление.Пол.ПустаяСсылка) в (&МассивВсехПустыхСсылок) Тогда Истина Иначе Ложь конец ЗначениеПустое
Как получить значение ЛюбаяСсылка?
Еще про перечисление в запросе 1С.
Клиент получает ту рекламу, которую он заслуживает!
— Дэвид Огилви
Пустая ссылка, дата или строка в запросе 1С 8.3 и 8.2
В этой статье будут рассмотрены способы проверки на пустое значение в зависимости от типа проверяемого реквизита в запросе 1С 8.3, в том числе пустой ссылки.

Проверка на NULL
Значение NULL возвращается в том случае, когда реквизита попросту нет. Тип в этом случае будет тоже NULL. Например, вы объединяете две таблицы через левое соединение. В том случае, когда для левой таблицы не будет найдено ни одного значения в правой, вернется NULL.
Проверку на данное значение можно осуществить при помощи конструкции «ЕСТЬ NULL» и «ЕСТЬNULL()». В первом случае возвращается Истина или Ложь. Во втором случае можно сразу задать другое значение в том случае, когда возвращается NULL.
В приведенном ниже запросе 1С 8.3 будут возвращен список контактных лиц тех партнеров, у кого не задан сегмент.
ВЫБРАТЬ
КонтактныеЛицаПартнеров.Ссылка
ИЗ
Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СегментыПартнеров КАК СегментыПартнеров
ПО КонтактныеЛицаПартнеров.Владелец = СегментыПартнеров.Родитель
ГДЕ
СегментыПартнеров.Ссылка ЕСТЬ NULLПустая дата
Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по ссылке.
Будем рады помочь Вам!Проверка значения на пустую дату производится путем сравнения с конструкцией ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0). Пример использования приведен ниже:
ВЫБРАТЬ
Встреча.Ссылка
ИЗ
Документ.Встреча КАК Встреча
ГДЕ
Встреча.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)Пустая ссылка в запросе 1С
В случае, когда возвращаемый реквизит имеет ссылочный тип, например, это элемент какого-либо справочника, документа и т. п., используется следующая конструкция: ЗНАЧЕНИЕ(Справочник.ИмяСправочника.ПустаяСсылка).
В приведенном ниже примере запрос выбирает всех партнеров, у которых не указан бизнес-регион.
ВЫБРАТЬ
Партнеры.Ссылка
ИЗ
Справочник.Партнеры КАК Партнеры
ГДЕ
Партнеры.БизнесРегион = ЗНАЧЕНИЕ(Справочник.БизнесРегионы.ПустаяСсылка)Чтобы проверить на «ЗначениеЗаполнено» нужно сделать обратное условие:
Пустая строка
Для проверки строковых типов производится сравнение с другим образцом. В данном случае – «».
Получите понятные самоучители по 1С бесплатно:
- Самоучитель по 1С Бухгалтерии 8.3;
- Самоучитель по 1С ЗУП 8.3.
Приведенный ниже запрос отберет всех партнеров с незаполненным наименованием.
ВЫБРАТЬ
Партнеры.Ссылка
ИЗ
Справочник.Партнеры КАК Партнеры
ГДЕ
Партнеры.Наименование = «»- ЕСТЬNULL в запросе 1С 8.3 (8.2)
- Остатки и обороты с регистраторами 1С
- Язык запросов 1С 8.3 и 8.2 — краткое руководство по всем конструкциям
- Проверка на NULL в запросе 1С 8
проверка на пустую строку в запросе
«Если в тексте запроса надо сделать проверку на пустое значение ссылочного типа, это делается так:
«ГДЕ Поле = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)»;
А если «Поле» — это строковый тип, как его проверить на пустую строку?»активный пользователь
Дата регистрации: 18.02.2002
Сообщений: 20937
24.01.2014 12:23> А если «Поле» — это строковый тип, как его проверить на пустую строку?
ГДЕ Поле = """"
читатель
Дата регистрации: 22.04.2008
Сообщений: 111
24.01.2014 15:46Спасибо. Все гениальное — просто))
Показывать по 10 20 40 сообщений
Читают тему:
Мероприятия
© ООО «1С-Паблишинг» (материалы)
При использовании материалов активная прямая гиперссылка на перепечатанный материал обязательна.
Редакция БУХ.1С не несет ответственности за мнения и информацию, опубликованную в комментариях к материалам.
Редакция уважает мнение авторов, но не всегда разделяет его.
Дизайн сайта
© ООО «1C» 2000-2024 г.
Мы используем файлы cookie, чтобы анализировать трафик, подбирать для вас подходящий контент и рекламу, а также дать вам возможность делиться информацией в социальных сетях. Если вы продолжите использовать сайт, мы будем считать, что вас это устраивает.
Как в запросе проверить на пустую ссылку
Реквизит документа «Реализация» «Проект». Составной тип. 2 справочника.
Как в запросе выбрать «Реализации, у которых «Проект» пустой ?
вроде так сработать должно Проект=Неопределено, проверь
Возможно 3 варианта:
1) неопределено
2) пустое значение первого типа
3) пустое значение второго типаЕсли тип реквизита «справочник» двух типов, то можно так:
ГДЕ Реализация.Проект.Код ЕСТЬ NULLВЫБРАТЬ
БанковскиеСчета.Ссылка
ИЗ
Справочник.БанковскиеСчета КАК БанковскиеСчета
ГДЕ
(ВЫРАЗИТЬ(БанковскиеСчета.Владелец КАК Справочник.Контрагенты)) = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
И (ВЫРАЗИТЬ(БанковскиеСчета.Владелец КАК Справочник.Организации)) = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)