К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как упорядочить данные в отчете 1С

Как упорядочить данные в отчете 1С: сортировка по возрастанию и убыванию, группировка, настройки СКД, упорядочивание в запросах. Пошаговые инструкции и типичные ошибки.

Упорядочивание данных — базовая операция при работе с отчетами 1С: без нее даже корректные цифры сложно читать и анализировать. В типовых конфигурациях (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом, ERP) большинство отчетов построено на системе компоновки данных (СКД), поэтому механизм сортировки и группировки в них устроен одинаково. Освоив один отчет, вы сможете настраивать порядок данных в любом другом.

Различают три способа привести данные в порядок: быстрая сортировка готовой таблицы отчета, настройка порядка в параметрах отчета перед формированием и упорядочивание на уровне запроса — для разработчиков и тех, кто дорабатывает отчеты. Каждый способ решает свою задачу: первый подходит для разового просмотра, второй — для постоянной работы, третий — когда нужен порядок, недоступный штатными средствами.

Ниже разобраны все три подхода с конкретными действиями, ограничениями и способами проверки результата, а также частые ошибки, из-за которых сортировка «не работает» или работает не так, как ожидалось.

Как быстро отсортировать уже сформированный отчет

Если отчет уже сформирован и нужно просто посмотреть данные в другом порядке, используйте встроенную сортировку табличного документа. Установите курсор в колонку, по которой нужно упорядочить данные, затем в меню «Еще» командной панели отчета выберите команду «Сортировать по возрастанию» или «Сортировать по убыванию». В ряде конфигураций те же команды доступны по нажатию на заголовок колонки.

Этот способ не меняет настройки самого отчета — он лишь переупорядочивает строки в текущем табличном документе. После следующего формирования отчет вернется к исходному порядку. Поэтому для регулярной работы лучше настраивать сортировку в параметрах отчета, а не полагаться на разовую сортировку результата.

Учтите ограничение: быстрая сортировка табличного документа корректно работает с плоскими таблицами. Если в отчете есть группировки, итоги или иерархия, переупорядочивание строк может визуально «разорвать» структуру — строки детализации оторвутся от своих групп. В таких случаях сортировку нужно задавать в настройках отчета.

Настройка сортировки в параметрах отчета

Основной способ упорядочить данные — вкладка «Сортировка» в настройках отчета. Откройте отчет, нажмите кнопку «Настройки» (или «Показать настройки»), перейдите на вкладку «Сортировка» и добавьте нужные поля из списка доступных. Для каждого поля укажите направление: по возрастанию или по убыванию.

Порядок полей в списке определяет приоритет сортировки: сначала данные упорядочиваются по первому полю, при равенстве значений — по второму и так далее. Например, для отчета по продажам логично сначала отсортировать по менеджеру (по возрастанию), а внутри каждого менеджера — по сумме продаж (по убыванию), чтобы видеть лучших клиентов сверху.

Порядок настройки сортировки
  1. 1
    Откройте отчет и нажмите «Настройки» (или «Показать настройки»).
  2. 2
    Перейдите на вкладку «Сортировка».
  3. 3
    Добавьте поле из списка доступных полей двойным щелчком или кнопкой.
  4. 4
    Укажите направление — по возрастанию или по убыванию.
  5. 5
    Расставьте поля в нужном приоритете кнопками перемещения вверх и вниз.
  6. 6
    Нажмите «Закрыть и сформировать» и проверьте результат.

Если нужного поля нет в списке доступных, проверьте, добавлено ли оно в выбранные поля отчета или в ресурсы. В типовых отчетах на СКД сортировать можно только по полям, которые присутствуют в схеме компоновки. Расширить состав полей можно через расширенные настройки или доработку отчета.

Группировка как способ структурировать данные

Когда данных много, одной сортировки недостаточно — нужна группировка. На вкладке «Структура» (или «Группировка») настроек отчета добавьте поле группировки, например «Контрагент» или «Номенклатурная группа». Отчет превратится в дерево: сначала идут группы с промежуточными итогами, внутри них — детальные строки.

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

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

Упорядочивание в запросе для разработчиков

Если вы дорабатываете отчет в конфигураторе или пишете собственный, порядок данных задается в тексте запроса конструкцией УПОРЯДОЧИТЬ ПО. Она размещается в конце запроса и принимает список полей с направлением сортировки: ВОЗР для возрастания, УБЫВ для убывания.

ВЫБРАТЬ

Продажи.Номенклатура КАК Номенклатура,

СУММА(Продажи.СуммаОборот) КАК Сумма

ИЗ

РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи

СГРУППИРОВАТЬ ПО

Продажи.Номенклатура

УПОРЯДОЧИТЬ ПО

Сумма УБЫВ

Для иерархических данных используйте итоги с конструкцией ИТОГИ ПО и упорядочивание с ключевым словом ИЕРАРХИЯ, чтобы строки подчинения следовали за родителем. Учтите: если отчет построен на СКД, явное УПОРЯДОЧИТЬ ПО в запросе имеет смысл только как порядок по умолчанию — пользовательские настройки сортировки в режиме предприятия переопределят его, поскольку СКД формирует итоговый запрос динамически.

