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

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

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

Шаг 1. Подготовка запроса в наборе данных

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


ВЫБРАТЬ
    Журнал9.Ссылка КАК Ссылка,
    Журнал9.Ответственный КАК Ответственный,
    Журнал9.Дата КАК Дата,
    НАЧАЛОПЕРИОДА(Журнал9.Дата, МЕСЯЦ) КАК Месяц
ИЗ
    Документ.Журнал9 КАК Журнал9
ГДЕ
    Журнал9.Дата МЕЖДУ &НачалоПериода И &КонецПериода

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

Шаг 2. Настройка вычисляемых полей и ресурсов

Теперь выясним, как заставить СКД считать количество документов. Просто вывести поле Ссылка недостаточно, нам нужно превратить его в числовой итог. Разберем два способа реализации этой задачи.

Способ 1: Через вычисляемое поле (для наглядности)

  1. Переходим на закладку Вычисляемые поля в СКД.
  2. Добавляем новую строку. В колонке Путь к данным указываем КоличествоДокументов.
  3. В колонке Выражение пишем просто цифру 1.
  4. Затем на закладке Ресурсы переносим это поле в правую часть и в выражении указываем Сумма(КоличествоДокументов).

Способ 2: Профессиональный (через агрегатные функции)

Этот способ более оптимален, так как не загромождает список полей. Мы сразу переходим на закладку Ресурсы и выбираем наше поле Ссылка. В поле Выражение прописываем следующую функцию:

Количество(Различные Ссылка)

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

Шаг 3. Группировка данных и структура отчета

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

  1. Перейдем на закладку Настройки.
  2. В иерархии настроек добавим группировку по полю Ответственный.
  3. Внутри этой группировки (как вложенную) добавим группировку по полю Месяц.
  4. В Выбранных полях укажем Ответственный, Месяц и наш ресурс (количество документов).

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

Шаг 4. Форматирование представления дат

Поскольку наше поле Месяц является датой (первое число месяца), по умолчанию 1С выведет его в формате "01.10.2023 00:00:00". Чтобы отчет выглядел профессионально, настроим формат представления:

  1. На закладке Наборы данных найдем поле Месяц.
  2. В колонке Оформление нажмем на кнопку выбора.
  3. В поле Формат введем строку: ДФ='MMMM yyyy'.

Теперь вместо точной даты пользователь увидит красивое название: "Октябрь 2023".

Шаг 5. Создание кросс-таблицы (отчет по столбцам)

Если задача стоит вывести месяцы в колонки (как в шахматке), проанализируем использование структуры Таблица. Это один из самых мощных инструментов СКД:

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

Дополнительные рекомендации по оптимизации

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

  1. В настройках группировки по полю Месяц перейдите на вкладку Дополнительные настройки (или выберите свойства поля в настройках).
  2. Установите Тип дополнения — Месяц.
  3. Укажите Начало периода и Конец периода (используйте параметры &НачалоПериода и &КонецПериода).

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

Таким образом, мы проанализировали полный цикл создания аналитического отчета: от формирования правильного запроса с типизацией периодов до настройки сложных визуальных структур типа "Таблица". Использование встроенных функций СКД для подсчета и форматирования позволяет избежать написания лишнего кода и делает отчет гибким для дальнейших изменений пользователем.

← На главную