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