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

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Промышленность, строительство и АПК
← На главную

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

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

Способ 1. Индивидуальная настройка выбранных полей в группировках колонок

Это наиболее «чистый» способ реализации в рамках одного объекта Таблица в настройках СКД. Основная идея заключается в том, чтобы не оставлять состав полей на уровне всего отчета, а жестко задать его для каждой ветки колонок.

Рассмотрим алгоритм действий:

  1. Перейдем на вкладку Настройки в схеме компоновки данных.
  2. В структуре отчета создадим Таблицу. В строках укажем группировку ДокументПроизводства, а вложенной — ТипНоменклатуры.
  3. В колонках таблицы добавим группировку по полю ТипНоменклатуры.
  4. Теперь самое важное: выделим группировку ТипНоменклатуры в колонках и перейдем на ее вкладку Выбранные поля (внизу).
  5. Снимем флажок Авто. Теперь эта группировка не будет наследоваться от общих настроек.
  6. Добавим вручную только те ресурсы, которые соответствуют данному типу. Однако, чтобы система понимала, какие ресурсы куда относить, нам нужно создать две подчиненные группировки колонок с отборами.

Проанализируем структуру колонок подробнее. Вместо одной группировки ТипНоменклатуры, создадим две:

Благодаря такому подходу, в итоговом документе колонки плана не будут отображаться в секции материалов, и наоборот.

Способ 2. Ресурсные выражения с условиями

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

Рассмотрим пример настройки ресурса Заказано:

Сумма(ВЫБОР КОГДА ТипНоменклатуры = &ТипПродукция ТОГДА Заказано ИНАЧЕ 0 КОНЕЦ)

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

Сумма(ВЫБОР КОГДА ТипНоменклатуры = &ТипМатериал ТОГДА Норматив ИНАЧЕ 0 КОНЕЦ)

После этого, используя Условное оформление, мы можем установить свойство Текст как пустую строку или прочерк для всех ячеек, где значение равно 0. Это позволит визуально очистить отчет от ненужных данных.

Настройка произвольной сортировки: Продукция выше Материалов

По умолчанию 1С сортирует текстовые поля по алфавиту. Слово «Материал» начинается на букву «М», а «Продукция» на «П», поэтому материалы всегда оказываются выше. Чтобы изменить этот порядок, используем Вычисляемые поля.

Выясним причину такого поведения и устраним ее:

  1. Перейдем на вкладку Вычисляемые поля.
  2. Добавим поле ПорядокТипа.
  3. В поле Выражение напишем код:
    
    ВЫБОР 
        КОГДА ТипНоменклатуры = "Продукция" ТОГДА 1 
        КОГДА ТипНоменклатуры = "Материал" ТОГДА 2 
        ИНАЧЕ 3 
    КОНЕЦ
    
  4. Теперь в настройках группировки ТипНоменклатуры перейдем на вкладку Сортировка.
  5. Удалим стандартную сортировку и добавим наше новое поле ПорядокТипа по возрастанию.

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

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

Чтобы кросс-таблица выглядела профессионально, воспользуемся еще парой приемов:

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

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

Проанализировав ситуацию, мы видим, что СКД предоставляет огромную гибкость в управлении пространством отчета. Главное — помнить, что настройки группировок (отборы и выбранные поля) имеют приоритет над общими настройками отчета, что и позволяет создавать сложные кросс-формы.

← На главную