Как вывести несколько полей в одной ячейке или колонке отчета СКД в 1С?

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

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

Способ 1. Группировка выбранных полей в настройках отчета

Этот способ является самым простым и не требует изменения схемы данных или написания выражений. Платформа 1С предоставляет встроенный механизм группировки колонок.

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

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

    — Вместе: поля будут отображаться в одной ячейке таблицы через разделитель (запятую или пробел).

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

  5. В свойстве Тип заголовка укажем Авто или Не использовать, а в поле Заголовок введем понятное наименование колонки, например Документ.

Главные плюсы способа: сохраняется оригинальный тип данных каждого поля, работает стандартное форматирование даты и чисел, а также полностью сохраняется встроенный механизм расшифровки значений (drill-down).

Способ 2. Использование вычисляемых полей СКД

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

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

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

"№ " + Строка(Номер) + " от " + Формат(Дата, "ДФ=dd.MM.yyyy")

Посмотрим на особенности этого решения: функция Формат() в СКД позволяет гибко управлять представлением даты (например, ДЛФ=DD выведет дату прописью с месяцем словом, а ДФ=dd.MM.yyyy сформирует стандартный вид 01.01.2024).

После создания поля перейдем на вкладку Настройки и добавим ДокументПредставление в список Выбранные поля.

Способ 3. Настройка «Выражения представления» в наборе данных

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

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

  1. Перейдем на вкладку Наборы данных и выделим поле Номер.
  2. Найдем колонку Выражение представления.
  3. Укажем выражение конкатенации:

Строка(Номер) + " от " + Формат(Дата, "ДФ=dd.MM.yyyy")

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

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

Если требуется тонкое визуальное оформление ячейки (шрифты, цвета, объединение ячеек нестандартным образом), применим механизм макетов схемы компоновки данных.

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

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

Способ 5. Пользовательские поля в режиме «1С:Предприятие»

Если отчет уже работает в рабочей базе, а пользователю или аналитику нужно объединить поля без изменения конфигурации и открытия конфигуратора, разберем решение через пользовательские поля:

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

Важные нюансы: расшифровка, сортировка и ограничения языка запросов

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

  1. Конкатенация в запросе: попытка склеить дату и номер непосредственно в тексте запроса через оператор + приводит к ошибкам или громоздким конструкциям, так как в языке запросов 1С отсутствует функция Формат(). Склеивание строк рекомендуется выполнять на уровне СКД (в вычисляемых полях или выражениях представления), а не в запросе.
  2. Сортировка: если объединить номер и дату в строковое вычисляемое поле и применить к нему сортировку, данные будут упорядочены по алфавиту (лексикографически), а не хронологически. Для правильного упорядочивания на вкладке Настройки -> Сортировка всегда добавляйте исходное поле Дата.
  3. Расшифровка (Drill-Down): при склеивании полей в простую строку теряется ссылочная связь с документом. Чтобы клик по ячейке открывал документ, настраивайте расшифровку через макет поля или выводите поле Ссылка, настроив для него Выражение представления.
← На главную