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