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