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

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

Табличный документ в 1С: что это и как с ним работать

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

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

Важно понимать: табличный документ — это не источник данных и не документ в смысле учётного документа 1С (накладной, счёта). Это «холст» для отображения: программа заполняет ячейки текстом, числами, оформлением, а дальше пользователь решает, что с результатом делать — просмотреть, напечатать, сохранить в PDF или Excel, отправить по почте.

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

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

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

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

Внешний видСетка ячеек с данными

Есть строки и колонки, объединённые ячейки, рамки

Доступные действияПечать и сохранение

Есть кнопки печати, сохранения в PDF/Excel, масштаба

РедактированиеОграничено или запрещено

Ячейки не редактируются двойным щелчком — это норма

Структура: ячейки, области, макеты

Табличный документ состоит из ячеек, адресуемых по имени или по координатам «строка–колонка» (например, R5C3). Ячейки можно объединять, задавать им шрифт, цвет, границы, выравнивание, формат вывода чисел и дат. Группы ячеек объединяются в именованные области — «Шапка», «Строка», «Подвал» — что упрощает программное заполнение.

Ручное заполнение каждой ячейки кодом было бы крайне трудоёмким, поэтому на практике используют макеты. Макет табличного документа — это заготовка, которую разработчик рисует в конфигураторе: статичный текст, рамки и параметры вроде [НомерДокумента]. Программа получает макет, выводит из него области по очереди и подставляет в параметры реальные данные.

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

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

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

Макет = ПолучитьМакет("МакетСчета");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");

ОбластьШапка.Параметры.НомерДокумента = Номер;

ОбластьШапка.Параметры.Контрагент = Контрагент;

ТабДок.Вывести(ОбластьШапка);

Для Каждого СтрокаТовара Из Товары Цикл

ОбластьСтрока = Макет.ПолучитьОбласть("Строка");

ОбластьСтрока.Параметры.Заполнить(СтрокаТовара);

ТабДок.Вывести(ОбластьСтрока);

КонецЦикла;

ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;

Порядок формирования печатной формы
  1. 1
    Создайте макет табличного документа в конфигураторе и разметьте области: шапку, строку, подвал
  2. 2
    В коде создайте объект Новый ТабличныйДокумент и получите макет через ПолучитьМакет
  3. 3
    Выведите области по порядку, заполняя параметры данными документа
  4. 4
    Задайте параметры страницы: ориентацию, поля, колонтитулы
  5. 5
    Покажите результат пользователю через Показать() или передайте в поле табличного документа на форме

Сохранение и выгрузка в файлы

Одно из главных достоинств табличного документа — встроенная возможность сохранения в популярные форматы без сторонних библиотек. Метод Записать() принимает имя файла и тип: ТипФайлаТабличногоДокумента.PDF, XLSX, ODS, HTML, MXL (родной формат 1С), TXT и другие.

Формат MXL стоит использовать для обмена между базами 1С и для хранения шаблонов: он сохраняет всё оформление и параметры. Для отправки контрагенту лучше подходит PDF — получатель не сможет случайно изменить содержимое. Excel удобен, когда получатель будет дальше обрабатывать данные, но помните: сложные объединённые ячейки и картинки при выгрузке в Excel могут искажаться.

Выбор формата сохранения

PDF

Для отправки и архива: сохраняет вид документа, защищён от правок. Не подходит для дальнейшей обработки данных

XLSX

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

MXL

Родной формат 1С для хранения и обмена между базами. Вне 1С не открывается

HTML

Для публикации или просмотра в браузере. Оформление может отличаться от печатного вида

Табличный документ и отчёты на СКД

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

Ручное формирование табличного документа остаётся актуальным для печатных форм с жёсткой вёрсткой (счета, акты, ТОРГ-12), где важно точное расположение каждого элемента, и для нестандартных выгрузок. Выбор подхода — вопрос требований к результату.

Маршрут решения

Что выбрать для вывода данных

Нужна печатная форма с точной вёрсткой по образцуИспользуйте макет табличного документа и программный вывод областей
Нужен аналитический отчёт с группировками и отборамиИспользуйте СКД — результат сам выведется в табличный документ
Нужна простая выгрузка списка в ExcelЗаполните табличный документ в цикле и сохраните через Записать() в XLSX

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

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

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

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

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

После формирования печатной формы проверьте три вещи: данные (совпадают ли суммы и реквизиты с исходным документом), вёрстку (не «разъехались» ли строки при переносе на страницы, корректно ли выглядит предпросмотр печати) и сохранение (открывается ли файл в целевой программе — PDF-просмотрщике или Excel).

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

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

Данные в форме
Норма

Суммы, номера и реквизиты совпадают с документом-источником

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

Пустые поля или данные из другого документа — проверяйте заполнение параметров

Разбиение на страницы
Норма

Строки не обрезаны, итоги на своём месте

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

Шапка оторвана от таблицы, строки разорваны пополам — настройте повтор заголовка и защиту от разрыва

Сохранённый файл
Норма

PDF/Excel открывается и выглядит как в предпросмотре

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

Искажённая вёрстка — упростите объединения ячеек или смените формат

Итог

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

Табличный документ — универсальный объект 1С для отображения отчётов и печатных форм. Он заполняется из макета с параметрами или формируется СКД, а результат можно просмотреть, напечатать и сохранить в PDF, Excel или MXL. Главные правила: сверять имена параметров, не выводить огромные объёмы вручную и проверять результат в предпросмотре.

Часто задаваемые вопросы

Чем табличный документ отличается от таблицы значений?

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

Можно ли редактировать табличный документ вручную?

Да, если снять флаг «Только просмотр» у поля табличного документа — тогда ячейки можно править как в Excel. Но для печатных форм это обычно отключено намеренно, чтобы исключить случайное изменение официальных документов. Редактирование уместно в специальных формах ввода, где табличный документ используется как инструмент заполнения.

Как вывести картинку или логотип в табличный документ?

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

Почему при сохранении в Excel «ломается» вёрстка?

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

Что такое MXL-файл и чем его открыть?

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

Можно ли сформировать табличный документ без макета?

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