К статье
Практический материал

Отчеты и Аналитика · 11 мин

Как объединить колонки в 1С: все рабочие способы

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

Задача объединить колонки в 1С возникает в нескольких разных ситуациях, и способ решения зависит от того, где именно находятся данные. Чаще всего речь идёт об объединении ячеек в табличном документе (печатной форме), объединении полей в запросе или отчёте на СКД, а также о склейке значений нескольких колонок в одну при выгрузке в Excel или при обработке таблицы значений. Каждый из этих сценариев решается своим инструментом, и перепутать их — типичная ошибка начинающих.

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

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

Определите, где именно нужно объединить колонки

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

  • Табличный документ — сформированная печатная форма, прайс, отчёт, открытый как документ на экране. Здесь объединение делается вручную, как в Excel.
  • Отчёт на СКД — нужно, чтобы две колонки выводились под одним общим заголовком или слились в одну. Настраивается в схеме компоновки данных.
  • Запрос или таблица значений — требуется склеить значения полей в одну строку, например собрать ФИО из трёх полей.
  • Макет печатной формы — объединение ячеек задаётся заранее в макете или программно при выводе.
Маршрут решения

Как выбрать действие

Документ уже сформирован и открыт на экранеВыделите ячейки и используйте команду «Объединить» на вкладке «Таблица»
Нужно объединить колонки в отчёте, который формируется регулярноНастройте группировку колонок в варианте отчёта или измените макет
Нужно склеить значения полей в одну строкуИспользуйте конкатенацию в запросе или в коде
Объединение должно быть в печатной форме всегдаОтредактируйте макет или добавьте метод Объединить() в модуль формирования

Как объединить ячейки в готовом табличном документе

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

Порядок действий
  1. 1
    Откройте сформированный табличный документ (печатную форму, отчёт).
  2. 2
    Если документ открыт только для просмотра, включите редактирование: снимите флажок «Только просмотр» на вкладке «Таблица» или в меню «Ещё».
  3. 3
    Выделите смежные ячейки, которые нужно объединить: протяните мышью по строке или по диапазону.
  4. 4
    На вкладке «Таблица» нажмите кнопку «Объединить».
  5. 5
    Проверьте результат: текст должен располагаться в одной общей ячейке, границы между колонками исчезнут.
  6. 6
    Сохраните документ, если результат нужен в файле, или сразу отправьте на печать.

Обратите внимание: объединить можно только прямоугольный диапазон смежных ячеек. Если между колонками есть разрыв или выделение захватывает несмежные области, команда будет недоступна. Чтобы разделить ячейки обратно, выделите объединённую область и нажмите «Разъединить» на той же вкладке.

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

Объединение колонок в отчёте на СКД

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

Группировка колонок под общим заголовком

Откройте настройки отчёта через кнопку «Настройки» или «Изменить вариант». Перейдите на вкладку, где выводятся selected поля, и сгруппируйте нужные поля в папку — в режиме расширенных настроек для этого есть команда группировки выбранных полей. У папки можно задать собственный заголовок, который отобразится над объединёнными колонками. Такой подход визуально объединяет колонки, сохраняя их данные раздельными.

Склейка значений в одну колонку через вычисляемое поле

Если нужна именно одна колонка со склеенными значениями, добавьте пользовательское поле. В настройках отчёта откройте вкладку «Пользовательские поля», создайте новое поле выражения и задайте формулу конкатенации, например склейку кода и наименования через строковое соединение. Готовое поле добавьте в выбранные поля отчёта, а исходные колонки уберите из вывода. В результате отчёт покажет одну объединённую колонку вместо двух.

Объединение значений колонок в запросе

Когда данные готовятся запросом — для отчёта, обработки или выгрузки — объединение делается на уровне языка запросов. Значения полей соединяются оператором конкатенации, а нестрочные типы предварительно приводятся к строке.

ВЫБРАТЬ

Контрагенты.Наименование + " (" + Контрагенты.ИНН + ")" КАК КонтрагентСИНН

ИЗ

Справочник.Контрагенты КАК Контрагенты

В этом примере две «колонки» — наименование и ИНН — сливаются в одну выходную колонку с псевдонимом. Аналогично собираются ФИО из трёх полей, адрес из отдельных полей города, улицы и дома, артикул с префиксом. Если какое-то из полей может быть не заполнено, добавьте проверку через ВЫБОР КОГДА ... ТОГДА ... ИНАЧЕ "" КОНЕЦ, иначе в строку попадёт нежелательное представление пустого значения.

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

Программное объединение ячеек в макете и печатной форме

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

Область = ТабДок.Область("R2C1:R2C3");

Область.Объединить();

Область.Текст = "Сведения о контрагенте";

