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

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

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

Разбор причины возникновения проблемы

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

Также важно помнить, что если вы объявляете поле как Ресурс, система будет пытаться вывести его во всех группировках, если не ограничить его вывод принудительно на уровне настроек конкретной таблицы.

Шаг 1: Правильная настройка ресурсов

Чтобы данные из разных наборов отображались корректно, убедитесь, что поля, по которым нужно считать итоги, добавлены в ресурсы. Если вычисления требуют обработки NULL значений, используйте стандартные функции СКД. Рассмотрим пример выражения для ресурса:

Сумма(Выбор Когда Сумма Есть Null Тогда 0 Иначе Сумма)

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

Шаг 2: Настройка структуры и выбранных полей

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

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

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

Шаг 3: Устранение конфликта пользовательских настроек

Если вы внесли изменения в Конфигураторе, но в режиме 1С:Предприятие отчет по-прежнему выводит пустые колонки, значит, система использует старые настройки пользователя. Для решения проблемы:

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

Резюме по настройке

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

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

← На главную