Обновлено: 17.01.2008

Упорядочивание в системе компоновки данных

Так как в отчет может выводиться множество группировок и таблиц, упорядочивание в системе компоновки данных осуществляется средствами самой системы компоновки данных, а не средствами языка запросов.

Упорядочивание группировок

Каждая группировка, выводимая в отчет, имеет собственное упорядочивание. Это относится как к простым группировкам, так и к группировкам таблиц и диаграмм.
По умолчанию, группировка содержит только поле автоупорядочивания, которое при исполнении отчета разворачивается следующим образом: из глобального упорядочивания, ресурсы будут добавлены безусловно, а из полей не ресурсов, - в порядок будут добавлены поля, являющиеся реквизитами полей группировок и сами поля группировки (для детальных записей будут занесены все поля). Поля группировки, которые не были указаны в глобальном упорядочивании, попадут в конец порядка. Если поле уже включено в порядок, повторно оно не добавляется.

Таким образом, если не изменять порядок, то каждая группировка будет упорядочена по полям группировки.

Пример

В отчете есть группировка по полю - Номенклатура и не указан порядок.
В таком случае упорядочивание группировки будет осуществляться по полю Номенклатура. Особенности упорядочивания полей описаны ниже.

Пример

В отчете есть группировка по полю - Номенклатура и в глобальном упорядочивании указано поле Номенклатура.Код
В таком случае упорядочивание группировки будет осуществляться по полю Номенклатура.Код, после чего по полю Номенклатура.

Упорядочивание полей

Для упорядочивания ссылочных полей система компоновки получает поля, по которым следует упорядочивать таблицу, на которую осуществляется ссылка, и использует вместо упорядочивания по самому полю упорядочивание по полученным полям.

Пример:
Нужно упорядочить по полю Номенклатура, которое является ссылкой на справочник Номенклатура, который, в свою очередь, является иерархическим справочником, с основным представлением в виде наименования.
В таком случае система компоновки будет получать поля ЭтоГруппа, Наименование, Ссылка для значения ссылки и упорядочивать по этим полям. При этом поле Ссылка уже будет сравниваться в соответствии с правилами сравнения ссылок.

Если в схеме компоновки для поля указаны выражения упорядочивания, то для упорядочивания по этому полю будут использоваться результаты указанных выражений. В каждом выражении упорядочивания есть следующие свойства:

  1. Выражение - текст выражения на языке выражений системы компоновки данных
  2. Тип упорядочивания - по возрастанию или по убыванию нужно сортировать
  3. Необходимость автоупорядочивания - флаг, указывающий, что нужно делать со ссылочными значениями. Если данный флаг установлен в значение истина, то для упорядочивания ссылочных полей, полученных в результате вычисления выражения, будут использоваться поля, по которым следует упорядочивать таблицу, на которую осуществляется ссылка. В противном случае ссылки будут упорядочиваться в соответствии с правилами сравнения ссылочных значений компоновки данных, описанных в документации.

Пример

В отчете следует номенклатуру упорядочивать по полю Артикул.
Для решения такой задачи следует в выражение упорядочивания поля Номенклатура добавить выражение "Номенклатура.Артикул".

Пример

Требуется, чтобы поле Регистратор упорядочивалось в соответствии с правилами сравнения ссылок, а не по полям упорядочивания документов.
Для решения такой задачи следует в выражение упорядочивания поля Регистратор добавить выражение Регистратор, при этом, не устанавливая флаг Необходимость автоупорядочивания. В таком случае, система компоновки данных не будет получать поля упорядочивания из документов, а будет просто сравнивать ссылочные значения.