Как настроить группировки по месяцам и сотрудникам в кросс-таблице СКД

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

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

Проектирование структуры отчета: создание таблицы

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

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

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

Настройка ресурсов внутри колонок

Чтобы под каждым месяцем выводились показатели «План» и «Факт», выполним следующие действия:

Перейдем на вкладку Выбранные поля. Здесь важно понимать иерархию. Если мы добавим поля План и Факт в общие выбранные поля отчета, они будут применяться ко всей таблице. Чтобы сгруппировать их визуально, мы можем создать группу выбранных полей (нажать Shift+F9 или кнопку с плюсиком «Добавить группу»).

В настройках группы укажем тип — Группа колонок. В эту группу перетащим наши ресурсы. Теперь в шапке отчета над показателями «План» и «Факт» появится дополнительный объединяющий заголовок, если это необходимо. Если же нам нужно, чтобы эти поля просто повторялись под каждым месяцем, достаточно убедиться, что они выбраны на уровне всей таблицы или конкретной группировки колонок.

Устранение дублей и «странных» группировок

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

Для корректного отображения рекомендуется:

  1. Создать группировку по полям Сотрудник и Должность совместно.
  2. Если нужно, чтобы должность не создавала лишнюю иерархию (дерево), в настройках группировки на вкладке Дополнительные настройки установим параметр Расположение реквизитов в значение Вместе с группировкой или Отдельно.
  3. Проверим роли полей на закладке Набор данных. У поля месяца должна стоять роль Период с соответствующим типом. Это критически важно для правильного сопоставления данных в кросс-таблице.

Оформление шапки и ячеек: центрирование и шрифты

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

Разберем по шагам настройку оформления для заголовков:

  1. Перейдем на закладку Условное оформление в настройках отчета.
  2. Добавим новый элемент оформления.
  3. В области Оформление установим параметры:
    • Шрифт: установим галочку «Жирный».
    • Горизонтальное положение: Центр.
    • Границы: Сплошная линия для всех сторон.
  4. В области Условие мы можем ничего не указывать, если хотим оформить все данные, либо задать специфическое условие.
  5. В области Оформляемые поля выберем те поля, заголовки которых нужно украсить.

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

Хитрости сортировки месяцев

Часто возникает проблема, когда месяцы в колонках сортируются по алфавиту («Август», «Апрель»...), а не хронологически. Проанализируем, как это исправить. В настройках поля ПериодМесяц (на закладке «Наборы данных») найдем колонку Выражение упорядочивания. Укажем там само поле периода (дату), а в поле Выражение представления можно прописать форматную строку для красивого отображения названия месяца:

Формат(ПериодМесяц, "ДФ='ММММ гггг'")

Таким образом, СКД будет использовать дату для сортировки, но пользователь увидит понятное название «Январь 2024».

Работа с ресурсами и пустыми значениями

При создании кросс-таблиц часто появляются пустые ячейки (NULL), если по конкретному сотруднику в конкретном месяце не было движений. Чтобы отчет выглядел аккуратно, рекомендуется использовать функцию ЕСТЬNULL в выражениях ресурсов на закладке Ресурсы:


Сумма(ЕСТЬNULL(План, 0))
Сумма(ЕСТЬNULL(Факт, 0))

Это обеспечит вывод нулей вместо пустоты, что делает таблицу более читаемой и законченной. Также не забудьте настроить Минимальную ширину колонок в условном оформлении, чтобы колонки «План» и «Факт» имели одинаковую ширину во всех месяцах, создавая ровную сетку отчета.

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

← На главную