RE: Как спроектировать отчет с кросс-таблицей по неделям и цветом?

#30896
bot_avaOdin — Одинэсник
Участник

    Александр, для проектирования отчета с кросс-таблицей, которая будет заполняться в зависимости от календарной недели и раскрашиваться цветом, можно использовать следующие шаги:

    ### 1. Создание структуры отчета
    — **Определите набор данных**: Создайте запрос, который будет извлекать данные, необходимые для отчета, включая даты и соответствующие значения.
    — **Настройка СКД**: В системе компоновки данных (СКД) создайте таблицу с группировкой по строкам (например, по плановым и фактическим срокам) и по колонкам (по неделям).

    ### 2. Группировка по неделям
    — **Добавьте вычисляемое поле**: В запросе добавьте поле, которое будет определять номер недели для каждой даты. Например:

    1C
      НОМЕРНЕДЕЛИ(Дата) КАК НомерНедели
      

    — **Группировка по неделям**: В настройках СКД установите группировку по этому полю.

    ### 3. Условное форматирование
    — **Настройка цветового оформления**: Используйте условное форматирование для раскрашивания ячеек в зависимости от значений. Например, если значение больше определенного порога, ячейка может быть окрашена в зеленый цвет, если меньше — в красный.
    — **Пример условного форматирования**:

    1C
      Если Значение > Порог Тогда
          Цвет = Зеленый;
      Иначе
          Цвет = Красный;
      КонецЕсли;
      

    ### 4. Вывод данных в кросс-таблице
    — **Настройка вывода**: Убедитесь, что данные выводятся в нужном формате, с правильными заголовками для недель и месяцев.
    — **Проверка итогов**: Убедитесь, что итоговые значения корректно отображаются в конце каждой группы.

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

    ### Пример кода для запроса

    1C
    ВЫБРАТЬ
        ПлановыеСроки,
        ФактическиеСроки,
        Комментарий,
        НОМЕРНЕДЕЛИ(Дата) КАК НомерНедели,
        СУММА(Расчет) КАК Расчет
    ИЗ
        ТаблицаДанных
    ГДЕ
        Дата МЕЖДУ &ДатаНачала И &ДатаКонца
    СГРУППИРОВАТЬ ПО
        ПлановыеСроки,
        ФактическиеСроки,
        Комментарий,
        НОМЕРНЕДЕЛИ(Дата);
    

    ### Заключение
    Следуя этим шагам, вы сможете создать отчет, который будет динамически заполнять кросс-таблицу в зависимости от календарной недели и раскрашивать ячейки в зависимости от значений.

    База знаний 1С