Выгрузка внешней обработки 1С в файл .epf: Конфигуратор, справочник и код

· 9 мин

Содержание

Внешнюю обработку 1С 8.3 сохраняют в файл с расширением .epf (внешний отчёт — .erf). Если обработка открыта в Конфигураторе, хватит Файл → Сохранить как. Если она подключена в базе через справочник дополнительных отчётов и обработок, откройте её карточку в режиме Предприятия и выгрузите командой из меню Ещё. Если обработка встроена в конфигурацию — в дереве объектов есть команда сохранения её как внешней.

Способ зависит от того, где обработка лежит сейчас. Ниже разобраны все три места, плюс выгрузка в XML для Git и проверка файла перед передачей коллегам.

Где лежит обработка и какие права понадобятся

Прежде чем сохранять, поймите, откуда брать исходник. Вариантов три, и у каждого свой путь:

  • 📁 Файл уже есть на диске, вы его правили и хотите сохранить изменения или копию под другим именем — работаете в Конфигураторе.
  • 🗂 Обработка подключена в базе как дополнительная (печатная форма, заполнение табличной части, загрузка из Excel ). Файл хранится внутри базы, в элементе справочника. Достаётся в режиме Предприятия.
  • 🧩 Обработка — часть конфигурации, видна в ветке Обработки дерева метаданных. Её можно сохранить как отдельный .epf из Конфигуратора.
Где сейчас находится ваша обработка?

Какие права проверить

ДействиеЧто нужно
Сохранить файл из КонфигуратораПраво входа в Конфигуратор (роль с административными правами)
Выгрузить из справочника доп. обработокРоль на добавление и изменение дополнительных отчётов и обработок (в типовых на БСП так и называется)
Открыть сохранённый файл в ПредприятииПрава «Интерактивное открытие внешних обработок» и «Интерактивное открытие внешних отчетов»
Записать файл в папкуПраво записи в каталог на уровне Windows

Сохраняйте в свою папку, например D:\1C\Обработки\. В Program Files и в корень диска C: Windows без прав администратора писать не даст, и 1С выдаст ошибку записи.

Как сохранить внешнюю обработку в файл через Конфигуратор

Это основной способ для разработчика или администратора, который правит обработку.

Сохранить изменения в уже открытый файл

  1. Запустите 1С в режиме Конфигуратор. Подойдёт любая база, даже пустая: внешняя обработка от неё не зависит.
  2. Откройте файл: Файл → Открыть, укажите .epf.
  3. Внесите правки в форму, модуль или макет.
  4. Нажмите Ctrl+S или Файл → Сохранить. Изменения запишутся в тот же файл.

Перед правкой рабочей обработки сделайте копию файла — Ctrl+S перезаписывает его без вопросов, а история версий у .epf не ведётся.

Сохранить под новым именем

  1. С открытой обработкой выберите Файл → Сохранить как.
  2. Укажите папку и имя. Тип файла 1С подставит сам: .epf для обработки, .erf для отчёта.
  3. Нажмите Сохранить.

Имя файла и имя объекта внутри — разные вещи. Файл можно назвать Загрузка_прайса_v2.epf, а свойство Имя в палитре свойств останется прежним. Если обработку будут подключать в справочник дополнительных, менять внутреннее имя без причины не стоит.

Сохранить встроенную обработку конфигурации как внешнюю

Иногда нужна копия типовой обработки, чтобы доработать её без снятия конфигурации с поддержки.

  1. В Конфигураторе: Конфигурация → Открыть конфигурацию.
  2. Разверните ветку Обработки (или Отчеты).
  3. Правой кнопкой по нужному объекту → Сохранить как внешнюю обработку, отчет....
  4. Укажите путь и имя файла.

Такая копия работает только в той же конфигурации. Она обращается к общим модулям, справочникам и регистрам базы. В другой конфигурации при открытии или выполнении появятся ошибки про неизвестные объекты и процедуры.

Создать новую внешнюю обработку с нуля

