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

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

Как объединить несколько табличных документов в один в 1С

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

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

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

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

Какие способы объединения существуют и когда какой выбрать

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

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

Сравнение способов объединения

Копирование через буфер обмена

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

Сохранение в mxl и загрузка

Удобно, когда документы формируются в разное время или в разных базах. Ограничение: форматирование сохраняется, но интерактивные расшифровки теряются.

Программное объединение (Вывести/Присоединить)

Для регулярных операций и пакетной печати. Требует права на изменение конфигурации или внешнюю обработку.

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

Самый простой способ — скопировать содержимое одного табличного документа в другой. Откройте оба документа в режиме «1С:Предприятие». В документе-источнике выделите нужную область: щёлкните левую верхнюю ячейку и протяните выделение до правой нижней, либо выделите строки целиком, щёлкая по заголовкам строк слева. Скопируйте выделение сочетанием Ctrl+C.

Перейдите в целевой документ, поставьте курсор в ячейку, начиная с которой должна располагаться вставляемая область, и нажмите Ctrl+V. Если вставка идёт под существующие данные, сначала убедитесь, что внизу достаточно пустых строк — при необходимости добавьте их через меню «Таблица».

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

Объединение через сохранение в файл mxl

Если документы формируются в разное время или приходят из других баз, удобно использовать промежуточный файл. В документе-источнике выполните «Файл — Сохранить копию» и выберите формат «Табличный документ (*.mxl)». Этот формат сохраняет структуру, форматирование и значения без потерь.

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

Формат mxl также удобен для архивации: если итоговый документ нужно будет пересобрать, исходники в mxl позволят сделать это без повторного формирования отчётов.

Программное объединение: методы Вывести и Присоединить

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

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

В примере каждый следующий документ выводится под предыдущим, а между ними вставляется горизонтальный разделитель страниц, чтобы при печати каждый документ начинался с нового листа. Вместо разделителя можно использовать метод НачатьАвтогруппировкуСтрок или просто пустую строку-отступ, если непрерывный вывод допустим.

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

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

Главная проблема склеенных документов — некорректная разбивка на страницы. Часть таблицы может оказаться на одном листе, а продолжение — на другом, шапки при этом теряются. Чтобы этого избежать, управляйте разрывами явно.

Порядок действий при программной склейке
  1. 1
    Создайте итоговый ТабличныйДокумент и задайте ему параметры страницы: ориентацию, поля, масштаб.
  2. 2
    Для каждого источника получите область и выведите её методом Вывести.
  3. 3
    После каждого документа (кроме последнего) вызовите ВывестиГоризонтальныйРазделительСтраниц.
  4. 4
    Установите Итоговый.ПовторятьПриПечатиСтроки, если нужен сквозной колонтитул-шапка.
  5. 5
    Откройте предварительный просмотр и проверьте разбивку на страницы перед печатью.

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

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

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

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

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

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

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

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

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

Итоговые суммы каждого блока
Норма

Совпадают с исходными документами

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

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

Разбивка на страницы в предпросмотре
Норма

Каждый документ начинается с нового листа, таблицы не разорваны

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

Шапка на одном листе, данные на другом

Ширина колонок
Норма

Данные читаемы, текст не обрезан

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

Часть значений скрыта за границей ячейки

Если документ предназначен для печати, обязательно напечатайте пробную страницу или сохраните в PDF и просмотрите целиком. Экранное отображение в 1С не всегда совпадает с печатным, особенно при нестандартных полях и масштабе.

Итог

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

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

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

Можно ли объединить табличные документы из разных баз 1С?

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

Как объединить документы, если у них разное количество колонок?

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

Почему после копирования пропало оформление ячеек?

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

Как вставить разрыв страницы между объединёнными документами?

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

Сохранится ли возможность редактирования после объединения?

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

Можно ли объединить отчёты СКД, не выводя их заново?

Отчёт на СКД сначала нужно вывести в табличный документ — это происходит автоматически при формировании. Дальше полученные табличные документы объединяются стандартно через Вывести. Учтите, что интерактивная расшифровка в склеенном документе работать не будет, только в исходных отчётах.