Выгрузка внешней обработки 1С в файл .epf: Конфигуратор, справочник и код
Содержание
Внешнюю обработку
1С 8.3 сохраняют в файл с расширением .epf (внешний отчёт — .erf). Если обработка открыта в Конфигураторе, хватит Файл → Сохранить как. Если она подключена в базе через справочник дополнительных отчётов и обработок, откройте её карточку в режиме Предприятия и выгрузите командой из меню Ещё. Если обработка встроена в конфигурацию — в дереве объектов есть команда сохранения её как внешней.
Способ зависит от того, где обработка лежит сейчас. Ниже разобраны все три места, плюс выгрузка в XML для Git и проверка файла перед передачей коллегам.
Где лежит обработка и какие права понадобятся
Прежде чем сохранять, поймите, откуда брать исходник. Вариантов три, и у каждого свой путь:
- 📁 Файл уже есть на диске, вы его правили и хотите сохранить изменения или копию под другим именем — работаете в Конфигураторе.
- 🗂 Обработка подключена в базе как дополнительная (печатная форма, заполнение табличной части, загрузка из Excel ). Файл хранится внутри базы, в элементе справочника. Достаётся в режиме Предприятия.
- 🧩 Обработка — часть конфигурации, видна в ветке
Обработкидерева метаданных. Её можно сохранить как отдельный.epfиз Конфигуратора.
Какие права проверить
| Действие | Что нужно |
|---|---|
| Сохранить файл из Конфигуратора | Право входа в Конфигуратор (роль с административными правами) |
| Выгрузить из справочника доп. обработок | Роль на добавление и изменение дополнительных отчётов и обработок (в типовых на БСП так и называется) |
| Открыть сохранённый файл в Предприятии | Права «Интерактивное открытие внешних обработок» и «Интерактивное открытие внешних отчетов» |
| Записать файл в папку | Право записи в каталог на уровне Windows |
Сохраняйте в свою папку, например D:\1C\Обработки\. В Program Files и в корень диска C: Windows без прав администратора писать не даст, и 1С выдаст ошибку записи.
Как сохранить внешнюю обработку в файл через Конфигуратор
Это основной способ для разработчика или администратора, который правит обработку.
Сохранить изменения в уже открытый файл
- Запустите 1С в режиме
Конфигуратор. Подойдёт любая база, даже пустая: внешняя обработка от неё не зависит. - Откройте файл:
Файл → Открыть, укажите.epf. - Внесите правки в форму, модуль или макет.
- Нажмите
Ctrl+SилиФайл → Сохранить. Изменения запишутся в тот же файл.
Перед правкой рабочей обработки сделайте копию файла — Ctrl+S перезаписывает его без вопросов, а история версий у .epf не ведётся.
Сохранить под новым именем
- С открытой обработкой выберите
Файл → Сохранить как. - Укажите папку и имя. Тип файла 1С подставит сам:
.epfдля обработки,.erfдля отчёта. - Нажмите
Сохранить.
Имя файла и имя объекта внутри — разные вещи. Файл можно назвать Загрузка_прайса_v2.epf, а свойство Имя в палитре свойств останется прежним. Если обработку будут подключать в справочник дополнительных, менять внутреннее имя без причины не стоит.
Сохранить встроенную обработку конфигурации как внешнюю
Иногда нужна копия типовой обработки, чтобы доработать её без снятия конфигурации с поддержки.
- В Конфигураторе:
Конфигурация → Открыть конфигурацию. - Разверните ветку
Обработки(илиОтчеты). - Правой кнопкой по нужному объекту →
Сохранить как внешнюю обработку, отчет.... - Укажите путь и имя файла.
Такая копия работает только в той же конфигурации. Она обращается к общим модулям, справочникам и регистрам базы. В другой конфигурации при открытии или выполнении появятся ошибки про неизвестные объекты и процедуры.
Создать новую внешнюю обработку с нуля
Файл → Новый → Внешняя обработка (или Внешний отчет). Заполните имя, добавьте форму, затем Файл → Сохранить как. Пока не сохраните, файла на диске нет — при закрытии Конфигуратора 1С спросит, сохранять ли изменения.
Как выгрузить обработку из базы в режиме Предприятия
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP) подключённые обработки хранятся в справочнике дополнительных отчётов и обработок. Исходный файл лежит внутри элемента справочника, и его можно вытащить обратно.
Выгрузка через карточку
- Откройте
Администрирование → Печатные формы, отчеты и обработки. - Перейдите по ссылке
Дополнительные отчеты и обработки. - Найдите обработку в списке и откройте её карточку.
- В карточке нажмите
Ещё → Выгрузить в файл.... - Выберите папку. Расширение (
.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. Совпали строки — файлы одинаковые. Не совпали — в базе другая версия, и её стоит сохранить отдельно, прежде чем загружать новую.