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