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