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

Документы и Печать · 11 мин

Как в 1С вставить таблицу в шаблон договора

Разбираем, как в 1С вставить таблицу в шаблон договора: макеты табличного документа, шаблоны Word, параметры и области, типичные ошибки и проверка результата.

Шаблон договора в 1С — это либо макет табличного документа, либо файл Word с параметрами, который программа заполняет данными из карточки контрагента, документа или справочника. Таблица в таком шаблоне нужна почти всегда: спецификация товаров, перечень работ, график платежей. Способ вставки зависит от того, какой тип шаблона используется в вашей конфигурации.

В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, УНФ, ЗУП) встречаются три подхода: печатная форма на основе макета табличного документа, шаблон договора в формате Word (механизм «Шаблоны договоров» или «Печать в Word») и внешние печатные формы. В первом случае таблица создаётся прямо в конфигураторе или в пользовательском макете, во втором — средствами Word с добавлением полей-параметров.

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

Как определить, какой тип шаблона используется

Прежде чем что-то менять, нужно понять, где хранится шаблон. Откройте договор или документ, из которого печатается договор, и нажмите кнопку печати. Если форма открывается как табличный документ 1С (характерная сетка ячеек, линейки, возможность редактировать ячейки) — это макет табличного документа. Если запускается Microsoft Word с готовым текстом — используется шаблон Word.

В конфигурациях с механизмом «Шаблоны договоров» (например, в 1С:УНФ или в справочнике «Договоры контрагентов» в некоторых решениях) файл шаблона хранится прямо в базе: откройте карточку договора или настройки печати и найдите ссылку на присоединённый файл формата .docx или .dot. Во внешних печатных формах шаблон находится внутри файла обработки .epf.

Если вы не уверены, спросите у администратора или посмотрите состав подменю «Печать»: пункты с пометкой «(макет)» обычно ведут на табличный документ, а пункты вида «Договор (Word)» — на внешний файл.

Форма печатиТабличный документ 1С

Шаблон — макет в конфигураторе или пользовательский макет

Форма печатиОткрывается Microsoft Word

Шаблон — файл .docx/.dot с полями-параметрами

РасположениеФайл в карточке договора или справочнике шаблонов

Редактируется пользователем без конфигуратора

РасположениеВнутри обработки .epf

Внешняя печатная форма, правится конфигуратором

Вставка таблицы в шаблон Word

Это самый распространённый сценарий для договоров. Откройте файл шаблона из карточки договора или из справочника шаблонов (обычно кнопка «Редактировать шаблон» или «Открыть файл»). Установите курсор в место, где должна быть таблица, и вставьте её стандартной командой Word: вкладка «Вставка» → «Таблица». Задайте нужное число строк и столбцов — для спецификации обычно это шапка с колонками «№», «Наименование», «Количество», «Цена», «Сумма» и одна-две строки под данные.

Чтобы 1С подставила данные в ячейки, в них нужно вписать поля-параметры. Синтаксис зависит от конфигурации: чаще всего используются конструкции вида {v8 ИмяПараметра} или обычные поля слияния DOCVARIABLE/MERGEFIELD. Точный список доступных параметров смотрите в описании механизма печати вашей конфигурации — обычно рядом с кнопкой редактирования шаблона есть ссылка «Список доступных полей» или подобная.

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

Таблица в макете табличного документа

Если договор печатается как табличный документ, шаблон хранится в конфигураторе. Откройте конфигуратор, найдите нужный макет (обычно в ветке «Общие макеты» или в макетах конкретного документа/справочника), откройте его двойным щелчком. Макет представляет собой таблицу, похожую на Excel: выделяйте ячейки, вписывайте текст, объединяйте ячейки, настраивайте границы через свойства.

Таблица спецификации в макете строится из областей. Выделите строки шапки таблицы, затем через меню «Таблица» → «Имена» → «Назначить имя» создайте область, например «ШапкаТаблицы». Аналогично создайте область «СтрокаТаблицы» для строки данных и «ПодвалТаблицы» для итогов. В ячейках, куда должны подставляться данные, установите тип заполнения «Параметр» (в свойствах ячейки) и укажите имя параметра — например, «НаименованиеТовара».

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

