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

Разработка и Конфигурация · 10 мин

Как объединить ячейки в 1С: макеты, табличные документы и отчёты

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

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

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

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

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

Самый простой случай — статический макет печатной формы. Откройте конфигуратор, найдите нужный макет (например, у документа или в разделе «Общие макеты») и откройте его на редактирование. Макет отображается как таблица, похожая на лист Excel.

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

Чтобы задать выравнивание, откройте палитру свойств (правый клик по объединённой области — «Свойства») и установите горизонтальное и вертикальное положение текста. Для заголовков печатных форм обычно ставят «Центр» по горизонтали и «Центр» по вертикали.

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

Порядок действий в макете
  1. 1
    Откройте макет в конфигураторе
  2. 2
    Выделите прямоугольный диапазон ячеек
  3. 3
    Нажмите кнопку «Объединить» на панели инструментов
  4. 4
    В свойствах области задайте выравнивание текста
  5. 5
    Сохраните макет и сформируйте печатную форму для проверки

Программное объединение ячеек методом Объединить()

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

Область можно получить через метод Область(НомерСтроки1, НомерКолонки1, НомерСтроки2, НомерКолонки2) табличного документа. После объединения текст задаётся через свойство Текст области, а оформление — через свойства шрифта, рамки и выравнивания.

ТабДок = Новый ТабличныйДокумент;

Область = ТабДок.Область(1, 1, 1, 3); // строка 1, колонки 1–3

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

Область.Текст = "Акт выполненных работ";

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

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

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

bsl
Область = ТабДок.Область(2, 1, 4, 1);
Область.Объединить();
Область.Текст = "Итого по разделу";

Объединение по вертикали и типовые сценарии

Шапка печатной формы

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

Повторяющиеся значения в строках

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

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

Итоговые строки

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

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

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

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

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

Второй способ — собственный макет в СКД. На закладке «Макеты» конструктора настроек можно создать макет группировки или макет поля, где область оформляется как обычный макет табличного документа — с объединёнными ячейками. Это подходит для шапок отчётов и сложных заголовков колонок.

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

Сравнение подходов

Макет табличного документа

Подходит для статичных печатных форм; структура фиксирована, изменение числа колонок требует правки макета

Программное Объединить()

Гибкий вариант для динамических печатных форм; требует аккуратной работы с координатами областей

Группировки СКД

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

Макет в СКД

Для сложных шапок отчётов; сложнее в настройке и поддержке

Проверка результата и разъединение

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

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

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

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

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

Выделение ячейки в табличном документе
Норма

Выделяется вся объединённая область целиком

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

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

Текст в объединённой области
Норма

Текст один, выровнен по заданным свойствам

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

Текст дублируется или обрезан

Экспорт в Excel
Норма

Область выгружается как объединённые ячейки

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

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

Типичные ошибки и ограничения

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

Вторая распространённая ошибка — запись текста в каждую ячейку диапазона до объединения. После объединения отображается только значение левой верхней ячейки, остальные теряются, что приводит к неожиданному результату. Текст следует задавать после объединения.

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

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

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

Можно ли объединить ячейки в табличном поле на форме?

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

Почему метод Объединить() выдаёт ошибку?

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

Сохранится ли объединение при выгрузке в Excel?

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

Как объединить ячейки в отчёте на СКД без программирования?

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

Как разъединить ранее объединённые ячейки в макете?

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

Итог

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

Объединение ячеек в 1С выполняется над областями табличного документа: кнопкой «Объединить» в макете или методом Объединить() в коде. В отчётах СКД эффект достигается группировками и собственными макетами. Текст задавайте после объединения и избегайте пересечения областей.