Документы и Печать · 11 мин
Как в 1С вставить таблицу в шаблон договора
Разбираем, как в 1С вставить таблицу в шаблон договора: макеты табличного документа, шаблоны Word, параметры и области, типичные ошибки и проверка результата.
Шаблон договора в 1С — это либо макет табличного документа, либо файл Word с параметрами, который программа заполняет данными из карточки контрагента, документа или справочника. Таблица в таком шаблоне нужна почти всегда: спецификация товаров, перечень работ, график платежей. Способ вставки зависит от того, какой тип шаблона используется в вашей конфигурации.
В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, УНФ, ЗУП) встречаются три подхода: печатная форма на основе макета табличного документа, шаблон договора в формате Word (механизм «Шаблоны договоров» или «Печать в Word») и внешние печатные формы. В первом случае таблица создаётся прямо в конфигураторе или в пользовательском макете, во втором — средствами Word с добавлением полей-параметров.
Ниже разобраны оба сценария с конкретными действиями, проверкой результата и типичными ошибками. Перед любыми изменениями сделайте копию шаблона или работайте на тестовой базе: испорченный макет может сломать печать договоров у всех пользователей.
Как определить, какой тип шаблона используется
Прежде чем что-то менять, нужно понять, где хранится шаблон. Откройте договор или документ, из которого печатается договор, и нажмите кнопку печати. Если форма открывается как табличный документ 1С (характерная сетка ячеек, линейки, возможность редактировать ячейки) — это макет табличного документа. Если запускается Microsoft Word с готовым текстом — используется шаблон Word.
В конфигурациях с механизмом «Шаблоны договоров» (например, в 1С:УНФ или в справочнике «Договоры контрагентов» в некоторых решениях) файл шаблона хранится прямо в базе: откройте карточку договора или настройки печати и найдите ссылку на присоединённый файл формата .docx или .dot. Во внешних печатных формах шаблон находится внутри файла обработки .epf.
Если вы не уверены, спросите у администратора или посмотрите состав подменю «Печать»: пункты с пометкой «(макет)» обычно ведут на табличный документ, а пункты вида «Договор (Word)» — на внешний файл.
Шаблон — макет в конфигураторе или пользовательский макет
Шаблон — файл .docx/.dot с полями-параметрами
Редактируется пользователем без конфигуратора
Внешняя печатная форма, правится конфигуратором
Вставка таблицы в шаблон Word
Это самый распространённый сценарий для договоров. Откройте файл шаблона из карточки договора или из справочника шаблонов (обычно кнопка «Редактировать шаблон» или «Открыть файл»). Установите курсор в место, где должна быть таблица, и вставьте её стандартной командой Word: вкладка «Вставка» → «Таблица». Задайте нужное число строк и столбцов — для спецификации обычно это шапка с колонками «№», «Наименование», «Количество», «Цена», «Сумма» и одна-две строки под данные.
Чтобы 1С подставила данные в ячейки, в них нужно вписать поля-параметры. Синтаксис зависит от конфигурации: чаще всего используются конструкции вида {v8 ИмяПараметра} или обычные поля слияния DOCVARIABLE/MERGEFIELD. Точный список доступных параметров смотрите в описании механизма печати вашей конфигурации — обычно рядом с кнопкой редактирования шаблона есть ссылка «Список доступных полей» или подобная.
Для табличных частей (список товаров из документа) одной строки с полями недостаточно: строки должны размножаться по числу позиций. В типовых механизмах это решается специальными маркерами начала и конца табличной части либо через конструктор печатной формы. Если ваша конфигурация не поддерживает вывод табличных частей в Word-шаблон, таблица заполнится только первой строкой — это ограничение, а не ошибка в шаблоне.
Таблица в макете табличного документа
Если договор печатается как табличный документ, шаблон хранится в конфигураторе. Откройте конфигуратор, найдите нужный макет (обычно в ветке «Общие макеты» или в макетах конкретного документа/справочника), откройте его двойным щелчком. Макет представляет собой таблицу, похожую на Excel: выделяйте ячейки, вписывайте текст, объединяйте ячейки, настраивайте границы через свойства.
Таблица спецификации в макете строится из областей. Выделите строки шапки таблицы, затем через меню «Таблица» → «Имена» → «Назначить имя» создайте область, например «ШапкаТаблицы». Аналогично создайте область «СтрокаТаблицы» для строки данных и «ПодвалТаблицы» для итогов. В ячейках, куда должны подставляться данные, установите тип заполнения «Параметр» (в свойствах ячейки) и укажите имя параметра — например, «НаименованиеТовара».
Обратите внимание: изменение макета в конфигураторе требует прав на изменение конфигурации и обновления базы. Если конфигурация на поддержке, правки макета могут затереться при обновлении — в этом случае безопаснее использовать пользовательский макет (механизм «Пользовательские макеты печатных форм», если он есть в конфигурации) или внешнюю печатную форму.
- 1Сделайте копию базы или работайте на тестовой копии
- 2Откройте конфигуратор и найдите макет печатной формы договора
- 3Добавьте строки таблицы: шапка, строка данных, подвал
- 4Создайте именованные области для каждой части таблицы
- 5В ячейках данных установите заполнение «Параметр» и имена параметров
- 6Согласуйте имена параметров с модулем формирования печатной формы
- 7Обновите конфигурацию базы данных и проверьте печать на тестовом документе
Как связать таблицу с данными документа
Самая частая задача — вывести в договор табличную часть документа: товары из счёта, услуги из акта, этапы из графика. В макете табличного документа за это отвечает программный код в модуле менеджера печати: он в цикле обходит строки табличной части и для каждой выводит область «СтрокаТаблицы», заполняя параметры. Если вы добавили новую колонку в макет, параметр для неё нужно добавить и в код — иначе ячейка останется пустой.
В шаблонах Word механизм зависит от конфигурации. В решениях с конструктором печатных форм (например, в Библиотеке стандартных подсистем) табличная часть выводится автоматически, если в шаблоне правильно размечены строки-образцы. Проверьте документацию вашей конфигурации: поиск по фразе «печать в Word» или «шаблоны в формате Word» обычно даёт точный синтаксис маркеров.
Если данные берутся не из документа, а из карточки договора (например, таблица «Дополнительные условия» — реквизит с табличной частью), убедитесь, что эта табличная часть вообще передаётся в механизм печати. Не все реквизиты доступны в шаблоне по умолчанию; список доступных полей формируется кодом конфигурации.
Оформление таблицы: границы, ширина, переносы
В макете табличного документа границы настраиваются через свойства ячеек (панель свойств, раздел «Оформление» → «Границы»). Задавайте границы именно в макете, а не вручную после печати: ручная правка слетит при следующем формировании. Для длинных наименований включите в свойствах ячейки перенос текста и автоотметку высоты строки, иначе текст обрежется.
В Word-шаблоне используйте стандартные инструменты: «Конструктор таблиц» для границ и заливки, свойства таблицы для фиксированной ширины колонок. Учтите, что при подстановке длинных значений таблица может разъехаться на несколько страниц — включите повтор строки заголовка на каждой странице (свойства строки → «Повторять как заголовок на каждой странице»).
Проверяйте итоговый вид на реальных данных с длинными наименованиями и большим числом строк. Шаблон, красиво выглядящий на двух строках, часто ломается на сорока.
Проверка результата и типичные ошибки
После изменения шаблона сформируйте договор из тестового документа, содержащего несколько строк табличной части, длинные наименования и пустые необязательные поля. Сверьте: все ли строки выведены, совпадают ли суммы с документом, не обрезан ли текст, корректно ли выглядят пустые значения (лучше пустая ячейка, чем слово «НЕОПРЕДЕЛЕНО» или ноль).
Как проверить результат
Совпадает с числом строк в табличной части документа
Выведена только первая строка или лишние пустые строки
Данные из документа, пустые поля — пустые ячейки
Пусто при заполненных данных, служебные значения, нули
Текст не обрезан, таблица не разъезжается
Обрезанные наименования, съехавшие колонки
Шаблон формируется стабильно у разных пользователей
Ошибки у части пользователей — проблема прав или кэша
Альтернативы и ограничения
Если править конфигурацию нельзя (облачная 1С, отсутствие прав, конфигурация на поддержке), рассмотрите пользовательские макеты: во многих типовых конфигурациях макет печатной формы можно отредактировать прямо из режима предприятия через «Печать» → «Изменить макет» или аналогичную команду. Таблица там редактируется теми же средствами табличного документа, но без конфигуратора и без риска потери при обновлении.
Для сложных договоров с переменным составом таблиц (несколько спецификаций, приложения) иногда проще сформировать документ в 1С, а финальную сборку делать в Word вручную или через выгрузку. Это допустимо при небольшом количестве договоров, но при потоке документов лучше вложиться в полноценную доработку шаблона.
Что важно запомнить
Сначала определите тип шаблона: табличный документ правится в конфигураторе через области и параметры, Word-шаблон — средствами Word с полями-параметрами. Имена параметров должны совпадать с кодом печати, изменения проверяются на тестовых данных с длинными значениями, а перед правками всегда сохраняется копия шаблона.
Частые вопросы
Можно ли вставить таблицу в шаблон договора без конфигуратора?
Да, если шаблон — файл Word или если в конфигурации доступны пользовательские макеты печатных форм. В обоих случаях редактирование выполняется из режима «Предприятие». Макеты, зашитые в конфигурацию без такого механизма, без конфигуратора не изменить.
Таблица в Word-шаблоне выводит только одну строку товаров. Что делать?
Проверьте, поддерживает ли механизм печати вашей конфигурации вывод табличных частей в Word и правильно ли размечены маркеры начала и конца табличной части в шаблоне. Если механизм такой вывод не поддерживает, потребуется доработка кода печатной формы или переход на макет табличного документа.
Где взять список доступных полей для подстановки в шаблон?
Обычно рядом с функцией редактирования шаблона есть кнопка или ссылка со списком доступных параметров. Если её нет, список определяется кодом печатной формы — его может посмотреть разработчик в модуле менеджера печати соответствующего объекта.
После обновления конфигурации таблица в договоре пропала. Почему?
Если вы правили типовой макет в конфигурации на поддержке, обновление вернуло макет к исходному состоянию. Восстановите изменения из копии и в дальнейшем используйте пользовательские макеты или внешние печатные формы, чтобы правки не зависели от обновлений.
Как в таблице договора вывести итоговую сумму прописью?
Сумма прописью формируется кодом печатной формы и передаётся в шаблон отдельным параметром. В макете табличного документа добавьте в подвал ячейку с этим параметром; в Word-шаблоне вставьте соответствующее поле под таблицей. Сам шаблон число в пропись не преобразует.