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