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

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

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

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

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

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

  1. Открываем схему компоновки данных и переходим на вкладку Вычисляемые поля.
  2. Добавляем новую строку, указываем имя поля, например, ДокументПредставление, и задаем заголовок.
  3. В колонке Выражение прописываем конкатенацию строковых представлений исходных полей.

Посмотрим на пример базового выражения:

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

Обратите внимание: простое использование конструкции Строка(Дата) выводит дату вместе со временем (например, 01.01.2026 0:00:00). Чтобы получить аккуратное отображение даты, рекомендуется применять встроенную функцию Формат() с явным указанием формата даты ДФ=dd.MM.yyyy.

Если номер документа является числовым и при преобразовании в строку появляются разделители триад (пробелы), используйте форматирование для чисел:

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

Для корректной работы с возможными пустыми значениями полезно предусмотреть проверку на NULL:


"№ " + ЕстьNull(Номер, "") + " от " + ВЫБОР КОГДА Дата ЕСТЬ NULL ТОГДА "" ИНАЧЕ Формат(Дата, "ДФ=dd.MM.yyyy") КОНЕЦ

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

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

Проанализируем второй подход, который позволяет сохранить исходный тип данных поля (например, саму ссылку на документ или дату), но изменить его видимый текст в отчете.

  1. Переходим на вкладку Наборы данных в схеме компоновки.
  2. Находим нужное поле в списке (например, Ссылка документа или Номер).
  3. В колонке Выражение представления указываем формулу формирования строки:

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

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

Способ 3. Группировка выбранных полей с типом «Вместе»

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

  1. Переходим на вкладку Настройки и открываем вкладку Выбранные поля.
  2. Выделяем поля Номер и Дата, нажимаем правой кнопкой мыши и выбираем Сгруппировать поля.
  3. В свойствах созданной группы полей указываем Тип группировки: Вместе.
  4. Задаем понятный заголовок для объединенной колонки.

В этом случае СКД автоматически разместит значения обоих полей в пределах одной колонки таблицы.

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

Когда требуется нестандартное визуальное оформление ячейки, разберем использование макетов полей:

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

Способ 5. Агрегатная функция «СоединитьСтроки» в ресурсах

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

Синтаксис функции:

СоединитьСтроки(Значение, РазделительЭлементов, РазделителиКолонок)

Посмотрим на пример объединения данных таблицы значений в выражении ресурса:


СоединитьСтроки(ТаблицаЗначений(Номер, Формат(Дата, "ДФ=dd.MM.yyyy")), "; ", " - ")

Функция обходит строки и колонки переданной таблицы или массива, объединяя их с указанными разделителями элементов и колонок, что удобно для вывода списков связанных документов в строке отчета.

← На главную