В экосистеме платформы 1С:Предприятие 8 существует множество способов вывода данных на печать, но наиболее гибким и универсальным инструментом для бизнес-пользователей и разработчиков являются внешние отчеты. Когда вы сталкиваетесь с необходимостью изменить вид накладной, счета-фактуры или акта без вмешательства в исходный код основной конфигурации, на помощь приходит файл с расширением .epf. Этот формат представляет собой контейнер, содержащий логику и макет отчета, который может быть динамически загружен в систему в момент формирования документа.
Использование внешних печатных форм позволяет бизнесу адаптировать документы под специфические требования контрагентов или внутренних регламентов, сохраняя при этом целостность типовой конфигурации. В отличие от жестко зашитых в код макетов, epf файлы можно обновлять, передавать между базами данных и версионировать отдельно от основного обновления платформы. Понимание принципов работы с этим форматом критически важно для администраторов баз данных и специалистов по внедрению.
Техническая суть формата EPF
Файл с расширением .epf (External Print Form) по своей внутренней структуре является архивом, содержащим метаданные отчета 1С. Внутри этого контейнера хранятся объекты метаданных, такие как макеты, модули объекта и модули менеджера, которые описывают алгоритм получения данных и их визуализацию. Для платформы 1С это полноценный отчет, который исполняется в контексте текущей информационной базы, имея доступ к данным через стандартные механизмы запросов.
Главное преимущество формата заключается в его изоляции. Когда вы подключаете внешнюю печатную форму, система не требует перезагрузки конфигурации или остановки работы пользователей. Механизм загрузки происходит «на лету»: при выборе соответствующего варианта печати в документе 1С считывает файл, компилирует его код в оперативной памяти и исполняет запрос к данным. Это делает процесс обновления печатных форм максимально безопасным и оперативным.
Стоит отметить, что epf файлы могут быть созданы как в режиме Конфигуратора, так и в режиме Предприятия с использованием конструкторов отчетов. Однако для сложной логики, требующей работы с временными таблицами или специфическими обработками данных, обычно используется полноценная среда разработки. Файл может содержать несколько вариантов макетов, переключаемых пользователем в момент печати.
Внешние печатные формы работают быстрее стандартных отчетов при печати одиночных документов, так как не требуют открытия полной формы отчета с настройками.
Отличия EPF от других форматов 1С
Часто пользователи путают формат .epf с другими типами файлов, используемых в 1С, такими как .erf (внешний отчет) или .dt (выгрузка информационной базы). Хотя технически EPF и ERF имеют схожую природу (оба являются внешними обработками), их целевое назначение различается. Формат ERF предназначен для проведения аналитических выборок и работы с большими массивами данных, тогда как EPF оптимизирован именно для формирования печатных документов на основе конкретного объекта документа.
В таблице ниже приведено сравнение ключевых характеристик различных форматов внешних обработок, что поможет вам выбрать правильный инструмент для задачи:
| Характеристика | Формат EPF | Формат ERF | Макет в конфигурации |
|---|---|---|---|
| Основное назначение | Печать документов | Аналитические отчеты | Стандартная печать |
| Точка входа | Кнопка "Печать" в документе | Меню "Отчеты" | Вшито в код |
| Возможность обновления | Без обновления конфигурации | Без обновления конфигурации | Только через Конфигуратор |
| Доступ к данным | Через параметры документа | Через отборы и настройки | Прямой доступ |
Важно понимать, что попытка использовать тяжелый аналитический отчет в формате EPF для печати может привести к замедлению работы документа. Архитектура внешней печатной формы предполагает, что она получает на вход конкретный объект (например, ссылку на "Реализацию товаров и услуг") и быстро формирует результат. Если логика отчета требует перебора тысяч записей регистра, лучше использовать отдельный отчет .erf.
Процесс создания и подключения формы
Разработка собственной внешней печатной формы начинается с создания нового отчета в конфигураторе любой базы 1С. Вы выбираете тип объекта "Отчет", пишете необходимый код в модуле объекта для выборки данных и размещаете макет в табличном документе или системе компоновки данных (СКД). После отладки логики отчет сохраняется на диск через меню "Файл" -> "Сохранить как...", где вы выбираете тип файла Внешний отчет (.erf, .epf).
Для подключения созданного файла в рабочую базу данных необходимо воспользоваться механизмом дополнительных отчетов и обработок. В интерфейсе 1С перейдите в раздел НСИ и Администрирование → Печатные формы, отчеты и обработки. Здесь открывается список доступных внешних файлов. Нажав кнопку "Добавить", вы загружаете ваш .epf файл с локального диска. Система автоматически проанализирует метаданные и предложит настроить видимость.
Критическим этапом является настройка доступности. В форме элемента добавленного отчета необходимо указать, для каких видов документов эта форма предназначена. Вы выбираете конкретный документ, например, "Счет-фактура выданный", и ставите галочку в колонке "Использовать". Без этого шага кнопка печати просто не увидит ваш новый файл, даже если он корректно загружен в базу.
☑️ Алгоритм подключения EPF
⚠️ Внимание: При загрузке внешних обработок в файловую базу данных права доступа не так критичны, как в клиент-серверном варианте. Однако в режиме SQL сервера 1С может блокировать выполнение кода из внешних файлов, если на уровне роли пользователя не установлено право
Запуск внешних отчетов и обработок.
Настройка видимости и параметров печати
После физической загрузки файла в базу данных часто требуется тонкая настройка того, когда именно эта форма должна предлагаться пользователю. В карточке внешней обработки существует поле "Виды документов", где можно задать строгие ограничения. Например, вы можете сделать так, чтобы ваша фирменная накладная появлялась только для организации "ООО Ромашка", а для остальных контрагентов оставалась стандартная типовая форма.
Для реализации условной логики отображения часто используется механизм отборов. В таблице видов документов можно установить отбор по полю "Организация" или "Контрагент". Это позволяет в одной базе данных поддерживать десятки различных дизайнов печатных форм для разных филиалов или направлений бизнеса, не создавая путаницы для операторов. Система сама подставит нужный вариант в выпадающий список кнопки "Печать".
Также в настройках можно определить порядок следования форм. Если у вас подключено пять различных вариантов счета-фактуры, вы можете задать приоритет отображения через поле "Порядок". Форма с наименьшим числовым значением будет стоять в списке первой и может быть установлена как вариант "По умолчанию", что ускоряет работу оператора, которому не нужно каждый раз выбирать нужный бланк вручную.
Как скрыть форму от определенных пользователей?
Чтобы скрыть внешнюю печатную форму от конкретных сотрудников, необходимо использовать настройки прав доступа (RLS) или группы доступа. В профиле группы доступа снимите галочку с права на выполнение конкретной внешней обработки, и она исчезнет из списка доступных для этих пользователей.
Типовые проблемы и методы диагностики
Наиболее частой проблемой при работе с EPF является ошибка компиляции при запуске. Это происходит, если отчет был разработан в одной версии платформы (например, 8.3.20), а запускается в более старой (например, 8.3.15), где отсутствуют некоторые новые функции языка. В таком случае в журнале регистрации событий появится сообщение о том, что метод или свойство не найдено. Решение заключается в перекомпиляции отчета в версии, совместимой с рабочей базой.
Другая распространенная ситуация — форма загружена, но не появляется в списке печати. Здесь алгоритм диагностики следующий: сначала проверьте, установлен ли флаг "Использовать" для нужного вида документа. Затем убедитесь, что вы находитесь в режиме, поддерживающем внешние обработки (некоторые тонкие клиенты имеют ограничения). Если используется веб-клиент, убедитесь, что сервер 1С имеет права на чтение файла из каталога внешних обработок, если они хранятся не в базе, а в файловой системе.
Ошибки в отображении данных, такие как пустые поля или неверные суммы, обычно связаны с некорректной работой запроса внутри модуля отчета. Для диагностики воспользуйтесь консолью запросов, скопировав текст запроса из кода внешней обработки. Часто проблема кроется в том, что имена полей в временной таблице не совпадают с именами колонок в макете табложного документа.
⚠️ Внимание: Если вы используете лицензию 1С:ПРОФ, ограничений на количество внешних обработок нет. Однако в версиях 1С:Базовая существуют технические ограничения на одновременную работу и объем используемой памяти, что может привести к вылету клиента при попытке запустить тяжелую внешнюю печатную форму со сложными вычислениями.
90% ошибок подключения EPF связаны не с самим файлом, а с отсутствием галочки "Использовать" в настройках привязки к виду документа.
Безопасность и обновление внешних форм
Поскольку файлы .epf содержат исполняемый код, они потенциально могут представлять угрозу безопасности информационной базы. Злоумышленник может теоретически создать обработку, которая удалит данные или передаст их третьим лицам. Поэтому в современных версиях платформы 1С существует механизм проверки цифровой подписи внешних обработок. Администратор может настроить политику безопасности так, чтобы запускались только файлы, подписанные доверенным сертификатом.
Процесс обновления печатных форм должен быть регламентирован. При изменении законодательства (например, новых требований к чекам или накладным) необходимо оперативно заменить файл .epf в базе данных. Это делается через форму списка внешних обработок: вы выделяете устаревшую запись, удаляете её и загружаете новую версию с тем же именем. Пользователи получат доступ к обновленному бланку сразу после обновления списка форм, без необходимости перезапуска 1С.
Для крупных предприятий рекомендуется хранить библиотеку внешних печатных форм в отдельном каталоге на сервере и использовать механизмы автоматической синхронизации. Это позволяет централизованно управлять версиями бланков для всех филиалов. Важно вести журнал изменений, фиксируя, какая версия файла и когда была загружена, чтобы в случае ошибок можно было быстро откатиться к предыдущему рабочему варианту.
Всегда храните исходные файлы (.mxl, .epf) в системе контроля версий (Git или SVN). Это позволит отследить историю изменений макетов и понять, кто и когда внес правки в форму накладной.
Можно ли редактировать EPF файл без Конфигуратора?
Нет, формат .epf является скомпилированным бинарным форматом (или упакованным XML в зависимости от версии), который не предназначен для прямого редактирования в текстовых редакторах. Для внесения изменений необходимо открыть исходный отчет в Конфигураторе 1С, внести правки и сохранить файл заново. Существуют сторонние утилиты для распаковки, но они не гарантируют корректность обратной сборки.
Почему внешняя печатная форма работает медленно?
Замедление обычно вызвано неоптимизированным запросом внутри отчета. Если форма обращается к регистрам накопления без использования индексных полей или делает выборку "в лоб" по большим таблицам документов, время генерации возрастает. Также скорость зависит от сложности макета: использование множества условного оформления и сложных формул в ячейках табличного документа нагружает клиентское приложение.
Как передать внешнюю форму другому пользователю?
Сам файл .epf можно просто скопировать и отправить по почте или через мессенджер. Получатель должен сохранить его на свой диск и подключить в своей базе данных через раздел администрирования. Если база общая (клиент-сервер), то загрузить файл должен администратор в центральный каталог, чтобы форма стала доступна всем пользователям сразу.
Влияет ли обновление платформы 1С на работу EPF?
Обычно обратная совместимость сохраняется, и старые файлы работают на новых версиях. Однако при глобальных обновлениях платформы (смена версии, например, с 8.3.10 на 8.3.20) некоторые устаревшие методы языка могут быть удалены. В редких случаях может потребоваться пересохранение внешней обработки в новой версии Конфигуратора для корректной работы.