При упорядочивании по полям ссылочного типа помните: сортировка идет по внутреннему представлению ссылки, а не по наименованию. Если нужен алфавитный порядок по названию, добавьте в запрос соединение с таблицей справочника и упорядочивайте по полю Наименование, либо используйте в СКД выражение упорядочивания по представлению.

bsl
УПОРЯДОЧИТЬ ПО
	Номенклатура.Наименование ВОЗР,
	Сумма УБЫВ

Сохранение настроек и типичные ошибки

Настроенную сортировку и группировку не нужно вводить заново при каждом запуске. В типовых отчетах используйте команду «Сохранить вариант отчета» (или «Сохранить настройки») — при следующем открытии выберите сохраненный вариант из списка. Это особенно полезно, когда для одного отчета нужны разные представления: например, «по менеджерам» и «по регионам».

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

Типичные ошибки
01
Сортировка разового табличного документа вместо настроек отчета — порядок теряется при следующем формировании.
02
Сортировка по строковому полю с числами: «10» идет раньше «2», потому что сравнение идет посимвольно; приведите тип к числу.
03
Несколько группировок без явного приоритета сортировки — вложенные уровни наследуют не тот порядок.
04
Забытый автоупорядочивание в запросе динамического списка — данные «прыгают» при обновлении.
05
Сортировка по ссылочному полю вместо наименования — справочник выглядит неупорядоченным по алфавиту.

Отдельная ситуация — динамические списки (журналы документов, списки справочников). Там порядок задается кнопкой «Настроить список» в меню «Еще». Если в списке включено автоупорядочивание, пользовательская сортировка может конфликтовать с ним; в доработанных списках проверяйте свойство «Автоупорядочивание» и состав полей упорядочивания в запросе списка.

Проверка результата и когда нужна помощь специалиста

После настройки убедитесь, что порядок действительно соответствует задуманному. Проверьте первые и последние строки отчета, границы групп и случаи с одинаковыми значениями поля сортировки — именно там ошибки заметнее всего.

Контрольные точки

Как проверить результат

Первая и последняя строки
Норма

В первой строке минимальное (или максимальное) значение согласно направлению сортировки

Тревожный признак

Порядок перемешан или инвертирован относительно ожидания

Одинаковые значения поля сортировки
Норма

Строки упорядочены по второму полю из настроек

Тревожный признак

Строки с равными значениями идут в произвольном порядке

Группировки и итоги
Норма

Строки детализации остаются внутри своих групп, итоги корректны

Тревожный признак

Строки «вырваны» из групп, итоги визуально оторваны от данных

Повторное формирование
Норма

После перезапуска отчет сохраняет заданный порядок

Тревожный признак

Порядок сбрасывается — настройки не сохранены как вариант

Самостоятельная настройка безопасна: сортировка и группировка не изменяют данные в базе, а влияют только на представление отчета. Однако обратитесь к специалисту по 1С, если требуется сортировка по вычисляемому показателю, которого нет в списке полей, если нужно упорядочить данные по значениям из связанных таблиц или если отчет после доработки формируется заметно дольше — это признак неоптимального запроса, который лучше переписать.

Итог

Что важно запомнить

Для разового просмотра сортируйте готовую таблицу через «Еще — Сортировать», для постоянной работы задавайте порядок на вкладке «Сортировка» настроек отчета и сохраняйте его как вариант. Группировку добавляйте на вкладке «Структура», помня, что сортировка применяется внутри каждого уровня. Нестандартный порядок реализуйте в запросе через УПОРЯДОЧИТЬ ПО, а сложные доработки проверяйте на копии базы.

Частые вопросы

Почему сортировка по колонке с суммами работает как по строкам?

Признак того, что поле имеет строковый тип: числа сравниваются посимвольно, поэтому «1000» оказывается раньше «200». Проверьте тип поля в настройках отчета или запросе и приведите его к числу — в СКД через выражение вычисляемого поля, в запросе через функцию ВЫРАЗИТЬ.

Можно ли отсортировать отчет по полю, которого нет в списке доступных?

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

Как сделать, чтобы настройки сортировки видели другие пользователи?

Сохраните настройки как вариант отчета и при сохранении укажите доступность «Для всех пользователей» (если у вас есть соответствующие права). Вариант появится в списке вариантов отчета у коллег; без права на общие варианты настройки останутся личными.

Почему после сортировки строки вырвались из групп и итоги «поплыли»?

Это результат сортировки сформированного табличного документа, а не настроек отчета: переупорядочиваются готовые строки без учета структуры. Отмените действие (Ctrl+Z) или сформируйте отчет заново, а порядок задайте на вкладке «Сортировка» в настройках — тогда структура групп сохранится.

Как упорядочить журнал документов не по дате, а по номеру?

В списке документов откройте «Еще — Настроить список», добавьте на закладке «Сортировка» поле «Номер» и укажите направление. Если номер строковый и содержит префиксы, сортировка будет посимвольной — учитывайте это при оценке результата.

Влияет ли сортировка на скорость формирования отчета?

Да, упорядочивание большого результата запроса требует дополнительных ресурсов сервера СУБД, особенно при сортировке по невычисляемым полям без подходящих индексов. Если отчет стал формироваться заметно медленнее после добавления сортировки, покажите запрос разработчику — вероятно, потребуется оптимизация.