При построении кросс-таблиц в Система компоновки данных (СКД) разработчики часто сталкиваются с ситуацией, когда в ячейках на пересечении строк и колонок необходимо вывести не числовые данные (например, суммы или количество), а дату, строку или ссылку на документ. В этой статье мы подробно разберем, почему даты не отображаются в ячейках по умолчанию, как правильно настроить агрегацию дат на вкладке ресурсов и как избавиться от лишних итогов и заголовков ресурсов.
Платформа 1С имеет жесткое ограничение при формировании отчетов типа Таблица (кросс-таблицы). Любое поле, выводимое на пересечении группировок строк и колонок, обязано являться Ресурсом схемы компоновки данных. Если поле ДатаПлатежа добавить в обычные выбранные поля группировки, но не объявить его ресурсом, в ячейках таблицы будет пусто либо данные перестанут выводиться при отключении детальных записей.
Рассмотрим пример исходного запроса отчета:
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка,
НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, МЕСЯЦ) КАК Месяц,
РеализацияТоваровУслуг.ДатаПлатежа
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
Поскольку стандартная функция СУММА не применятся к типу Дата, перейдем на вкладку Ресурсы в схеме компоновки данных и укажем правильные выражения агрегации:
МАКСИМУМ(ДатаПлатежа) или МИНИМУМ(ДатаПлатежа).СоединитьСтроки():
СоединитьСтроки(Формат(ДатаПлатежа, "ДФ=dd.MM.yyyy"), ", ")
При объявлении поля ресурсом СКД автоматически добавляет строки и колонки общих итогов ("Итого" снизу и справа). Если отключить расчет ресурсов в наборе данных полностью, даты пропадут из ячеек. Чтобы правильно скрыть общие итоги, сохраняя данные на пересечениях, выполним настройки оформления:
Не выводить.По умолчанию СКД выводит имя ресурса (например, ДатаПлатежа) в каждой колонке группировки. Чтобы убрать дублирующийся заголовок и оставить только название периода/месяца, применим один из следующих способов:
ДатаПлатежа и укажем в качестве заголовка один символ пробела. Если оставить поле полностью пустым, платформа может автоматически подставить имя поля обратно.Не использовать.Для создания понятной шапки колонок по месяцам и годам проанализируем структуру группировок колонок таблицы:
Месяц настроим свойство Формат: ДФ='MMMM yyyy "г."'.НАЧАЛОПЕРИОДА(Дата, ГОД), а внутрь нее поместим вложенную группировку Месяц.Таким образом, правильное объявление нечисловых полей ресурсами в сочетании с точечной настройкой параметров Расположение итогов и Автопозиция ресурсов позволяет выводить любые даты и текстовые значения в ячейках кросс-таблиц СКД без лишних визуальных элементов.