Файл → Новый → Внешняя обработка (или Внешний отчет). Заполните имя, добавьте форму, затем Файл → Сохранить как. Пока не сохраните, файла на диске нет — при закрытии Конфигуратора 1С спросит, сохранять ли изменения.

Как выгрузить обработку из базы в режиме Предприятия

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP) подключённые обработки хранятся в справочнике дополнительных отчётов и обработок. Исходный файл лежит внутри элемента справочника, и его можно вытащить обратно.

Выгрузка через карточку

  1. Откройте Администрирование → Печатные формы, отчеты и обработки.
  2. Перейдите по ссылке Дополнительные отчеты и обработки.
  3. Найдите обработку в списке и откройте её карточку.
  4. В карточке нажмите Ещё → Выгрузить в файл....
  5. Выберите папку. Расширение (.epf или .erf) определится по виду обработки.

В той же группе команд есть обратная — Загрузить из файла.... Ей заменяют обработку на новую версию без пересоздания элемента справочника, и настройки размещения, команд и доступа сохраняются.

Если ссылки Дополнительные отчеты и обработки в разделе нет, включите одноимённый флажок на той же странице Печатные формы, отчеты и обработки. Без него справочник скрыт.

Выгрузка кодом, если карточка недоступна

Бывает, что форма карточки доработана или ссылка спрятана. Тогда помогает обращение к реквизиту ХранилищеОбработки — в нём лежат двоичные данные файла. Код выполняется на сервере, например из консоли кода с правами администратора:

Ссылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Загрузка прайса");
Если Не Ссылка.Пустая() Тогда
    Данные = Ссылка.ХранилищеОбработки.Получить();
    Если ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
        Данные.Записать("C:\Temp\Загрузка прайса.epf");
    КонецЕсли;
КонецЕсли;

Файл появится на том компьютере, где выполняется серверный код. В файловой базе это ваш ПК, в клиент-серверной — сервер 1С. Для внешнего отчёта поменяйте расширение на .erf.

Что нельзя сделать из Предприятия

Обработку, открытую через Главное меню → Файл → Открыть, режим Предприятия не пересохранит. Он только читает файл и запускает его. Изменить и сохранить её можно лишь в Конфигураторе.

Форматы файлов: что во что сохраняется

Путаница с расширениями — частая причина, по которой «файл не открывается». Сводка:

РасширениеЧто этоГде сохраняют
.epfВнешняя обработкаКонфигуратор: Файл → Сохранить как
.erfВнешний отчётТам же
.xml + папкаВнешняя обработка в исходниках (для Git, EDT)Пакетный режим Конфигуратора или контекстное меню корня обработки
.mxlТабличный документ (макет печатной формы)Открытый макет → сохранение копии через меню Файл
.cfВся конфигурацияКонфигурация → Сохранить конфигурацию в файл
.cfeРасширение конфигурацииОкно расширений → сохранение расширения в файл

Внешнюю обработку нельзя превратить в .cfe простым пересохранением. Если доработку надо встроить в базу без файлов на дисках пользователей, её переносят в расширение вручную: создают объекты и копируют модули.

Выгрузка внешней обработки в XML

Для системы контроля версий бинарный .epf неудобен: изменения в нём не видны построчно. Конфигуратор умеет разобрать обработку на XML-файлы и собрать обратно. В пакетном режиме это выглядит так:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\1C\EmptyBase" /DumpExternalDataProcessorOrReportToFiles "D:\src\ЗагрузкаПрайса.xml" "D:\1C\Обработки\ЗагрузкаПрайса.epf" /Out "D:\1C\dump.log"

Обратная сборка — параметром /LoadExternalDataProcessorOrReportFromFiles с теми же двумя путями: сначала корневой XML, потом итоговый .epf. Версию в пути к 1cv8.exe замените на свою. База в /F нужна только для запуска Конфигуратора, подойдёт пустая.

Совместимость с версией платформы

Файл, сохранённый в свежей платформе, может не открыться в более старой. Если коллега сидит на другом релизе, уточните его номер. Сохраняйте обработку в платформе с номером не выше, чем у самого «старого» пользователя.

