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