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