Безопасность: проверка файла перед передачей и запуском

Внешняя обработка — это исполняемый код. Она может изменить любые данные базы, к которым у пользователя есть доступ, а в клиент-серверном режиме — работать с файлами сервера. Поэтому:

  • 🔒 Не раздавайте права на интерактивное открытие всем подряд. Обычному бухгалтеру хватит обработок, подключённых администратором в справочник.
  • 🛡 Включите защиту от опасных действий у пользователей (флажок в свойствах пользователя в Конфигураторе). При открытии внешнего файла 1С покажет предупреждение и спросит подтверждение.
  • 🧪 Используйте безопасный режим при подключении сторонних обработок в справочник, если карточка его предлагает. В нём обработка не получит доступ к файлам, COM-объектам и внешним компонентам.
  • 🏢 В клиент-серверной базе ограничения задают профилями безопасности в кластере. Это делает администратор сервера.

Цифровая подпись и контрольная сумма

Встроенной подписи для .epf, как у поставочных конфигураций, у платформы нет. Чтобы убедиться, что файл не подменили по дороге, передайте вместе с ним его хэш. В Windows он считается штатно:

certutil -hashfile "D:\1C\Обработки\ЗагрузкаПрайса.epf" SHA256

Или в PowerShell: Get-FileHash "D:\1C\Обработки\ЗагрузкаПрайса.epf". Получатель считает хэш у себя и сравнивает строки. Не совпадают — файл изменён, запускать нельзя.

Если по регламенту нужна юридически значимая подпись, файл подписывают квалифицированной электронной подписью как обычный документ, например через КриптоАРМ, и передают вместе с файлом подписи .sig.

Обработки «с форумов» и из рассылок сначала открывайте в Конфигураторе на копии базы. Просмотрите модуль объекта и модули форм: ищите запись в регистры, удаление объектов, COMОбъект, работу с файлами и сетью.

Если файл не сохраняется или не открывается

Проблемы с выгрузкой обычно упираются в права, путь или версию платформы. Найдите свой симптом:

Диагностика: выберите симптом

Ещё одна частая ловушка — сохранить файл с кириллицей и пробелами в имени, а потом подключать его скриптом или из командной строки. Пути без кавычек ломаются на первом пробеле. Для автоматизации называйте файлы латиницей без пробелов: ZagruzkaPraisa.epf.

Частые вопросы

Можно ли сохранить внешнюю обработку без Конфигуратора?
Только если она подключена в справочник дополнительных отчётов и обработок: тогда файл выгружается из карточки в режиме Предприятия. Изменить содержимое обработки без Конфигуратора нельзя.
Чем отличается .epf от .erf?
.epf — внешняя обработка, .erf — внешний отчёт с системой компоновки данных или своей формой. Внутри оба формата устроены одинаково, но 1С различает их по типу объекта, и переименование расширения не превращает одно в другое.
Сохранится ли обработка при выгрузке конфигурации в .cf?
Только встроенные в конфигурацию обработки. Внешние файлы и элементы справочника дополнительных обработок в .cf не попадают: справочник — это данные, они переносятся вместе с базой в .dt.
Как сохранить обработку для Git?
Разберите .epf на XML параметром пакетного режима /DumpExternalDataProcessorOrReportToFiles и храните в репозитории папку с исходниками. Перед выдачей пользователям соберите файл обратно параметром /LoadExternalDataProcessorOrReportFromFiles.
Сохраняется ли обработка в базе, если открыть её через Файл → Открыть?
Нет. Платформа читает файл с диска при каждом открытии и в базу его не записывает. Удалили или переместили файл — открыть обработку из базы не получится. Чтобы она жила внутри базы, подключите её в справочник дополнительных отчётов и обработок.
Как понять, какая версия обработки сейчас подключена в базе?
Выгрузите файл из карточки и сравните его хэш с хэшем вашей копии командой certutil -hashfile. Совпали строки — файлы одинаковые. Не совпали — в базе другая версия, и её стоит сохранить отдельно, прежде чем загружать новую.