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

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

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

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

Способ 1. Объединение в группу полей (штатный механизм СКД)

Выясним причину, почему этот способ является предпочтительным: он настраивается целиком в пользовательском режиме или в схеме компоновки данных без изменения запроса, сохраняя ссылки на объекты. В результирующей ячейке формируются независимые гиперссылки: при клике по наименованию позиции открывается справочник номенклатуры, а при клике по характеристике — соответствующий элемент свойств.

Разберем по шагам порядок настройки:

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

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

Способ 2. Иерархический вывод («Расположение полей группировок = Вместе»)

Рассмотрим еще один типовой вариант отображения, который часто используется в стандартных отчетах УПП и ERP для анализа остатков и оборотов.

Разберем последовательность действий:

  1. В структуре отчета создадим иерархию группировок: верхний уровень — Номенклатура, подчиненный уровень — Характеристика.
  2. Выделим корневой элемент отчета в структуре и перейдем на вкладку Другие настройки в нижней части окна.
  3. Найдем параметр Расположение полей группировок и изменим его значение на Вместе.

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

Способ 3. Переопределение выражения представления в наборе данных

Если необходимо, чтобы поле всегда выводилось в виде Товар (Характеристика) в одной ячейке, но оставалось полноценной ссылкой на справочник, настроим выражение представления.

Разберем по шагам:

  1. Откроем схему компоновки данных и перейдем на вкладку Наборы данных.
  2. В списке полей найдем поле Номенклатура.
  3. В колонке Выражение представления пропишем условие, учитывающее пустые характеристики, чтобы в отчете не оставалось лишних скобок.

Посмотрим на пример выражения представления:


Номенклатура.Наименование + ВЫБОР 
    КОГДА Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) ИЛИ Характеристика ЕСТЬ NULL 
        ТОГДА "" 
    ИНАЧЕ " (" + Характеристика.Наименование + ")" 
КОНЕЦ

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

Способ 4. Использование пользовательского макета поля

Когда требуется индивидуальное оформление (перенос на новую строку, определенный шрифт или цвет), применим макет поля или строки группировки.

Разберем алгоритм настройки макета:

  1. В схеме компоновки перейдем на вкладку Макеты.
  2. Нажмем Добавить макет поля, выберем поле Номенклатура.
  3. В ячейке макета установим тип заполнения Шаблон и напишем текст: [Номенклатура] ([Характеристика]).
  4. В таблице параметров макета найдем параметр Номенклатура и для ячейки укажем в свойстве Параметр расшифровки соответствующее поле, чтобы клик по ячейке продолжал открывать карточку объекта.

Подводные камни и важные нюансы

Проанализируем ошибки, с которыми можно столкнуться при реализации:

  1. Обработка пустых значений: если учет по характеристикам ведется не для всей номенклатуры, характеристика содержит пустую ссылку или NULL. При явном соединении строк всегда используйте конструкцию ВЫБОР КОГДА, иначе наименование товара дополнится пустыми скобками вида Товар ().
  2. Сортировка: объединение полей в группу на вкладке «Выбранные поля» управляет только визуальным отображением. СКД упорядочивает данные согласно настройкам на вкладке Сортировка или по порядку полей в группировке.
  3. Потеря контекстной расшифровки: если слить номенклатуру и характеристику в одну строковую переменную через операцию + в тексте запроса, система потеряет информацию о ссылочном типе, и стандартные действия контекстного меню («Открыть», «Отчет по движениям») перестанут работать.
← На главную