Область.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;

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

Если после программного объединения текст в ячейке обрезается, проверьте свойство «Размещение текста» области: для длинных заголовков установите перенос по словам и увеличьте высоту строки, иначе часть текста не попадёт на печать.
ПЗ
Практическое замечание

Объединение колонок в таблице значений при обработке данных

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

ТЗ.Колонки.Добавить("ПолноеИмя");

Для Каждого Строка Из ТЗ Цикл

Строка.ПолноеИмя = СокрЛП(Строка.Фамилия) + " " + СокрЛП(Строка.Имя);

КонецЦикла;

Если таблица большая, цикл по строкам заметно медленнее, чем склейка в запросе. Когда данные ещё можно получить запросом, объединяйте поля именно там — это быстрее и проще сопровождать.

Типичные ошибки
01
Объединение ячеек вручную в сформированном отчёте и ожидание, что оно сохранится при следующем формировании — документ перестраивается заново, правьте макет или вариант отчёта.
02
Конкатенация полей без проверки на пустые значения — в итоговой строке появляются лишние пробелы или служебные представления.
03
Попытка объединить несмежные ячейки в табличном документе — команда недоступна, сначала выделите сплошной прямоугольный диапазон.
04
Склейка чисел без приведения к строке — получается сумма вместо строки или ошибка типов.
05
Редактирование типового макета вместо создания внешней печатной формы — при обновлении конфигурации изменения будут потеряны.

Проверка результата и ограничения

После объединения проверьте результат до отправки документа на печать или выгрузку. Основные контрольные точки: корректность текста в объединённой ячейке, отсутствие обрезания строк, сортировка и итоги отчёта.

Контрольные точки

Как проверить результат

Внешний вид объединённой ячейки
Норма

Текст виден полностью, выравнивание корректное, границы между колонками отсутствуют

Тревожный признак

Текст обрезан или ушёл за пределы ячейки — настройте перенос и высоту строки

Склеенная строка из нескольких полей
Норма

Значения разделены нужными разделителями, нет двойных пробелов и пустых фрагментов

Тревожный признак

Лишние пробелы или служебные символы — добавьте СокрЛП и проверку пустых значений

Повторное формирование отчёта
Норма

Объединение сохраняется, потому что задано в макете или варианте отчёта

Тревожный признак

Колонки снова раздельные — правка была сделана только в готовом документе

Итоги и группировки отчёта
Норма

Итоги считаются по исходным полям корректно

Тревожный признак

Итоги сбились — вычисляемое поле заменило числовую колонку строкой

Учитывайте и ограничения. Объединённые ячейки в табличном документе могут мешать выгрузке в Excel: при сохранении в формате XLS структура сохраняется, но дальнейшая обработка таких данных формулами затрудняется. Если файл предназначен для обмена данными, лучше не объединять ячейки, а склеивать значения в одну колонку заранее. Также помните, что изменение типовых макетов и модулей требует снятия конфигурации с полной поддержки — безопаснее оформлять доработки как внешние печатные формы и отчёты.

Итог

Что важно запомнить

В готовом документе колонки объединяют выделением и командой «Объединить», в отчётах — группировкой полей или пользовательским полем, в запросах и коде — конкатенацией строк, а в печатных формах — методом Объединить() или настройкой макета. Ручные правки документа не сохраняются при повторном формировании, поэтому постоянные изменения вносят в макет или вариант отчёта.

Частые вопросы

Кнопка «Объединить» неактивна, что делать?

Проверьте три условия: документ не открыт в режиме «Только просмотр», выделен сплошной прямоугольный диапазон ячеек и у вас есть права на редактирование. Снимите флажок «Только просмотр» на вкладке «Таблица» и выделите ячейки заново.

Почему объединение пропадает при повторном формировании отчёта?

Табличный документ каждый раз строится заново по макету и настройкам. Ручное объединение действует только на текущий экземпляр. Чтобы результат сохранялся, измените макет печатной формы или настройки варианта отчёта.

Как объединить ФИО из трёх полей в одну колонку отчёта?

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

Можно ли объединить колонки при выгрузке в Excel?

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

Как программно объединить ячейки шапки в печатной форме?

Получите область нужного диапазона методом Область("R1C1:R1C3") и вызовите у неё метод Объединить(). Текст и выравнивание задайте свойствам области. Альтернатива — заранее объединить ячейки в макете, тогда код не потребуется.

Что делать, если после склейки полей появились лишние пробелы?

Причина — пустые значения в одном из полей. Оберните каждое поле в СокрЛП и добавьте проверку через ВЫБОР КОГДА в запросе или условие в коде, чтобы разделитель добавлялся только между непустыми значениями.