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