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

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

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

Выясним причину объединения полей платформой

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

Также объединение может произойти, если поля вручную объединены в группу на вкладке Выбранные поля с типом размещения Вместе.

Решение 1. Изменение настройки «Расположение реквизитов» в СКД

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

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

После применения этой настройки каждый реквизит объекта получит собственную отдельную колонку в отчете.

Решение 2. Локальная настройка для конкретной группировки строк

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

  1. На вкладке Настройки выделим нужную группировку в структуре отчета (например, строку Детальные записи).
  2. Внизу перейдем на вкладку Другие настройки именно этой группировки.
  3. Установим флажок напротив параметра Расположение реквизитов и выберем значение Отдельно.

Также полезно знать назначение других доступных режимов этого параметра:

  1. Вместе — реквизиты объединяются в одну колонку без отображения основного поля-владельца.
  2. Особо — платформа использует индивидуальное расположение реквизитов, заданное для конкретных полей на вкладке Настройки полей.

Решение 3. Извлечение полей на уровне запроса

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

Посмотрим на пример запроса:


ВЫБРАТЬ
    ТоварыНаСкладах.Номенклатура КАК Номенклатура,
    ТоварыНаСкладах.Номенклатура.Артикул КАК Артикул,
    ТоварыНаСкладах.Номенклатура.Код КАК Код,
    ТоварыНаСкладах.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладах

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

Решение 4. Использование пользовательских групп выбранных полей

Рассмотрим еще один вариант оформления, когда нужно управлять структурой колонок вручную на вкладке Выбранные поля:

  1. Перейдем на вкладку Выбранные поля в настройках отчета.
  2. Выделим необходимые реквизиты при помощи клавиши Ctrl или Shift.
  3. Нажмем правой кнопкой мыши и выберем пункт Сгруппировать поля.
  4. В открывшемся окне укажем тип расположения:
    • Горизонтально — система создаст общую шапку для группы, но разделит значения на отдельные колонки.
    • Вертикально — реквизиты останутся внутри одной колонки, но расположатся в несколько строк друг под другом, исключая склеивание через запятую.
← На главную