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

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

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

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

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

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

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

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

Под «шаблоном документа» в 1С понимают несколько разных сущностей, и путаница между ними — частая причина ошибок. Основные варианты: макет табличного документа в конфигураторе, макет на основе внешнего файла (Word, Excel, HTML), шаблон печатной формы в пользовательском режиме и макет СКД для отчётов.

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

Сравнение вариантов

Макет табличного документа в конфигураторе

Подходит для сложных форм с итогами, группировками и условным выводом. Требует прав доступа к конфигуратору и аккуратности при обновлениях.

Макет на основе Word/Excel

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

Редактор печатных форм в типовой конфигурации

Подходит для мелких правок типовых форм без изменения конфигурации. Не даёт полного контроля над логикой вывода.

Подготовка: права, копия базы и анализ типовой формы

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

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

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

Откройте конфигуратор, найдите нужный документ в дереве конфигурации, раскройте ветку «Макеты» и добавьте новый макет с типом «Табличный документ». Задайте понятное имя, например «МакетАкта» или «ПФ_СчетНаОплату» — по этому имени макет будет вызываться из кода.

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

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

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

Вывод макета кодом

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

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

bsl
Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("МакетАкта");
ТабДок = Новый ТабличныйДокумент;
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = ДанныеДокумента.Номер;
ОбластьШапка.Параметры.Контрагент = ДанныеДокумента.Контрагент;
ТабДок.Вывести(ОбластьШапка);
Для Каждого СтрокаТовара Из ДанныеДокумента.Товары Цикл
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    ОбластьСтрока.Параметры.Заполнить(СтрокаТовара);
    ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;

Обратите внимание на метод Заполнить: он подставляет в параметры области одноимённые поля из переданной структуры или строки таблицы. Это удобно, если имена параметров макета совпадают с именами реквизитов — код становится короче и устойчивее к добавлению новых полей.

Подключение шаблона через механизм печати

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

В собственной или доработанной конфигурации команда печати добавляется в модуль менеджера документа: в процедуре ДобавитьКомандыПечати регистрируется новая команда, а в процедуре Печать по её идентификатору выполняется вывод макета. После обновления конфигурации кнопка появится в меню «Печать» формы документа.

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

Как выбрать способ подключения

Конфигурация типовая, на поддержке, менять её нельзяИспользуйте внешнюю печатную форму через «Дополнительные отчеты и обработки»
Конфигурация доработанная или собственнаяДобавьте команду печати в модуль менеджера документа
Нужна только небольшая правка типовой формыПопробуйте встроенный редактор печатных форм в пользовательском режиме
Форму должен править пользователь без программистаИспользуйте макет на основе документа Word

Шаблоны на основе Word и пользовательские печатные формы

Макет типа «Двоичные данные» или «ActiveDocument» позволяет использовать файл Word как шаблон. В документе Word расставляются закладки или поля слияния, а код 1С открывает файл, подставляет значения и сохраняет результат. Такой подход удобен для договоров, где юристы часто меняют текст: правки вносятся в Word-файл без участия программиста.

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

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

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

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

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

Подстановка параметров
Норма

Все поля заполнены данными документа, нет пустых квадратов и текста параметров

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

В форме видны фигурные скобки или пустые места — имена параметров не совпадают

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

Строки выводятся все, итоги — после последней строки, перенос на страницы корректный

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

Часть строк теряется, итоги попадают в середину таблицы

Форматирование
Норма

Границы, шрифты и ширина колонок совпадают с макетом при печати и в предпросмотре

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

Таблица «расползается» по ширине листа, текст обрезается

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

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

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

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

Чем макет отличается от печатной формы?

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

Как добавить логотип или подпись в шаблон?

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

Что делать, если при обновлении конфигурации мой макет затёрся?

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

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

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

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

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

Итог

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

Шаблон документа в 1С — это макет с областями и параметрами, который заполняется кодом через ПолучитьМакет, ПолучитьОбласть и Вывести. Для типовых конфигураций на поддержке используйте внешние печатные формы, расширения или встроенный редактор макетов, чтобы не потерять доработки при обновлении. Всегда проверяйте совпадение имён параметров и тестируйте форму на документах с разным объёмом данных.