Почему в отчете на СКД дублируется номенклатура и как это исправить?

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

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

Причины возникновения дублей в СКД

Основная причина «задвоения» — это конфликт между структурой данных, получаемых запросом, и настройками отображения в СКД. Система компоновки данных пытается интерпретировать каждое поле согласно выбранным настройкам. Если вы добавили поле в группировки, но забыли указать его как ресурс, либо создали избыточную структуру с детальными записями, СКД может выводить строки отдельно для каждого набора данных или состояния поля.

Основные факторы, приводящие к ошибкам:

Пошаговое решение: как настроить отчет «с нуля»

Если отчет стал слишком сложным и вы запутались в настройках, лучший способ — вернуться к состоянию «чистого листа» и настроить все заново. Рассмотрим процесс по этапам.

  1. Формирование запроса: Убедитесь, что ваш запрос возвращает корректные данные. Например, запрос к виртуальной таблице РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты должен выглядеть чисто, без дублей при проверке в консоли запросов.
  2. Настройка ресурсов: Перейдите на вкладку Ресурсы. Найдите все числовые поля, которые вы хотите суммировать (например, ВНаличииКонечныйОстаток), и перенесите их в список ресурсов. Убедитесь, что для них выбрана функция Сумма().
  3. Настройка структуры: Перейдите на вкладку Настройки. В дереве настроек удалите все текущие элементы и создайте структуру заново:
    • Добавьте группировку Склад.
    • Внутри нее создайте подчиненную группировку Номенклатура.
    • Для группировки Номенклатура на вкладке «Выбранные поля» добавьте только нужные ресурсы, например, ВНаличииКонечныйОстаток.
  4. Проверка параметров: Проверьте, что параметры НачалоПериода, КонецПериода и Склад имеют корректные значения и правильно заполнены в настройках.

При таком подходе СКД сама правильно свернет данные по группировкам, используя ресурсы для вычисления итогов. Избегайте соблазна добавлять поля в «Детальные записи», если ваша цель — получение итоговых остатков по номенклатуре.

Советы по отладке

Чтобы убедиться, что причина именно в настройках СКД, выполните следующие действия:

Во-первых, проанализируйте структуру отчета на вкладке «Настройки». Часто бывает, что под группировкой Номенклатура ошибочно добавлена строка с «Детальными записями». Если вы их там видите — удалите. Детальные записи нужны только в том случае, если вы хотите увидеть каждую операцию или транзакцию отдельно, а не агрегированные данные.

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

Помните, что при работе с виртуальными таблицами типа ОстаткиИОбороты, система уже делает часть работы по агрегации данных. Ваша задача — лишь правильно указать, как именно эти данные должны быть сгруппированы в итоговом отчете для пользователя. Не усложняйте структуру без необходимости, и система будет работать предсказуемо и быстро.

← На главную