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

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

Как создать шаблон документа в 1С

Как создать шаблон документа в 1С: макеты печатных форм, шаблоны в конфигураторе и пользовательском режиме, заполнение параметров, проверка результата и типичные ошибки.

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

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

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

Какие виды шаблонов существуют в 1С

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

Второй вид — пользовательские шаблоны договоров и документов, которые встречаются в типовых решениях (например, шаблоны договоров в «1С:Управление нашей фирмой» или «1С:Бухгалтерия»). Это файлы Word с переменными вида [НомерДоговора], которые программа заменяет данными из карточки контрагента или сделки.

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

Создание шаблона в пользовательском режиме

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

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

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

Шаблон договора в пользовательском режиме
  1. 1
    Откройте справочник шаблонов договоров или печатных форм в разделе настроек
  2. 2
    Создайте новый шаблон и укажите, к какому виду документов он привязан
  3. 3
    Подготовьте файл Word и вставьте переменные из списка доступных полей
  4. 4
    Сохраните шаблон и сформируйте документ на тестовых данных
  5. 5
    Проверьте, что все переменные заполнились, и исправьте ошибочные места

Создание макета в конфигураторе

Когда пользовательских средств недостаточно, макет создаётся в конфигураторе. Откройте конфигурацию, найдите нужный вид документа в дереве объектов, раскройте ветку «Макеты» и добавьте новый макет типа «Табличный документ». Конструктор предложит разметить области: шапку, строку табличной части, подвал.

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

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

bsl
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм) Экспорт
	Макет = ПолучитьМакет("ПФ_MXL_Счет");
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
	ОбластьШапка.Параметры.НомерДокумента = ДанныеДокумента.Номер;
	ТабличныйДокумент.Вывести(ОбластьШапка);
КонецПроцедуры

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

Заполнение параметров и областей макета

Логика макета строится на именованных областях. Область — это прямоугольный диапазон ячеек, которому присвоено имя: «Шапка», «СтрокаТовары», «Подвал». Программа получает область по имени, заполняет её параметры и выводит в итоговый документ. Если имя области в коде не совпадает с именем в макете, возникнет ошибка «Область не найдена».

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

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

Проверка готового шаблона

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

Обязательно проверьте граничные случаи: документ с одной строкой и с несколькими страницами строк, длинное наименование контрагента, отсутствие необязательного реквизита (например, договора). Именно на таких данных всплывают разрывы страниц, обрезанный текст и пустые строки.

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

Контрольные точки

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

Все параметры заполнены
Норма

Каждое поле содержит данные документа

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

Пустые квадратные скобки или пустые места в форме

Табличная часть
Норма

Все строки выведены, итоги сходятся с документом

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

Строки пропущены или итог не совпадает

Разбивка на страницы
Норма

Шапка и подвал на месте, строки не разорваны

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

Подвал уехал на отдельный лист, строка разрезана

Доступность формы
Норма

Форма есть в меню печати у обычного пользователя

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

Форма видна только администратору

Типичные ошибки и ограничения

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

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

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

Типичные ошибки
01
Правка типового макета в конфигурации на поддержке — изменения теряются при обновлении
02
Опечатка в имени параметра — поле остаётся пустым без сообщения об ошибке
03
Тестирование только на коротком документе — на многостраничной форме ломается разбивка
04
Хранение файла шаблона локально — у коллег шаблон недоступен
05
Изменение имён областей без правки кода — ошибка «Область не найдена» при печати

Как выбрать подходящий способ

Выбор способа зависит от задачи и от того, кто будет поддерживать шаблон дальше. Разовая правка надписи или логотипа — пользовательское редактирование макета. Договор с переменными реквизитами — шаблон Word в справочнике шаблонов. Новая печатная форма с расчётами — внешняя печатная форма или макет в расширении конфигурации.

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

Маршрут решения

Как выбрать действие

Нужно поправить текст или логотип в типовой формеОтредактируйте макет в пользовательском режиме через команду изменения макета
Нужен договор с подстановкой реквизитов из карточкиСоздайте шаблон Word с переменными в справочнике шаблонов
Нужна новая форма с расчётом итогов и циклом по строкамСоздайте внешнюю печатную форму или макет в расширении конфигурации
Конфигурация изменённая и обновляется вручнуюМакет можно добавить прямо в конфигурацию, но зафиксируйте изменения для следующего обновления
Итог

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

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

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

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

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

Почему в печатной форме пустое поле вместо значения?

Чаще всего имя параметра в макете не совпадает с именем в коде процедуры печати, либо в запросе не выбрано нужное поле. Сверьте имена посимвольно и проверьте, что реквизит заполнен в самом документе.

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

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

Как сделать шаблон в формате Word, а не табличный документ?

Используйте макет типа «Макет офисного документа» (docx) или справочник шаблонов договоров. В файле Word расставляются закладки или переменные, которые 1С заменяет данными при формировании документа. Это удобно для договоров со сложным форматированием.

Один шаблон можно использовать для нескольких видов документов?

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

Как вывести сумму прописью в шаблоне?

Во встроенном языке 1С есть средства формирования числа прописью — значение формируется в коде процедуры печати и передаётся в параметр макета как готовая строка. В макете для этого достаточно обычного параметра.