Почему СКД не выводит ресурсы и как исправить их отображение в отчете 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Причина 1. Отключение элемента «Автополе» в выбранных полях группировки

Рассмотрим наиболее распространенный случай. По умолчанию во вложенных группировках отчета на закладке Выбранные поля присутствует служебный элемент Автополе. Он отвечает за автоматическое наследование всех выбранных полей и ресурсов, заданных на верхнем уровне отчета.

Если в настройках конкретной группировки отключить автоматический состав полей (снять флаг или удалить элемент Автополе) и указать собственное поле, наследование прекращается. В результате все ресурсы отчета скрываются для данной группировки.

Выясним, как исправить эту ситуацию:

  1. Перейдем в настройки отчета на закладку Настройки.
  2. Выделим нужную группировку в структуре отчета.
  3. Перейдем на закладку Выбранные поля для выбранной группировки.
  4. Если служебный элемент Автополе был удален, заново добавим в список выбранных полей сам ресурс (например, СуммаОстаток или Количество) либо вернем элемент Автополе.

Причина 2. Работа с несколькими наборами данных без связей

Разберем ситуацию, когда отчет использует несколько источников данных (наборов данных), но связи между ними на закладке Связи наборов данных не заданы. В этом случае СКД не может объединить данные из разных источников в одной общей группировке.

Для корректного вывода ресурсов из двух независимых наборов данных выполним следующие настройки структуры:

  1. В структуре отчета создадим два отдельных элемента верхнего уровня (две группировки или две таблицы), расположенные последовательно друг под другом.
  2. Для первой группировки укажем поля и ресурсы из первого набора данных.
  3. Для второй группировки укажем поля и ресурсы из второго набора данных.

Если же требуется объединить данные двух запросов в один общий список, то эффективнее использовать один Набор данных - Запрос с конструкцией ОБЪЕДИНИТЬ ВСЕ или применить Набор данных - Объединение на уровне схемы компоновки.

Причина 3. Ограничения в колонке «Рассчитывать по...» на закладке «Ресурсы»

Проанализируем настройки самой схемы компоновки данных. На закладке Ресурсы для каждого ресурса указываются выражение и уровни расчета:

  1. Убедимся, что в колонке Выражение задана агрегатная функция, например Сумма(СуммаОстаток) или Количество(Ссылка). Если указать просто имя поля без агрегатной функции, расчет итогов производиться не будет.
  2. Проверим колонку Рассчитывать по.... Если в ней указано конкретное поле группировки, ресурс будет рассчитываться и выводиться только для этого уровня. В общих итогах и других группировках он отображаться не будет. Чтобы ресурс рассчитывался по всем уровням отчета, оставьте колонку Рассчитывать по... пустой.

Причина 4. Необработанные значения NULL и типы данных

Посмотрим на особенности обработки данных при соединении наборов. Если при связывании таблиц или выполнении запросов возникает значение NULL, математические операции с такими полями возвращают пустой результат.

Для предотвращения потерь итогов в выражениях ресурсов рекомендуется оборачивать поля в функцию проверки на пустые значения:

ЕСТЬNULL(СуммаОборот, 0)

Также важно убедиться, что исходное поле в запросе имеет числовой тип данных (Число), так как агрегатная функция Сумма не работает со строковыми или составными типами данных.

← На главную