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

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

Как добавить макет печатной формы в 1С

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

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

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

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

Как устроены макеты печатных форм в 1С

Макет печатной формы — это объект конфигурации, который хранит шаблон будущего документа. Чаще всего используется тип «Табличный документ»: он похож на лист Excel, где ячейки содержат текст, параметры в угловых скобках вида <НомерДокумента> и шаблоны с квадратными скобками. Реже встречаются макеты типа «Текстовый документ», HTML, географическая схема и макеты для СКД.

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

Макеты размещаются в двух местах: в ветке «Общие → Макеты» (общие для нескольких объектов) и внутри конкретного объекта, например «Документы → РеализацияТоваровУслуг → Макеты». Типовые конфигурации обычно держат макеты печатных форм рядом с объектом, которому они принадлежат.

Способ 1. Добавление и правка макета в конфигураторе

Этот способ подходит, если конфигурация самописная, снята с поддержки или вы осознанно ведёте доработки в конфигураторе. Откройте конфигуратор, найдите нужный объект (документ или справочник), раскройте ветку «Макеты». Чтобы добавить новый — правой кнопкой по «Макеты» → «Добавить», выберите тип «Табличный документ» и задайте имя, например «МакетСчетСЛоготипом».

Если нужно изменить существующую печатную форму, проще скопировать типовой макет: откройте его, сохраните как новый макет с другим именем и правьте копию. Далее в модуле менеджера объекта (или в модуле объекта, в зависимости от архитектуры) найдите функцию печати и замените имя получаемого макета на новое: ПолучитьМакет("МакетСчетСЛоготипом").

Для добавления нового поля выделите ячейку, в свойствах установите «Заполнение: Параметр» и укажите имя параметра. Затем в коде печати добавьте заполнение: Область.Параметры.ИмяПараметра = Значение;. Без этой строки параметр выведется пустым — это самая частая причина «не работающих» правок.

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

Способ 2. Замена макета в пользовательском режиме (типовые конфигурации)

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

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

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

Способ 3. Подключение внешней печатной формы

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

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

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

Какой способ выбрать: сравнение вариантов

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

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

Макет в конфигураторе

Полный контроль над макетом и кодом. Минус: требует снятия с поддержки, правки могут конфликтовать при обновлении типовой конфигурации.

Замена макета в режиме Предприятия

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

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

Свой макет и свой код заполнения, конфигурация не меняется. Минус: нужна разработка обработки и контроль совместимости с версией БСП.

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

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

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

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

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

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

Номера, даты, суммы и наименования выводятся как в документе

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

Пустые места или вывод имени параметра вместо значения

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

Табличная часть переносится с повтором шапки, нет обрезанных строк

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

Строки разрываются посередине, подвал «уезжает»

Поведение при обновлении
Норма

После обновления типовой базы форма работает как раньше

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

Правки пропали или печать падает с ошибкой

Типичные ошибки
01
Добавили параметр в макет, но не заполнили его в коде — поле выводится пустым
02
Удалили или переименовали область макета, которую запрашивает код, — печать завершается ошибкой «Область не найдена»
03
Правили макет в конфигураторе типовой базы — после обновления изменения затёрлись
04
Изменили имя макета, но не поправили вызов ПолучитьМакет() — форма берёт старый шаблон
05
Подключили внешнюю форму, но не назначили ей объекты — кнопка печати не появляется

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

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

Можно ли изменить печатную форму без программиста?

Да, если правка касается текста, оформления, логотипа или удаления лишних строк. В типовых конфигурациях это делается через «Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм» прямо в режиме 1С:Предприятие. Для вывода новых данных, которых нет в типовом макете, понадобится разработчик.

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

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

Как вернуть типовой макет, если правка не удалась?

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

Где взять внешнюю печатную форму и как её подключить?

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

Добавил поле в макет, но оно печатается пустым. Что не так?

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

Можно ли сделать разные макеты для разных организаций в одной базе?

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

Итог

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

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