Часто результат запроса требуется отсортировать по алфавиту или по числовому полю. В общем случае в качестве значения упорядочивания может быть выражение.
Например, представим список товаров, упорядоченный по алфавиту. При сортировке сначала идут товары, начинающиеся на цифры, затем на английские буквы, а затем на русские буквы:
ВЫБРАТЬ Код, Наименование ИЗ Справочник.Номенклатура
УПОРЯДОЧИТЬ ПО Наименование ВОЗР
Сортировка часто применяется с ключевым словом ПЕРВЫЕ. Например, следующий запрос сортирует товары по убыванию цены и показывает 5 самых дорогих товаров:
ВЫБРАТЬ ПЕРВЫЕ 5 Код, Наименование, ЗакупочнаяЦена КАК Цена
ИЗ Справочник.Номенклатура
УПОРЯДОЧИТЬ ПО Цена УБЫВ
Результат запроса показан в таблице:
Для иерархических справочников можно упорядочить элементы с учетом иерархии. Если мы имеем дело со справочником товаров, то вряд ли будет наглядным отчет, в котором клавиатуры чередуются с мониторами. Каждый вид товара должен быть упорядочен в пределах своей группы.
Это достигается с помощью ключевого слова ИЕРАРХИЯ, которое используется в следующем запросе:
ВЫБРАТЬ Ссылка КАК Товар
ИЗ Справочник.Номенклатура
УПОРЯДОЧИТЬ ПО Наименование ИЕРАРХИЯ
Будьте внимательны, когда составляете подобный запрос не к справочнику, а к документу или регистру, в котором есть реквизит, выбираемый из иерархического справочника. В этом случае иерархического упорядочивания не происходит.
Следующий запрос это демонстрирует:
ВЫБРАТЬ Номенклатура КАК Товар
ИЗ Документ.РасходнаяНакладная.Состав
УПОРЯДОЧИТЬ ПО Номенклатура.Наименование ИЕРАРХИЯ
Для нужного эффекта необходимо организовать левое внешнее соединение со справочником, как сделано в этом запросе:
ВЫБРАТЬ Спр.Ссылка Товар, ДокСостав-Ссылка Документ
ИЗ Справочник.Номенклатура КАК Спр
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.Состав КАК ДокСостав
ПО ДокСостав.Номенклатура = Спр.Ссылка
УПОРЯДОЧИТЬ ПО Спр.Наименование ИЕРАРХИЯ
В предложении УПОРЯДОЧИТЬ ПО можно определять также и условия сортировки записей из вложенных таблиц, причем их можно комбинировать с условиями упорядочивания по таблице верхнего уровня.
Например, необходимо вывести спецификацию товарных накладных, показать сам документ, номенклатуру и количество. Документы требуется упорядочить по номеру, а данные из табличной части Состав — по наименованию товара.
Это делается с помощью следующего запроса:
ВЫБРАТЬ НаклСостав.Ссылка.Номер,
Номенклатура, Количество
ИЗ Документ.РасходнаяНакладная.Состав КАК НаклСостав
УПОРЯДОЧИТЬ ПО НаклСостав.Ссылка.Номер,
НаклСостав.Номенклатура.Наименование
Ключевое слово АВТОУПОРЯДОЧИВАНИЕ позволяет включить режим автоматического формирования полей для упорядочивания результата запроса. Оно часто используется при построении отчетов.
Автоупорядочивание работает по следующим правилам:
• Если в запросе было указано предложение УПОРЯДОЧИТЬ ПО, то каждая ссылка на таблицу, находящаяся в этом
предложении, будет заменена полями, по которым по умолчанию сортируется таблица (для справочников это код или
наименование, для документов — дата документа). Если поле для упорядочивания
ссылается на иерархический справочник, то будет
применена иерархическая сортировка по этому справочнику.
• Если в запросе отсутствует предложение УПОРЯДОЧИТЬ ПО, но есть предложение ИТОГИ, тогда результат запроса будет упорядочен по полям, присутствующим в предложении ИТОГИ после ключевого слова ПО, в той же
последовательности и в случае, если итоги рассчитывались по ссылочным полям,
то по полям сортировки по умолчанию таблиц, на которые были ссылки.
• Если в запросе отсутствуют предложения УПОРЯДОЧИТЬ ПО и ИТОГИ, но есть предложение СГРУППИРОВАТЬ ПО, тогда результат запроса будет упорядочен по полям,
присутствующим в предложении, в той же последовательности и в случае если группировка велась по ссылочным полям, то по
полям сортировки по умолчанию таблиц, на которые
были ссылки.
• И наконец, если в запросе отсутствуют предложения УПОРЯДОЧИТЬ ПО, ИТОГИ и СГРУППИРОВАТЬ ПО, результат будет упорядочен по полям сортировки по умолчанию для таблиц, из которых выбираются данные, в порядке их появления в запросе.