Разработка и Конфигурация · 11 мин
Как объединить ячейки в макете 1С
Как объединить ячейки в макете 1С: работа в конструкторе макета, свойство «Объединение», программное объединение через Объединить(), типичные ошибки и проверка результата.
Объединение ячеек в макете 1С — стандартная операция при оформлении печатных форм: шапок документов, заголовков табличных частей, подписей и итоговых строк. Платформа поддерживает два способа: интерактивное объединение прямо в редакторе макета и программное объединение через метод табличного документа. Оба подхода дают одинаковый результат, но выбор зависит от того, статичен макет или формируется динамически.
Объединённые ячейки ведут себя как одна область: текст внутри них выравнивается по общим границам, а при выводе макета в табличный документ объединение сохраняется. Важно понимать, что объединение влияет только на отображение — данные в областях макета по-прежнему привязаны к параметрам и шаблонам, которые нужно заполнять корректно.
Ниже разобраны оба способа объединения, работа с параметрами внутри объединённой области, типичные ошибки и способы проверить результат до вывода печатной формы пользователю.
Где в 1С находится макет и как его открыть для редактирования
Макеты хранятся в дереве конфигурации. Чаще всего они привязаны к объектам: документам, справочникам, отчётам и обработкам. Откройте конфигуратор, найдите нужный объект, разверните ветку «Макеты» и откройте макет двойным щелчком. Если макета ещё нет, его можно создать через кнопку «Добавить» в ветке «Макеты» объекта или в ветке «Общие → Макеты» для общих макетов.
При создании макета выбирайте тип «Табличный документ» — именно этот формат поддерживает объединение ячеек, оформление границ, шрифтов и вывод на печать. Макеты типа «Схема компоновки данных» устроены иначе: там объединение задаётся через настройки ресурсов и группировок, а не прямым выделением ячеек.
После открытия макета вы увидите сетку табличного документа с именованными областями слева. Редактирование ячеек выполняется так же, как в обычной электронной таблице: выделение мышью, ввод текста, настройка свойств через палитру свойств.
Как объединить ячейки интерактивно в редакторе макета
Интерактивный способ подходит для статичных макетов, где структура известна заранее: шапки накладных, подвалы актов, постоянные заголовки. Порядок действий простой, но есть нюансы с содержимым ячеек.
- 1Откройте макет в конфигураторе и найдите нужную область
- 2Выделите диапазон ячеек мышью или с клавишей Shift
- 3Щёлкните правой кнопкой по выделению и выберите «Объединить» либо нажмите соответствующую кнопку на панели инструментов
- 4Если платформа спросит про содержимое ячеек — подтвердите, что данные не нужны, или предварительно сохраните их
- 5Введите текст или параметр в объединённую ячейку и настройте выравнивание в палитре свойств
- 6Сохраните макет и обновите конфигурацию базы данных при необходимости
Для разделения ранее объединённых ячеек используется команда «Разъединить» из того же контекстного меню. После разъединения текст остаётся в левой верхней ячейке, остальные становятся пустыми — это нормальное поведение платформы.
Если пункт «Объединить» неактивен, проверьте, что выделен именно прямоугольный диапазон из двух и более ячеек, а не одна ячейка или несвязанные области. Также команда недоступна, если включён режим отображения только имен областей без сетки — переключите вид макета.
Программное объединение ячеек через метод Объединить()
Когда печатная форма строится динамически — например, количество колонок зависит от данных документа — объединение выполняется кодом на встроенном языке. Для этого у области табличного документа вызывается метод Объединить().
ТабДок = Новый ТабличныйДокумент;
Область = ТабДок.Область("R1C1:R1C5");
Область.Объединить();
Область.Текст = "Отчёт за период";
Область.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
Альтернативный вариант — получить область через метод Область() с координатами строк и колонок: ТабДок.Область(1, 1, 1, 5). Результат идентичен. Для разъединения программно используется метод Разъединить() той же области.
Важный момент: если вы выводите макет через ПолучитьОбласть() и Вывести(), объединения, сделанные в самом макете, переносятся в результирующий табличный документ автоматически. Программное объединение нужно только тогда, когда структура формируется в рантайме и не может быть зафиксирована в макете.
ОбластьШапка = ТабДок.Область(2, 1, 2, 6);
ОбластьШапка.Объединить();
ОбластьШапка.Текст = "Сводная таблица";Параметры и шаблоны внутри объединённых ячеек
Объединённая ячейка может содержать параметр макета, например [НомерДокумента], или шаблон с несколькими параметрами: Накладная № [Номер] от [Дата]. Заполнение происходит стандартно — через Параметры области при выводе макета. Объединение не мешает подстановке значений.
Ограничение: параметр привязан к одной ячейке. Если до объединения параметры были разбросаны по нескольким ячейкам диапазона, при объединении платформа сохранит содержимое только левой верхней ячейки, остальное будет утеряно. Поэтому сначала соберите нужный шаблон в одной ячейке, потом объединяйте.
Для длинных текстов в объединённых ячейках включите свойство «Переносить» в палитре свойств, иначе текст обрежется по границе области. Также проверьте свойство «АвтоВысотаСтроки» у строки, если высота должна подстраиваться под содержимое.
Сравнение способов объединения и когда какой выбрать
Сравнение вариантов
Подходит для статичных печатных форм с фиксированной структурой. Быстро, наглядно, не требует кода. Ограничение: нельзя менять объединение в зависимости от данных
Подходит для динамических форм, где число колонок или строк зависит от данных. Требует кода и аккуратного расчёта координат областей
Альтернатива объединению: разбить макет на несколько областей разной ширины и выводить их последовательно. Гибче при сложной структуре, но сложнее в сопровождении
На практике чаще всего комбинируют: постоянные части формы (шапка, подвал, подписи) объединяют в макете, а переменные блоки формируют кодом. Такой подход упрощает поддержку — дизайн формы виден в макете целиком, а логика касается только изменяемых частей.
Типичные ошибки при объединении ячеек
Отдельная частая проблема — объединение, которое пересекает границы горизонтальных областей макета (шапки, строки, подвала). Платформа выводит каждую область отдельно, поэтому объединение должно целиком лежать внутри одной области. Если нужен визуальный блок на всю ширину формы, объединяйте ячейки внутри каждой области независимо.
Как проверить результат перед выводом пользователю
После изменения макета сформируйте печатную форму на тестовых данных. Проверьте не только внешний вид, но и поведение при печати: объединённые ячейки с длинным текстом иногда ведут себя иначе при разбиении на страницы.
Как проверить результат
Текст виден целиком, выравнивание соответствует заданному
Текст обрезан или смещён, границы области не совпадают с макетом
Значения подставляются из данных документа
Выводится имя параметра в квадратных скобках или пусто
Объединение сохраняется на всех страницах, переносы корректны
Область разрывается, текст уходит за поля страницы
Форма одинакова у разработчика и пользователя
У пользователей старый вид — не обновлена конфигурация БД
Если форма формируется программно, полезно временно вывести табличный документ через Показать() на этапе отладки — так видно результат до подключения к команде печати. Для макетов, выводимых через менеджер печати, используйте тестовый документ с максимально длинными значениями: это выявит проблемы переноса и обрезки текста.
Ограничения и альтернативные подходы
Объединение ячеек не влияет на ширину колонок: если объединённая область получается слишком узкой, сначала настройте ширину колонок макета, потом объединяйте. Обратная ситуация — объединение «на всякий случай» с запасом — приводит к смещению вёрстки при изменении данных.
Для сложных форм с повторяющимися блоками рассмотрите альтернативу: вместо одного большого макета с множеством объединений создайте набор мелких областей и собирайте форму методами Вывести() и Присоединить(). Это упрощает изменение отдельных блоков без риска сломать общую структуру.
В управляемых формах табличный документ, отображаемый на форме, поддерживает интерактивное объединение пользователем, если это не запрещено настройками. Если форма предназначена только для просмотра, установите у элемента формы свойство «ТолькоПросмотр», чтобы пользователи случайно не изменили структуру.
Что важно запомнить
Ячейки в макете 1С объединяются через контекстное меню «Объединить» или программно методом Объединить() области табличного документа. Сохраняется только содержимое левой верхней ячейки, объединение не должно пересекать границы областей макета, а результат проверяется на тестовых данных с длинными значениями.
Частые вопросы
Почему кнопка «Объединить» неактивна в макете?
Чаще всего выделена одна ячейка или несвязанный диапазон. Выделите прямоугольную область из двух и более соседних ячеек. Также проверьте, что макет открыт в режиме редактирования табличного документа, а не просмотра имен областей.
Сохранится ли объединение при выводе макета методом Вывести()?
Да. Объединения, заданные в макете, автоматически переносятся в результирующий табличный документ при выводе областей. Программно объединять повторно не требуется, если только структура не меняется динамически.
Что происходит с данными в ячейках при объединении?
Сохраняется содержимое только левой верхней ячейки диапазона. Текст и параметры из остальных ячеек удаляются. Перед объединением перенесите нужные параметры в первую ячейку или соберите их в шаблон.
Можно ли объединить ячейки в уже сформированном табличном документе?
Да, через код: получите область методом Область() с координатами и вызовите Объединить(). Если документ уже отображён на форме, изменения применятся сразу, но для надёжности выполняйте объединение до показа формы пользователю.
Как объединить ячейки по вертикали, например для многострочного заголовка колонки?
Точно так же: выделите вертикальный диапазон (например, две строки одной колонки) и выполните «Объединить». Для текста в такой ячейке задайте вертикальное положение «Центр» и включите перенос, чтобы заголовок выглядел аккуратно.
Почему после изменения макета пользователи видят старую форму?
Макет — часть конфигурации. После сохранения макета нужно обновить конфигурацию базы данных (команда «Обновить конфигурацию базы данных» в конфигураторе). Пользователям может потребоваться перезапуск сеанса.