Порядок действий для макета табличного документа
  1. 1
    Сделайте копию базы или работайте на тестовой копии
  2. 2
    Откройте конфигуратор и найдите макет печатной формы договора
  3. 3
    Добавьте строки таблицы: шапка, строка данных, подвал
  4. 4
    Создайте именованные области для каждой части таблицы
  5. 5
    В ячейках данных установите заполнение «Параметр» и имена параметров
  6. 6
    Согласуйте имена параметров с модулем формирования печатной формы
  7. 7
    Обновите конфигурацию базы данных и проверьте печать на тестовом документе

Как связать таблицу с данными документа

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

В шаблонах Word механизм зависит от конфигурации. В решениях с конструктором печатных форм (например, в Библиотеке стандартных подсистем) табличная часть выводится автоматически, если в шаблоне правильно размечены строки-образцы. Проверьте документацию вашей конфигурации: поиск по фразе «печать в Word» или «шаблоны в формате Word» обычно даёт точный синтаксис маркеров.

Если данные берутся не из документа, а из карточки договора (например, таблица «Дополнительные условия» — реквизит с табличной частью), убедитесь, что эта табличная часть вообще передаётся в механизм печати. Не все реквизиты доступны в шаблоне по умолчанию; список доступных полей формируется кодом конфигурации.

Оформление таблицы: границы, ширина, переносы

В макете табличного документа границы настраиваются через свойства ячеек (панель свойств, раздел «Оформление» → «Границы»). Задавайте границы именно в макете, а не вручную после печати: ручная правка слетит при следующем формировании. Для длинных наименований включите в свойствах ячейки перенос текста и автоотметку высоты строки, иначе текст обрежется.

В Word-шаблоне используйте стандартные инструменты: «Конструктор таблиц» для границ и заливки, свойства таблицы для фиксированной ширины колонок. Учтите, что при подстановке длинных значений таблица может разъехаться на несколько страниц — включите повтор строки заголовка на каждой странице (свойства строки → «Повторять как заголовок на каждой странице»).

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

Проверка результата и типичные ошибки

После изменения шаблона сформируйте договор из тестового документа, содержащего несколько строк табличной части, длинные наименования и пустые необязательные поля. Сверьте: все ли строки выведены, совпадают ли суммы с документом, не обрезан ли текст, корректно ли выглядят пустые значения (лучше пустая ячейка, чем слово «НЕОПРЕДЕЛЕНО» или ноль).

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

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

Количество строк в напечатанной таблице
Норма

Совпадает с числом строк в табличной части документа

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

Выведена только первая строка или лишние пустые строки

Значения в ячейках
Норма

Данные из документа, пустые поля — пустые ячейки

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

Пусто при заполненных данных, служебные значения, нули

Вёрстка
Норма

Текст не обрезан, таблица не разъезжается

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

Обрезанные наименования, съехавшие колонки

Повторная печать
Норма

Шаблон формируется стабильно у разных пользователей

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

Ошибки у части пользователей — проблема прав или кэша

Альтернативы и ограничения

Если править конфигурацию нельзя (облачная 1С, отсутствие прав, конфигурация на поддержке), рассмотрите пользовательские макеты: во многих типовых конфигурациях макет печатной формы можно отредактировать прямо из режима предприятия через «Печать» → «Изменить макет» или аналогичную команду. Таблица там редактируется теми же средствами табличного документа, но без конфигуратора и без риска потери при обновлении.

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

Итог

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

Сначала определите тип шаблона: табличный документ правится в конфигураторе через области и параметры, Word-шаблон — средствами Word с полями-параметрами. Имена параметров должны совпадать с кодом печати, изменения проверяются на тестовых данных с длинными значениями, а перед правками всегда сохраняется копия шаблона.

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

Можно ли вставить таблицу в шаблон договора без конфигуратора?

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

Таблица в Word-шаблоне выводит только одну строку товаров. Что делать?

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

Где взять список доступных полей для подстановки в шаблон?

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

После обновления конфигурации таблица в договоре пропала. Почему?

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

Как в таблице договора вывести итоговую сумму прописью?

Сумма прописью формируется кодом печатной формы и передаётся в шаблон отдельным параметром. В макете табличного документа добавьте в подвал ячейку с этим параметром; в Word-шаблоне вставьте соответствующее поле под таблицей. Сам шаблон число в пропись не преобразует.