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