Отчеты и Аналитика · 10 мин
Как разделить ячейку в 1С: пошаговая инструкция
Как разделить ячейку в 1С: работа с табличным документом, объединение и разделение ячеек, программные методы и обходные решения для отчётов.
Вопрос о разделении ячейки в 1С возникает в двух типичных ситуациях: при ручном редактировании табличного документа (макета, печатной формы, отчёта в режиме просмотра) и при программной работе с макетами через встроенный язык. В отличие от Excel, где ячейку можно «разбить» парой кликов, в 1С механика другая: табличный документ опирается на жёсткую сетку строк и колонок, и разделение доступно только для ранее объединённых ячеек.
Это принципиальный момент. Если ячейка никогда не была объединена с соседними, «разделить» её штатной кнопкой нельзя — вместо этого применяют обходные приёмы: добавление дополнительных колонок или строк в макете, вложенные таблицы в управляемых формах либо программное формирование структуры. Ниже разобраны оба сценария — ручной и программный — с конкретными шагами и ограничениями.
Материал ориентирован на пользователей и разработчиков конфигураций на управляемых формах (1С:Предприятие 8.3), но большинство приёмов работает и в обычных формах, поскольку объект «Табличный документ» един для всей платформы.
Как устроены ячейки табличного документа в 1С
Табличный документ в 1С — это не свободная сетка, как в Excel, а структура с фиксированным числом строк и колонок, заданным при создании макета. Каждая ячейка имеет адрес (например, R5C3 — строка 5, колонка 3) и набор свойств: текст, шрифт, границы, цвет фона, тип значения.
Объединение ячеек — единственный штатный способ изменить «геометрию» внутри сетки. При объединении несколько ячеек превращаются в одну область, и именно эту область потом можно разъединить обратно. Одиночную ячейку, которая никогда не объединялась, платформа делить не умеет — это ограничение движка табличного документа, а не конкретной конфигурации.
Как разъединить ранее объединённые ячейки вручную
Если ячейка в макете или открытом табличном документе была объединена, вернуть исходную структуру можно за несколько секунд. Порядок действий одинаков для макета в конфигураторе и для табличного документа, открытого в режиме редактирования.
- 1Откройте табличный документ или макет в режиме редактирования (в режиме «Только просмотр» кнопки недоступны).
- 2Выделите объединённую ячейку, кликнув по ней.
- 3На панели инструментов нажмите кнопку «Объединить/разъединить ячейки» либо используйте меню «Таблица» (в конфигураторе) — пункт «Объединить» работает как переключатель.
- 4Проверьте результат: область должна распасться на исходные ячейки, текст останется в левой верхней из них.
Обратите внимание: при разъединении содержимое не дублируется по всем ячейкам — оно остаётся в верхней левой ячейке бывшей области. Если вам нужно, чтобы текст или значения появились в каждой ячейке, скопируйте их вручную после разъединения.
В режиме просмотра печатной формы (когда документ открыт через «Печать») редактирование по умолчанию заблокировано. Снимите защиту через меню «Ещё» → «Изменить» (в типовых конфигурациях) либо через снятие флажка «Только просмотр» в свойствах документа, если работаете в конфигураторе.
Что делать, если ячейка не была объединена: обходные приёмы
Самая частая практическая задача — «разделить» обычную ячейку макета на две части по вертикали или горизонтали. Поскольку штатного деления нет, используются три рабочих подхода.
Добавление колонки или строки в макете
Откройте макет в конфигураторе, вставьте новую колонку (правый клик по заголовку колонки → «Вставить») там, где нужен «разрез». Затем для всех строк, где деление не требуется, объедините пару соседних ячеек обратно. Визуально получится, что только нужная ячейка «разделена», а остальная таблица выглядит цельной. Это стандартный приём вёрстки макетов в 1С.
Сужение колонок с объединением
Альтернатива — сразу спроектировать макет с более мелкой сеткой: задать вдвое больше колонок, чем нужно в «простых» строках, и объединять ячейки попарно там, где требуется широкая ячейка. Так проектируют сложные печатные формы, например счета-фактуры и акты, где шапка и табличная часть имеют разную структуру.
Текст с разделителем внутри ячейки
Если цель — просто показать два значения в одной ячейке (например, количество и сумму), часто достаточно вывести их через разделитель: «10 шт. / 1 500 руб.». Это не разделение ячейки, но для печатных форм решает задачу без перестройки макета.
Способы «разделить» ячейку
Подходит, если ячейка уже объединена. Мгновенно, но работает только с ранее объединёнными областями.
Универсальный способ для макетов. Требует объединения лишних ячеек в остальных строках, чтобы сохранить вид таблицы.
Лучший вариант при проектировании новой печатной формы со сложной структурой. Требует продумывания макета заранее.
Быстрое решение, когда нужно просто показать два значения рядом. Не даёт независимого форматирования частей.
Программное объединение и разъединение ячеек
Разработчику доступны методы объекта «ТабличныйДокумент» и объекта «ОбластьЯчеекТабличногоДокумента». Получив область, можно вызвать метод Разъединить() — он сработает только для объединённой области, иначе ничего не произойдёт.
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетОтчета");
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));
Область = ТабДок.Область("R2C1:R2C4");
Область.Разъединить();
// Обратное действие — объединение
Область2 = ТабДок.Область("R3C1:R3C2");
Область2.Объединить();
Перед разъединением полезно проверить, действительно ли область объединена: свойство Объединенная у области ячеек вернёт Истина для объединённой области. Это позволяет избежать лишних вызовов и сделать код предсказуемым при повторном формировании отчёта.
При программном формировании отчёта помните: изменения применяются к уже выведенному табличному документу, а не к макету. Если нужно изменить сам шаблон, правьте макет в конфигураторе — программная правка макета на лету возможна, но усложняет поддержку.
Разделение данных в ячейке: другой смысл задачи
Часть пользователей под «разделить ячейку» понимает другое: разбить текст внутри одной ячейки на несколько (например, ФИО из одной колонки — на фамилию, имя и отчество по отдельным колонкам). Штатной функции «текст по столбцам», как в Excel, в табличном документе 1С нет.
Практические варианты такие: скопировать данные в Excel, выполнить разделение там и загрузить обратно; либо решить задачу программно — функциями СтрРазделить() и СтрСоединить() встроенного языка при обработке данных. Для разовой операции с печатной формой проще путь через Excel, для регулярной загрузки данных — обработка с разбором строк.
Проверка результата и ограничения
После ручного или программного разъединения проверьте три вещи: границы ячеек (у «новых» ячеек могут отсутствовать рамки — задайте их через свойства области), выравнивание текста и поведение при печати. Быстрый способ — вывести форму на предварительный просмотр и убедиться, что структура таблицы не нарушена.
Учитывайте ограничение: при выгрузке табличного документа в Excel объединённые ячейки переносятся как объединённые, а разъединённые — как отдельные. Если документ дальше обрабатывается в Excel, заранее решите, какая структура удобнее получателю.
Как проверить результат
Ячейки разделены, текст в левой верхней, границы отображаются корректно
Область не изменилась — ячейка не была объединена или неверно выделена
Все строки таблицы выровнены, колонки не смещены
Строки «плывут» — забыли объединить ячейки в соседних строках после добавления колонки
Свойство Объединенная = Ложь после вызова Разъединить()
Свойство осталось Истина — неверный адрес области
Частые вопросы
Почему кнопка «Объединить/разъединить» неактивна?
Чаще всего табличный документ открыт в режиме «Только просмотр» — так по умолчанию открываются печатные формы. В типовых конфигурациях включите редактирование через «Ещё» → «Изменить». Также кнопка недоступна, если не выделена ни одна ячейка.
Можно ли разделить ячейку по диагонали?
Нет, диагональное разделение в табличном документе 1С не поддерживается. Диагональную линию можно имитировать рисунком или границей с наклоном через свойства ячейки, но две независимые области в одной ячейке создать нельзя.
Как разделить ФИО из одной колонки на три?
Штатной функции нет. Для разовой задачи скопируйте данные в Excel и используйте «Текст по столбцам». Для регулярной обработки напишите процедуру со встроенной функцией СтрРазделить(), которая разбирает строку по пробелам и записывает части в отдельные поля.
Сохранится ли разделение при выгрузке в Excel?
Да. Табличный документ выгружается в Excel с сохранением структуры: разъединённые ячейки станут отдельными, объединённые — объединёнными. Учтите, что сложное форматирование (некоторые рамки, заливка) может передаваться с отличиями.
Можно ли разделить ячейку в табличной части документа на форме?
Нет. Табличная часть на форме — это таблица данных с фиксированным набором колонок, а не табличный документ. «Разделить» колонку можно только на уровне конфигурации: добавив новый реквизит в табличную часть и перенастроив форму.
Что делать, если после разъединения пропали границы ячеек?
Выделите нужную область и в палитре свойств задайте линии границ заново (например, «Тонкая» для всех сторон). При разъединении форматирование исходной объединённой области не всегда корректно распространяется на каждую из получившихся ячеек.
Что важно запомнить
Разъединить в 1С можно только ранее объединённую ячейку — вручную кнопкой на панели инструментов или программно методом Разъединить(). Обычную ячейку «делят» добавлением колонок или строк в макете с объединением лишних ячеек. Для разбора текста внутри ячейки используйте Excel или функции СтрРазделить() — штатного «текста по столбцам» в 1С нет.