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

Разработка и Конфигурация · 10 мин

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

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

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

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

Работа ведётся в три этапа: создаётся макет (внешний вид с областями и параметрами), затем пишется программный код заполнения параметров данными, после чего форма регистрируется и проверяется на реальном документе. Ошибка на любом этапе заметна сразу: либо форма не выводится, либо вместо значений печатаются пустые поля или имена параметров.

Что именно вы хотите создать: выбираем тип шаблона

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

Виды шаблонов в 1С

Макет печатной формы

Табличный документ с областями и параметрами. Подходит для счетов, актов, накладных, доверенностей. Требует кода заполнения.

Внешняя печатная форма (EPF)

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

Шаблон кода (.st)

Файл автоподстановки в конфигураторе: по сокращению вставляет готовый фрагмент кода. Ускоряет разработку.

Шаблон RLS

Текст запроса для ограничения доступа на уровне записей. Только для разработчиков конфигураций.

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

Создаём макет печатной формы в конфигураторе

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

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

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

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

Пишем код заполнения шаблона

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

Типовая последовательность выглядит так: ПолучитьМакет("МакетСчета") → ПолучитьОбласть("Шапка") → заполнить Параметры области из данных документа → Вывести область в табличный документ → в цикле по табличной части вывести область «СтрокаТовары» → вывести «Подвал». Для данных из запроса параметры заполняются из выборки.

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

bsl
Макет = ПолучитьМакет("МакетСчета");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = Номер;
ОбластьШапка.Параметры.Контрагент = Контрагент;
ТабДокумент.Вывести(ОбластьШапка);

Внешняя печатная форма: шаблон без изменения конфигурации

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

Готовый файл .epf подключается в режиме предприятия: «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». При регистрации укажите, к каким документам привязана форма. После этого она появится в меню «Печать» документа рядом с типовыми.

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

Шаблоны кода в конфигураторе

Второй частый сценарий — шаблоны автоподстановки. В конфигураторе откройте «Сервис → Шаблоны текста». Редактор показывает дерево шаблонов: по сокращению (например, «Если» + Ctrl+Q) платформа вставляет готовый фрагмент кода с позиционированием курсора. Можно создать свои шаблоны для типовых конструкций вашей команды.

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

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

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

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

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

Вывод формы
Норма

Табличный документ открывается без сообщений об ошибках

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

Ошибка «Макет не найден» или «Область не найдена» — проверьте имена макета и областей

Заполнение параметров
Норма

Все поля содержат данные документа

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

Пустые ячейки или текст вида [Параметр] — имя параметра в макете не совпадает с кодом

Вёрстка
Норма

Строки не обрезаны, страницы разрываются корректно

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

Текст налезает на границы, итоги уезжают на отдельный лист

Суммы
Норма

Итоги формы равны итогам документа

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

Расхождения — проверьте цикл вывода строк и отбор данных

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

Ограничения и когда нужен разработчик

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

Отдельное ограничение — работа в сервисе 1С:Фреш и подобных облачных режимах: там доступны только внешние печатные формы, прошедшие проверку, а конфигуратор недоступен. Учитывайте это при планировании доработок.

Итог

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

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

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

Можно ли создать шаблон печатной формы без конфигуратора?

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

Чем внешняя печатная форма лучше изменения типового макета?

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

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

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

Как перенести шаблоны кода .st другому разработчику?

Сохраните файл шаблонов через «Сервис → Шаблоны текста → Сохранить в файл», передайте коллеге файл .st, а он подключит его через «Загрузить из файла» или укажет в настройках конфигуратора как файл шаблонов по умолчанию.

Можно ли сделать макет на основе документа Word или Excel?

Да, платформа поддерживает макеты типа «Документ Microsoft Word» и «Таблица Microsoft Excel»: печатная форма формируется на основе офисного файла с закладками-параметрами. Такой подход удобен, когда форму часто правят пользователи, но требует наличия соответствующего ПО и аккуратной работы с закладками.

Что делать, если печатная форма не помещается на одну страницу?

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