- •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. Запросы к регистрам накопления
- •Основная таблица регистра накопления
- •Сводные таблицы
Упорядочивание по иерархии
Для иерархических справочников можно упорядочить элементы с учетом иерархии. Если мы имеем дело со справочником товаров, то вряд ли будет наглядным отчет, в котором клавиатуры чередуются с мониторами. Каждый вид товара должен быть упорядочен в пределах своей группы.
Это достигается с помощью ключевого слова ИЕРАРХИЯ, которое используется в следующем запросе:
ВЫБРАТЬ Ссылка КАК Товар
ИЗ Справочник.Номенклатура
УПОРЯДОЧИТЬ ПО Наименование ИЕРАРХИЯ
Товар |
Клавиатуры |
Клавиатура Apple Pro Keyboards |
Клавиатура Keyboard PS/2 |
Клавиатура Linkworld LK-601 PS/2 |
Клавиатура LK-601 KB-2000 PS/2 |
Мониторы |
Монитор 15" LG Studioworks 575N |
Монитор 17" Philips 107S20 |
Монитор 19" Hitachi CM715ET |
Монитор LCD 22" M8537ZM/A |
Будьте внимательны, когда составляете подобный запрос не к справочнику, а к документу или регистру, в котором есть реквизит, выбираемый из иерархического справочника. В этом случае иерархического упорядочивания не происходит.
Следующий запрос это демонстрирует:
ВЫБРАТЬ Номенклатура КАК Товар
ИЗ Документ.РасходнаяНакладная.Состав
УПОРЯДОЧИТЬ ПО Номенклатура.Наименование ИЕРАРХИЯ
Для нужного эффекта необходимо организовать левое внешнее соединение со справочником, как сделано в этом запросе:
ВЫБРАТЬ Спр.Ссылка Товар, ДокСостав.Ссылка Документ
ИЗ Справочник.Номенклатура КАК Спр
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.Состав КАК ДокСостав
ПО ДокСостав.Номенклатура = Спр.Ссылка
УПОРЯДОЧИТЬ ПО Спр.Наименование ИЕРАРХИЯ
Товар |
Документ |
Клавиатуры |
|
Клавиатура LK-601 КВ-2000 PS/2 |
Расходная накладная 00032 от 25.07.2002 12:00:00 |
Клавиатура LK-601 KB-2000 PS/2 |
Расходная накладная 00011 от 10.05.2002 12:00:00 |
Клавиатура LK-601 KB-2000 PS/2 |
Расходная накладная 00020 от 02.08.2002 10:44:45 |
Мониторы |
|
Монитор 15" LG Studio-works 575N |
Расходная накладная 00019 от 06.06.2002 12:00:00 |
Монитор 15" LG Studio-works 575N |
Расходная накладная 00006 от 15.02.2002 12:00:00 |
Монитор 15" LG Studio-works 575N |
Расходная накладная 00018 от 15.06.2002 12:00:00 |
Упорядочивание во вложенных таблицах
В предложении УПОРЯДОЧИТЬ ПО можно определять также и условия сортировки записей из вложенных таблиц, причем их можно комбинировать с условиями упорядочивания по таблице верхнего уровня.
Например, необходимо вывести спецификацию товарных накладных, показать сам документ, номенклатуру и количество. Документы требуется упорядочить по номеру, а данные из табличной части Состав - по наименованию товара.
Это делается с помощью следующего запроса:
ВЫБРАТЬ НаклСостав.Ссылка.Номер,
Номенклатура, Количество
ИЗ Документ.РасходнаяНакладная.Состав КАК НаклСостав
УПОРЯДОЧИТЬ ПО НаклСостав.Ссылка.Номер,
НаклСостав.Номенклатура.Наименование
Номер |
Номенклатура |
Количество |
00001 |
Мышь LOGITECH M-S48 PS/2 |
10 |
00001 |
Мышь ОК-720 Mouse A4Tech PS/2 |
2 |
00002 |
1C: Аспект 7.7 |
1 |
00003 |
Windows XP Home Edition |
1 |
00003 |
Доставка |
13 |
00003 |
Инсталляция ПО |
2 |
