Почему в отчете на СКД пропадают строки с нулевыми суммами и как их вернуть?

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

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

Анализ причины проблемы

Первое, что необходимо проверить — это корректность запроса. Вы верно используете ЛЕВОЕ СОЕДИНЕНИЕ, которое по логике должно присоединять данные продаж к полному списку партнеров. Если в консоли запросов вы видите все строки, а в готовом отчете — только заполненные, значит, проблема скрыта не в самом тексте запроса, а в хранилище настроек СКД или специфике обработки ресурсов.

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

Шаг 1: Сброс настроек отчета

Прежде чем приступать к глубокому изменению схемы, попробуйте сбросить настройки, которые могли закэшироваться в режиме 1С:Предприятие. Это самый простой способ исключить влияние «старых» пользовательских фильтров:

  1. Откройте нужный отчет в режиме 1С:Предприятие.
  2. Нажмите кнопку Еще в командной панели формы.
  3. Выберите пункт Изменить форму....
  4. Снова нажмите Еще и выберите Установить стандартные настройки.

После этого переформируйте отчет. Если проблема была в сохраненных настройках, все партнеры появятся в списке.

Шаг 2: Проверка корректности запроса и использование ЕСТЬNULL

Убедитесь, что запрос корректно обрабатывает значения, которые приходят из регистра. Использование ЕСТЬNULL — это стандартная практика для того, чтобы заменить NULL на конкретное значение (например, 0), которое СКД сможет правильно отобразить в таблице.

Рассмотрим структуру запроса, которую мы используем для объединения данных:


ВЫБРАТЬ 
    Партнеры.Ссылка КАК Партнер, 
    ЕСТЬNULL(ВП_Продажи.Период, &ДатаНачала) КАК Период, 
    ЕСТЬNULL(ВП_Продажи.СуммаВыручки, 0) КАК СуммаВыручки 
ИЗ Справочник.Партнеры КАК Партнеры 
ЛЕВОЕ СОЕДИНЕНИЕ ВП_Продажи КАК ВП_Продажи 
ПО (ВП_Продажи.Партнер = Партнеры.Ссылка) 
ГДЕ Партнеры.ПометкаУдаления = ЛОЖЬ

Важное замечание: не стоит искусственно завышать нулевые значения (например, подставлять 0.01). Если настройка СКД верна, система должна адекватно отображать и «чистый» ноль. Если вы видите, что строки по-прежнему пропадают, значит, настройки группировок в СКД фильтруют пустые записи.

Шаг 3: Пересоздание схемы СКД

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

  1. Создайте новую схему СКД (или новую обработку).
  2. Вставьте туда обновленный текст запроса.
  3. Заново настройте связи наборов данных, убедившись, что выбран тип Левое соединение.
  4. Настройте структуру отчета (Группировки: Партнер).

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

Заключение и рекомендации

Чтобы отчет работал стабильно и всегда выводил полный список справочника:

Следуя этим шагам, вы сможете добиться корректного отображения всех данных в СКД и избежать исчезновения контрагентов из ваших отчетов по продажам.

← На главную