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

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

Как изменить стандартную печатную форму в 1С

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

Практически в каждой компании рано или поздно возникает потребность подправить стандартную печатную форму: добавить логотип в счёт на оплату, вывести дополнительный реквизит в акте, изменить формулировку в счёте-фактуре или убрать лишние колонки из ТОРГ-12. В 1С это решается несколькими способами — от простого редактирования макета до подключения внешней печатной формы.

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

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

Как устроены печатные формы в 1С и что именно можно менять

Печатная форма в типовой конфигурации состоит из двух частей: макета (шаблона документа) и программного кода, который заполняет макет данными. Макет чаще всего имеет тип «Табличный документ» — это сетка ячеек, похожая на Excel, где заданы области, шрифты, рамки и поля-параметры вида [НомерДокумента].

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

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

Подготовка: копия базы и проверка режима поддержки

Любые изменения печатных форм лучше начинать с резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD или сделать выгрузку через «Конфигуратор → Администрирование → Выгрузить информационную базу». Для клиент-серверной базы используйте выгрузку в dt или штатные средства СУБД.

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

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

Способ 1: редактирование макета в конфигураторе

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

Найти макет проще всего через поиск: в дереве конфигурации откройте ветку «Общие → Макеты» либо ветку конкретного документа — там часто лежат его печатные формы. Поиск по имени работает через Ctrl+F по дереву конфигурации. Макеты счетов и актов обычно называются предсказуемо: «МакетСчетЗаказ», «МакетАкта» и т.п.

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

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

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

Способ 2: внешняя печатная форма через механизм БСП

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

Внешняя печатная форма — это файл с расширением .epf (внешняя обработка), содержащий макет и код формирования. Подключается она через раздел «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». После добавления обработки в списке печати документа появляется новый пункт с вашей формой.

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

bsl
Функция СведенияОВнешнейОбработке() Экспорт
  ПараметрыРегистрации = Новый Структура;
  ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
  ПараметрыРегистрации.Вставить("Назначение", Новый Массив);
  ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплатуПокупателю");
  ПараметрыРегистрации.Вставить("Наименование", "Счёт с логотипом (доработанный)");
  Возврат ПараметрыРегистрации;
КонецФункции

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

Способ 3: расширение конфигурации

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

Расширение удобно, когда нужно изменить не только макет, но и логику формирования формы: например, переопределить процедуру печати в общем модуле, чтобы передать в макет дополнительные данные. Создаётся расширение через «Конфигурация → Расширения конфигурации → Создать», затем нужные объекты добавляются в расширение и правятся там.

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

Сравнение способов

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

Быстро и просто, но требует снятия объекта с поддержки; изменения могут конфликтовать с обновлениями

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

Не трогает конфигурацию, переживает обновления; требует навыков создания обработки и функции регистрации

Расширение конфигурации

Позволяет менять и макет, и код без снятия с поддержки; требует проверки совместимости после каждого обновления

Как добавить в форму новые данные, которых нет в макете

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

Если данных в процедуре нет, потребуется доработка кода. В типовых конфигурациях печать формируется в модуле менеджера документа (процедуры вида Печать, ДобавитьКомандуПечати) или в общих модулях. Туда добавляется запрос нужного реквизита и передача его в параметр макета.

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

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

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

Обратите внимание на постраничный вывод: шапка таблицы должна повторяться на каждой странице (настраивается через свойства области макета), итоги — выводиться корректно. Распространённая ошибка — при добавлении строк в макет ломается область «Итого», и она начинает выводиться на каждой странице или пропадает.

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

Типичные ошибки
01
Правка макета без резервной копии — при ошибке восстановить типовой вид сложно
02
Снятие всей конфигурации с поддержки ради одной формы — блокирует автообновление
03
Изменение параметра в макете без правки кода — вместо данных выводится имя параметра или пустота
04
Проверка только под администратором — у рядовых пользователей форма не появляется из-за прав
05
Не проверен многостраничный вывод — итоги и шапка «уезжают» на длинных документах
Контрольные точки

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

Пункт печати в документе
Норма

Новая или изменённая форма доступна в меню «Печать»

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

Пункт отсутствует у части пользователей — проблема с правами или подключением

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

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

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

На форме видны [ИмяПараметра] или пустые места

Длинный документ на 2+ страницы
Норма

Шапка таблицы повторяется, итоги на последней странице

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

Таблица обрывается, итоги дублируются или теряются

Маршрут решения

Как выбрать действие

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

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

Изменится ли печатная форма в уже проведённых документах?

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

Что произойдёт с доработанной формой после обновления конфигурации?

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

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

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

Как вернуть типовую печатную форму, если что-то пошло не так?

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

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

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

Нужны ли особые права для подключения внешней печатной формы?

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

Итог

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

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