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