- •8.1. Назначение. Основные объекты , предназначенные для организации запросов
- •Выполнение запроса
- •8.2. Язык запросов
- •Поля из вложенных таблиц
- •Псевдонимы источников как/as
- •Запросы к табличным частям
- •Вложенные запросы в списке источников
- •Конструкция соединение...По/join...On
- •Левое внешнее соединение
- •Правое внешнее соединение
- •Полное внешнее соединение
- •Логические операторы и, или, не
- •Параметры в языке запросов
- •Проверка вхождения значения в список (в/in)
- •Проверка ссылочного значения (ссылка/ref)
- •Проверка пустых значений (есть null / is null)
- •Сравнение строк (подобно / like)
- •Упорядочивание по иерархии
- •Упорядочивание во вложенных таблицах
- •Автоупорядочивание /autoorder
- •Агрегатные функции в запросе
- •Общие итоги
- •Итоги по группировкам
- •Итоги по иерархии
- •Несколько итогов в запросе
- •Встроенные функции языка запросов
- •Операции выбора в языке запросов (выбор / case)
- •Приведение типов в языке запросов
- •Литералы и параметры в языке запросов
- •8.4. Обработка результата запроса
- •8.5. Выборка из результата запроса
- •Линейный обход
- •Иерархический обход
- •Обход по группировкам
- •Другие полезные методы
- •8.6. Выгрузка результата запроса
- •8.7. Запросы к регистрам сведений
- •Основная таблица регистра сведений
- •8.8. Запросы к регистрам накопления
- •Основная таблица регистра накопления
- •Сводные таблицы
Проверка ссылочного значения (ссылка/ref)
Оператор ССЫЛКА позволяет проверить, является ли значение выражения ссылкой на таблицу, указанную справа от него. Этот оператор полезен для полей, имеющих составной тип данных.
Следующий запрос выбирает товары, для которых единица измерения ссылается на справочник ЕдиницыИзмерения, а не является, например, строкой.
ВЫБРАТЬ Наименование, ЕдиницаИзмерения
ИЗ Справочник. Номенклатура
ГДЕ ЕдиницаИзмерения ССЫЛКА Справочник. ЕдиницыИзмерения
Проверка пустых значений (есть null / is null)
Оператор ЕСТЬ NULL позволяет проверить значение заданного выражения на NULL.
Замечание. NULL-значения не являются нулем (0), пустой строкой («») или пробелом (« »). NULL-значения - это неуказанные, отсутствующие или неизвестные значения.
Если проверяемое значение равно NULL, то результатом оператора будет Истина, иначе - Ложь. Применение логического оператора НЕ изменяет действие оператора на обратное. Любая операция обычного сравнения (=, >, <= и т.д.) значения NULL с чем-либо еще дает результат, аналогичный Ложь.
Следующий запрос выбирает из справочника Номенклатура все товары, для которых строковое поле СтранаПроисхождения имеет NULL-значение:
ВЫБРАТЬ Наименование, СтранаПроисхождения КАК Страна
ИЗ Справочник,Номенклатура
ГДЕ СтранаПроисхождения ЕСТЬ NULL
Наименование |
Страна |
Программное обеспечение |
|
Услуги |
|
Клавиатуры |
|
Принтеры |
|
Мониторы |
|
Обратите внимание, что в результате запроса присутствуют только группы справочника, так как для них поле Страна имеет NULL-значение (вообще не указывается). В результат запроса не попали товары, у которых строковое поле СтранаПроисхождения имеет значение «» (пустая строка). Как уже было сказано выше, ни ноль, ни пустая строка, ни пробел не являются NULL-значением.
Чтобы выбрать товары, у которых не указана страна (строковое поле), нужно применить обычное сравнение на пустую строку:
ВЫБРАТЬ Наименование, СтранаПроисхождения КАК Страна
ИЗ Справочник.Номенклатура
ГДЕ СтранаПроисхождения = " "
Наименование |
Страна |
Доставка |
|
Инсталляция ПО |
|
Консультации по настройке ОС Windows |
|
Монитор 15" LG Studioworks 575N |
|
Если стоит задача выбрать элементы с неуказанным реквизитом, имеющим ссылочный тип, тогда следует поступать по-другому. Например, требуется выбрать все товары с незаполненным полем ОсновнойПоставщик, которое является ссылкой на справочник Контрагенты.
Предлагается следующая схема для решения этой задачи:
Запрос = Новый Запрос("
| ВЫБРАТЬ Наименование, ОсновнойПоставщик
| ИЗ Справочник.Номенклатура
| ГДЕ ОсновнойПоставщик = ПустойКонтрагент ");
Запрос.УстановитьПараметр("ПустойКонтрагент",
Справочники.Контрагенты.ПустаяСсылка());
Результат = Запрос.Вылолнить();
В условии запроса используется параметр ПустойКонтрагент. Этот параметр до выполнения запроса получает значение пустой ссылки на справочник Контрагенты. Для этого используется метод ПустаяСсылка объекта СправочникМенеджер.
Результат приведенного выше запроса будет следующий:
Наименование |
ОсновнойПоставщик |
Монитор 19" Hitachi CM715ET |
|
Монитор LCD 22" M8537ZM/A |
|
Мышь GENIUS «EASY» (3 кнопки), |
|
Мышь Ice Mouse MUS-2 |
|
Мышь LOGITECH M-S48 PS/2 |
|
