Разработка и Конфигурация · 10 мин
Табличный документ в 1С: что это и как с ним работать
Что такое табличный документ в 1С, где он используется, как вывести в него данные программно и избежать типичных ошибок при формировании печатных форм.
Табличный документ — это встроенный объект платформы 1С:Предприятие, который представляет данные в виде прямоугольной сетки ячеек, похожей на лист электронной таблицы. В него выводятся отчёты, печатные формы документов, прайс-листы и любые другие представления данных, которые пользователь должен увидеть на экране, распечатать или сохранить в файл. Практически каждая кнопка «Печать» в типовой конфигурации в итоге формирует именно табличный документ.
Важно понимать: табличный документ — это не источник данных и не документ в смысле учётного документа 1С (накладной, счёта). Это «холст» для отображения: программа заполняет ячейки текстом, числами, оформлением, а дальше пользователь решает, что с результатом делать — просмотреть, напечатать, сохранить в PDF или Excel, отправить по почте.
Объект существует в двух ипостасях: как элемент интерфейса (поле табличного документа на форме, в котором пользователь видит результат) и как программный объект ТабличныйДокумент, который разработчик создаёт и заполняет в коде. Между ними есть связь, но это разные сущности, и путаница между ними — частая причина ошибок у начинающих.
Где встречается табличный документ в работе пользователя
Даже если вы не разработчик, вы сталкиваетесь с табличным документом ежедневно. Когда бухгалтер нажимает «Печать» на счёте на оплату — открывается табличный документ с готовой формой. Когда менеджер формирует отчёт по продажам — результат тоже выводится в табличный документ (в современных конфигурациях отчёты на СКД по умолчанию выводятся именно туда).
Характерные признаки того, что перед вами табличный документ: видна сетка ячеек, доступны кнопки масштабирования, разбиения на страницы, сохранения в файл. В режиме просмотра ячейки нельзя редактировать напрямую — документ защищён от случайных изменений, что важно для печатных форм.
Есть строки и колонки, объединённые ячейки, рамки
Есть кнопки печати, сохранения в PDF/Excel, масштаба
Ячейки не редактируются двойным щелчком — это норма
Структура: ячейки, области, макеты
Табличный документ состоит из ячеек, адресуемых по имени или по координатам «строка–колонка» (например, R5C3). Ячейки можно объединять, задавать им шрифт, цвет, границы, выравнивание, формат вывода чисел и дат. Группы ячеек объединяются в именованные области — «Шапка», «Строка», «Подвал» — что упрощает программное заполнение.
Ручное заполнение каждой ячейки кодом было бы крайне трудоёмким, поэтому на практике используют макеты. Макет табличного документа — это заготовка, которую разработчик рисует в конфигураторе: статичный текст, рамки и параметры вроде [НомерДокумента]. Программа получает макет, выводит из него области по очереди и подставляет в параметры реальные данные.
Как программно сформировать табличный документ
Типовой алгоритм выглядит так: создаётся новый объект, из макета последовательно получаются области, в параметры областей записываются данные, области выводятся в документ. После заполнения задаются итоговые свойства — ориентация страницы, поля, заголовок.
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетСчета");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = Номер;
ОбластьШапка.Параметры.Контрагент = Контрагент;
ТабДок.Вывести(ОбластьШапка);
Для Каждого СтрокаТовара Из Товары Цикл
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьСтрока.Параметры.Заполнить(СтрокаТовара);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
- 1Создайте макет табличного документа в конфигураторе и разметьте области: шапку, строку, подвал
- 2В коде создайте объект Новый ТабличныйДокумент и получите макет через ПолучитьМакет
- 3Выведите области по порядку, заполняя параметры данными документа
- 4Задайте параметры страницы: ориентацию, поля, колонтитулы
- 5Покажите результат пользователю через Показать() или передайте в поле табличного документа на форме
Сохранение и выгрузка в файлы
Одно из главных достоинств табличного документа — встроенная возможность сохранения в популярные форматы без сторонних библиотек. Метод Записать() принимает имя файла и тип: ТипФайлаТабличногоДокумента.PDF, XLSX, ODS, HTML, MXL (родной формат 1С), TXT и другие.
Формат MXL стоит использовать для обмена между базами 1С и для хранения шаблонов: он сохраняет всё оформление и параметры. Для отправки контрагенту лучше подходит PDF — получатель не сможет случайно изменить содержимое. Excel удобен, когда получатель будет дальше обрабатывать данные, но помните: сложные объединённые ячейки и картинки при выгрузке в Excel могут искажаться.
Выбор формата сохранения
Для отправки и архива: сохраняет вид документа, защищён от правок. Не подходит для дальнейшей обработки данных
Когда получатель будет анализировать данные в Excel. Ограничение: возможны искажения сложной вёрстки
Родной формат 1С для хранения и обмена между базами. Вне 1С не открывается
Для публикации или просмотра в браузере. Оформление может отличаться от печатного вида
Табличный документ и отчёты на СКД
В современных конфигурациях большинство отчётов строится на системе компоновки данных (СКД), а не ручным выводом областей. СКД сама формирует результат и выводит его в табличный документ. Это важно понимать при доработках: если отчёт построен на СКД, править нужно схему компоновки и настройки, а не искать код с ТабДок.Вывести().
Ручное формирование табличного документа остаётся актуальным для печатных форм с жёсткой вёрсткой (счета, акты, ТОРГ-12), где важно точное расположение каждого элемента, и для нестандартных выгрузок. Выбор подхода — вопрос требований к результату.
Что выбрать для вывода данных
Типичные ошибки и ограничения
Первая частая проблема — обращение к параметру, которого нет в области макета. Если в макете параметр называется НомерДок, а в коде написано Параметры.НомерДокумента, платформа выдаст ошибку либо молча оставит пустое место, в зависимости от контекста. Всегда сверяйте имена параметров в макете и в коде.
Вторая группа ошибок связана с производительностью. Вывод десятков тысяч строк по одной области в цикле работает медленно и потребляет много памяти. Для больших объёмов используйте СКД или выгружайте данные порциями. Также помните, что табличный документ целиком хранится в памяти: попытка сформировать отчёт на сотни тысяч строк может привести к нехватке памяти на сервере.
Как проверить результат
После формирования печатной формы проверьте три вещи: данные (совпадают ли суммы и реквизиты с исходным документом), вёрстку (не «разъехались» ли строки при переносе на страницы, корректно ли выглядит предпросмотр печати) и сохранение (открывается ли файл в целевой программе — PDF-просмотрщике или Excel).
Контрольные точки
Суммы, номера и реквизиты совпадают с документом-источником
Пустые поля или данные из другого документа — проверяйте заполнение параметров
Строки не обрезаны, итоги на своём месте
Шапка оторвана от таблицы, строки разорваны пополам — настройте повтор заголовка и защиту от разрыва
PDF/Excel открывается и выглядит как в предпросмотре
Искажённая вёрстка — упростите объединения ячеек или смените формат
Что важно запомнить
Табличный документ — универсальный объект 1С для отображения отчётов и печатных форм. Он заполняется из макета с параметрами или формируется СКД, а результат можно просмотреть, напечатать и сохранить в PDF, Excel или MXL. Главные правила: сверять имена параметров, не выводить огромные объёмы вручную и проверять результат в предпросмотре.
Часто задаваемые вопросы
Чем табличный документ отличается от таблицы значений?
Таблица значений — это невидимая структура данных в памяти для обработки: строки и колонки без оформления. Табличный документ — это визуальное представление с ячейками, рамками и шрифтами, предназначенное для показа пользователю и печати. Часто данные сначала собирают в таблицу значений, а затем выводят в табличный документ.
Можно ли редактировать табличный документ вручную?
Да, если снять флаг «Только просмотр» у поля табличного документа — тогда ячейки можно править как в Excel. Но для печатных форм это обычно отключено намеренно, чтобы исключить случайное изменение официальных документов. Редактирование уместно в специальных формах ввода, где табличный документ используется как инструмент заполнения.
Как вывести картинку или логотип в табличный документ?
В макете добавьте область с рисунком и укажите для него картинку из общей картинки конфигурации или загрузите программно через объект Картинка из файла или двоичных данных. Программно картинку можно подставить в область рисунка табличного документа перед его выводом.
Почему при сохранении в Excel «ломается» вёрстка?
Excel воспринимает документ как простую сетку ячеек: сложные объединения, вложенные рамки и рисунки не всегда переносятся корректно. Если важен точный внешний вид — сохраняйте в PDF. Если нужен Excel — упрощайте макет: минимум объединённых ячеек, простые границы.
Что такое MXL-файл и чем его открыть?
MXL — родной формат сохранения табличных документов 1С. Открывается только платформой 1С:Предприятие (через «Файл — Открыть» в режиме предприятия или в конфигураторе). Он полностью сохраняет оформление и удобен для передачи печатных форм между пользователями 1С, но бесполезен вне экосистемы.
Можно ли сформировать табличный документ без макета?
Да: создайте объект, получите нужную область через метод Область() с координатами и заполняйте текст и оформление ячеек напрямую в коде. Такой подход подходит для простых выгрузок, но для печатных форм с фирменным оформлением макет удобнее — вёрстку можно менять без правки кода.