Объединение и разъединение ячеек в табличном документе 1С 8.3 — руками, в макете и кодом

· 9 мин

Содержание

Чтобы объединить ячейки в 1С, выделите мышью диапазон в табличном документе и выберите в главном меню Таблица → Объединить. Обратная операция — Таблица → Разъединить. В коде то же самое делает метод Объединить() у области: ТабДок.Область(1, 1, 1, 4).Объединить().

Механизм общий для платформы 1С 8.3, поэтому работает одинаково в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и любой другой конфигурации. Разница только в том, где лежит документ: в отчёте, печатной форме, макете конфигурации или во внешней обработке.

Где в 1С можно объединять ячейки, а где нельзя

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

Где вы работаетеОбъединениеКак сделать
Новый табличный документ (Файл → Новый)✅ даменю Таблица → Объединить
Печатная форма документа✅ после включения редактированиято же меню
Результат отчёта✅ если документ не защищёнто же меню или копия в новый документ
Макет в Конфигураторе✅ даменю Таблица → Объединить
Табличная часть документа, список справочника❌ неттолько группы колонок в форме
Таблица формы (ТаблицаФормы)❌ нетгруппы колонок с общей шапкой

📌 Если вы пытаетесь «склеить» две строки в табличной части накладной — это не объединение ячеек, а другая задача. Табличные части хранят данные построчно, визуально склеить их нельзя.

Объединение ячеек вручную в табличном документе 1С

Режим 1С:Предприятие, интерфейс «Такси».

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

Разъединить ячейки: выделите объединённую область и выберите Таблица → Разъединить.

Что происходит с текстом

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

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

Если меню «Таблица» неактивно

Пункты недоступны в двух случаях:

  • 🔒 документ открыт только для просмотра — так открываются почти все результаты отчётов и печатные формы;
  • 🖱 курсор стоит не в табличном документе, а, например, в поле отбора над ним.

Самый быстрый обход для отчёта: щёлкните по таблице, нажмите Ctrl+A, затем Ctrl+C, создайте новый табличный документ и вставьте Ctrl+V. Оформление, шрифты и границы переносятся, а новый документ уже полностью редактируемый.

Объединение ячеек в печатных формах (БП 3.0, УТ 11, ЗУП 3.1)

Здесь два сценария: поправить один конкретный бланк перед печатью или изменить форму навсегда.

Разовая правка перед печатью

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

Правка живёт до закрытия окна. При следующей печати документа 1С снова построит форму по стандартному макету.

Постоянное изменение макета без снятия с поддержки

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

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

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

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

Правка через Конфигуратор или расширение

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

Программное объединение ячеек во встроенном языке 1С 8.3

У табличного документа метод Область() возвращает объект ОбластьЯчеекТабличногоДокумента. У него и есть методы Объединить() и Разъединить().

Область задают двумя способами:

  • 🔢 числами: ТабДок.Область(Верх, Лево, Низ, Право) — номера строк и колонок;
  • 🔤 строкой: ТабДок.Область("R1C1:R1C4") — та же область в нотации R1C1.

Пример 1. Заголовок на четыре колонки

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

Область = ТабДок.Область(1, 1, 1, 4); // строка 1, колонки с 1 по 4
Область.Объединить();
Область.Текст = "Остатки товаров на складе";
Область.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
Область.Шрифт = Новый Шрифт(, 12, Истина); // 12 пт, жирный

Пример 2. Объединение повторяющихся значений по вертикали

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

НачалоГруппы = 0;
ТекущийКлиент = Неопределено;

Для Каждого Стр Из Данные Цикл
	ОбластьСтроки.Параметры.Заполнить(Стр);
	ТабДок.Вывести(ОбластьСтроки);
	НомерСтроки = ТабДок.ВысотаТаблицы;

	Если Стр.Клиент <> ТекущийКлиент Тогда
		// закрываем предыдущую группу, если в ней больше одной строки
		Если НачалоГруппы > 0 И НомерСтроки - 1 > НачалоГруппы Тогда
			Группа = ТабДок.Область(НачалоГруппы, 1, НомерСтроки - 1, 1);
			Группа.Объединить();
			Группа.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
		КонецЕсли;
		НачалоГруппы = НомерСтроки;
		ТекущийКлиент = Стр.Клиент;
	КонецЕсли;
КонецЦикла;

