При разработке отчетов в системе компоновки данных (СКД) разработчики часто сталкиваются с ситуацией: при добавлении в список выбранных полей нескольких реквизитов одного ссылочного объекта (например, артикула, кода или веса номенклатуры) платформа выводит их не в отдельных колонках, а склеивает в одну ячейку через запятую. Проанализируем, почему возникает такое поведение платформы 1С:Предприятие, и подробно разберем все способы разделения данных по отдельным колонкам.
По умолчанию в СКД для параметра Расположение реквизитов установлено значение Вместе с владельцем. Платформа воспринимает выбранные через точку поля как подчиненные свойства одного объекта-владельца. Если сам объект-ссылка в выбранные поля не добавлен, а выбраны только его дочерние реквизиты, система все равно группирует их вместе и отображает в одной ячейке через запятую.
Также объединение может произойти, если поля вручную объединены в группу на вкладке Выбранные поля с типом размещения Вместе.
Рассмотрим стандартный и самый быстрый способ исправления поведения отчета через настройки компоновки данных. Разберем действия по шагам:
После применения этой настройки каждый реквизит объекта получит собственную отдельную колонку в отчете.
Не всегда требуется разделять реквизиты глобально во всем отчете. Иногда в итоговых строках или группировках верхнего уровня компактный вывод через запятую удобен, а разделение на колонки необходимо только на детальном уровне. Проанализируем, как переопределить параметр локально:
Также полезно знать назначение других доступных режимов этого параметра:
Если требуется гарантировать независимость полей вне зависимости от настроек компоновщика, разберем решение на уровне набора данных. Если развернуть реквизиты непосредственно в тексте запроса и присвоить им собственные псевдонимы, СКД будет воспринимать их как самостоятельные поля, а не как дочерние свойства ссылки.
Посмотрим на пример запроса:
ВЫБРАТЬ
ТоварыНаСкладах.Номенклатура КАК Номенклатура,
ТоварыНаСкладах.Номенклатура.Артикул КАК Артикул,
ТоварыНаСкладах.Номенклатура.Код КАК Код,
ТоварыНаСкладах.КоличествоОстаток КАК КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладах
В данном случае поля Артикул и Код являются независимыми элементами набора данных. Параметр Расположение реквизитов на них не распространяется, и они гарантированно формируют собственные колонки.
Рассмотрим еще один вариант оформления, когда нужно управлять структурой колонок вручную на вкладке Выбранные поля:
Ctrl или Shift.