Как создать отчет на СКД с подсчетом записей и сортировкой по количеству?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Разработка отчетов на Системе Компоновки Данных (СКД) часто ставит перед разработчиком нестандартные задачи. Одной из таких задач является подсчет общего количества вхождений записей в группировку и последующая сортировка по полученному результату. Давайте разберем по шагам, как реализовать такой функционал, чтобы отчет работал корректно и эффективно.

Подготовка запроса в СКД

Для того чтобы получить количество записей, необходимо правильно составить текст запроса. Самым надежным и универсальным способом в 1С является использование агрегатной функции СУММА(1). Этот метод позволяет подсчитать количество строк в выборке для каждой группировки без необходимости использования сложных конструкций с подсчетом уникальных значений.

Рассмотрим структуру запроса:


ВЫБРАТЬ
    ТВ_Передача КАК Передача,
    СУММА(1) КАК Количество
ИЗ
    РегистрСведений.ТВ_Программа КАК ТВ_Программа
СГРУППИРОВАТЬ ПО
    ТВ_Передача
УПОРЯДОЧИТЬ ПО
    Количество УБЫВ

Обратите внимание на использование псевдонима Количество. Именно этот псевдоним мы будем использовать для настройки отображения и сортировки в самой СКД. Если вы используете конструктор запросов, убедитесь, что поле ТВ_Передача выбрано для группировки, а СУММА(1) добавлена в список выбираемых полей.

Настройка СКД для корректного отображения

После написания текста запроса перейдем к настройкам компоновки. Чтобы отчет корректно выводил данные и поддерживал сортировку, выполним следующие действия:

  1. Перейдем на вкладку Настройки.
  2. В иерархии настроек выберем уровень Детальные записи или зададим нужную Группировку по полю ТВ_Передача.
  3. На внутренней вкладке Выбранные поля добавим поля Передача и Количество.
  4. На вкладке Сортировка добавим поле Количество и установим направление сортировки По убыванию.

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

Особенности работы с регистрами сведений

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

Добавление отчета на рабочий стол

Чтобы вывести готовый отчет на главный экран в режиме управляемых форм, выполните следующие шаги в конфигураторе:

  1. Создайте отчет в составе конфигурации.
  2. Нажмите правой кнопкой мыши на корень конфигурации и выберите Открыть рабочую область начальной страницы.
  3. Выберите ваш отчет из списка доступных форм.
  4. Если отчет не отображается, убедитесь, что у него создана форма (можно нажать «ОК» в конструкторе форм для автоматического создания) и что отчет включен в соответствующую подсистему, которая выводится в интерфейсе приложения.

Таким образом, мы решили задачу с помощью СУММА(1), обеспечили правильную сортировку через настройки СКД и интегрировали отчет в интерфейс программы. Этот подход является «золотым стандартом» для оперативных отчетов, которые не требуют сложной архитектурной переработки данных.

← На главную