// последняя группа
Если НачалоГруппы > 0 И ТабДок.ВысотаТаблицы > НачалоГруппы Тогда
	Группа = ТабДок.Область(НачалоГруппы, 1, ТабДок.ВысотаТаблицы, 1);
	Группа.Объединить();
	Группа.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
КонецЕсли;

Проверим на числах. Строки 2–4 — клиент «Альфа», 5–6 — «Бета». На строке 5 клиент меняется: объединяются строки со 2-й по 4-ю. После цикла ВысотаТаблицы = 6, начало группы = 5, объединяются 5–6. Если бы «Бета» была в одной строке, условие 6 > 6 не выполнилось бы и лишнего объединения не случилось.

Номер последней выведенной строки всегда берите из ТабДок.ВысотаТаблицы сразу после Вывести(). Считать строки своим счётчиком опасно: у области может быть больше одной строки.

Пример 3. Сбросить старые объединения перед перерисовкой

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

Если ТабДок.ВысотаТаблицы > 0 И ТабДок.ШиринаТаблицы > 0 Тогда
	ТабДок.Область(1, 1, ТабДок.ВысотаТаблицы, ТабДок.ШиринаТаблицы).Разъединить();
КонецЕсли;

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

Объединение в макете против объединения в коде

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

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

Объединение во внешних отчётах и обработках

Во внешней обработке (.epf) или внешнем отчёте (.erf) действуют те же правила. Макеты лежат внутри самой обработки, их открывают в Конфигураторе через Файл → Открыть, затем в дереве объекта — ветка «Макеты». Ячейки объединяют в редакторе макета, сохраняют файл и подключают обработку заново.

Для внешней печатной формы, подключённой через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, после правки макета загрузите обновлённый файл в карточку обработки. Старая версия хранится в базе и сама не заменится.

Отчёты на СКД

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

  • 🧩 описать шапку или группировку собственным макетом на закладке «Макеты» схемы компоновки и объединить ячейки там;
  • 🛠 вывести результат в табличный документ процессором вывода, а затем пройти по нему и объединить нужные области, как в примере 2.

Через Excel: сохранить, объединить, вернуть

Когда нужно много ручной правки, проще выгрузить таблицу в Excel.

  1. В отчёте или печатной форме нажмите кнопку сохранения и выберите формат «Лист Excel» (.xlsx).
  2. Объедините ячейки в Excel — объединение 1С, сделанное ранее, сохраняется при выгрузке.
  3. Если результат нужен обратно в 1С, откройте .xlsx через Файл → Открыть в режиме 1С:Предприятие — файл откроется как табличный документ.

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

Обратная сторона: объединённые ячейки ломают загрузку из Excel

При загрузке данных из таблицы Excel в 1С (например, номенклатуры или табличной части документа) объединённые ячейки — частая причина «пропавших» значений. Значение хранится только в первой ячейке объединения, остальные строки 1С читает как пустые.

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

Мобильная платформа 1С

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

Ручного объединения пальцем, как в настольном клиенте, в мобильном интерфейсе нет. Если объединение нужно, его задают в макете или кодом через Объединить() при формировании документа — метод работает так же, как в настольной версии. На узком экране широкие объединённые заголовки заставляют прокручивать таблицу вбок, поэтому для мобильных форм шапку лучше делать в 2–3 колонки.

Частые ошибки при объединении ячеек

Диагностика: выберите симптом

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

Есть ли в 1С горячая клавиша для объединения ячеек?
Стандартного сочетания для этой команды нет. Пользуйтесь меню Таблица → Объединить. Для частой работы удобнее подготовить нужное объединение один раз в макете.
Можно ли объединить ячейки в табличной части документа или в списке?
Нет. Табличная часть и динамический список хранят данные построчно. В управляемой форме можно только сгруппировать колонки под общим заголовком через группу колонок в редакторе формы.
Сохранится ли объединение при записи в PDF?
Да. Разметка табличного документа, включая объединённые ячейки и границы, переносится в PDF без изменений.
Как проверить кодом, что ячейки уже объединены?
Надёжнее не проверять, а сначала вызвать Разъединить() для всей области, а затем Объединить() для нужного диапазона. Так вы избавитесь от частичных пересечений.
Почему текст в объединённой ячейке обрезается при печати?
Высота строки не подстроилась под текст. Задайте в свойствах области перенос текста по словам и увеличьте высоту строки вручную либо уменьшите шрифт.