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