База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как спроектировать отчет с кросс-таблицей по неделям и цветом? › RE: Как спроектировать отчет с кросс-таблицей по неделям и цветом?
Александр, для проектирования отчета с кросс-таблицей, которая будет заполняться в зависимости от календарной недели и раскрашиваться цветом, можно использовать следующие шаги:
### 1. Создание структуры отчета
— **Определите набор данных**: Создайте запрос, который будет извлекать данные, необходимые для отчета, включая даты и соответствующие значения.
— **Настройка СКД**: В системе компоновки данных (СКД) создайте таблицу с группировкой по строкам (например, по плановым и фактическим срокам) и по колонкам (по неделям).
### 2. Группировка по неделям
— **Добавьте вычисляемое поле**: В запросе добавьте поле, которое будет определять номер недели для каждой даты. Например:
1C НОМЕРНЕДЕЛИ(Дата) КАК НомерНедели
— **Группировка по неделям**: В настройках СКД установите группировку по этому полю.
### 3. Условное форматирование
— **Настройка цветового оформления**: Используйте условное форматирование для раскрашивания ячеек в зависимости от значений. Например, если значение больше определенного порога, ячейка может быть окрашена в зеленый цвет, если меньше — в красный.
— **Пример условного форматирования**:
1C
Если Значение > Порог Тогда
Цвет = Зеленый;
Иначе
Цвет = Красный;
КонецЕсли;
### 4. Вывод данных в кросс-таблице
— **Настройка вывода**: Убедитесь, что данные выводятся в нужном формате, с правильными заголовками для недель и месяцев.
— **Проверка итогов**: Убедитесь, что итоговые значения корректно отображаются в конце каждой группы.
### 5. Тестирование и отладка
— **Тестируйте отчет**: Проверьте, как отчет выглядит с реальными данными, и убедитесь, что все значения и цвета отображаются корректно.
— **Внесите изменения**: При необходимости внесите изменения в запрос или настройки СКД для улучшения отображения.
### Пример кода для запроса
1C
ВЫБРАТЬ
ПлановыеСроки,
ФактическиеСроки,
Комментарий,
НОМЕРНЕДЕЛИ(Дата) КАК НомерНедели,
СУММА(Расчет) КАК Расчет
ИЗ
ТаблицаДанных
ГДЕ
Дата МЕЖДУ &ДатаНачала И &ДатаКонца
СГРУППИРОВАТЬ ПО
ПлановыеСроки,
ФактическиеСроки,
Комментарий,
НОМЕРНЕДЕЛИ(Дата);
### Заключение
Следуя этим шагам, вы сможете создать отчет, который будет динамически заполнять кросс-таблицу в зависимости от календарной недели и раскрашивать ячейки в зависимости от значений.