Где взять файл внешней обработки: Конфигуратор, справочник обработок и пакетный режим
Содержание
Чтобы выгрузить EPF из 1С, откройте базу в Конфигураторе, найдите обработку в ветке Обработки дерева конфигурации, щёлкните по ней правой кнопкой и выберите Сохранить как внешнюю обработку, отчет.... Если обработка уже подключена в пользовательском режиме как дополнительная, файл забирают из справочника: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, карточка обработки, команда выгрузки в файл.
Способ зависит от того, где обработка живёт сейчас: внутри конфигурации, в справочнике дополнительных обработок, в расширении или уже лежит файлом, который нужно пересохранить. Каждый случай ниже разобран отдельно, плюс выгрузка десятков файлов разом для переноса на другой сервер или в Git.
Что такое EPF и откуда его можно выгрузить
EPF (External Processing File) — файл внешней обработки 1С:Предприятия 8. Он не входит в конфигурацию: его открывают через Файл → Открыть или подключают в справочник дополнительных обработок, и он работает в контексте той базы, где запущен. Отчёты хранятся в похожем формате, но с расширением .erf.
Внутри EPF — модуль объекта, формы, макеты и реквизиты. Код при сохранении не компилируется, поэтому файл можно открыть в Конфигураторе любой базы и прочитать исходник.
Откуда обычно приходится доставать файл:
| Где сейчас обработка | Что получится на выходе | Где выгружать |
|---|---|---|
Объект ветки Обработки в конфигурации | .epf | Конфигуратор, контекстное меню объекта |
Объект ветки Отчеты в конфигурации | .erf | Конфигуратор, то же меню |
| Справочник «Дополнительные отчеты и обработки» | .epf или .erf | Режим Предприятия, карточка обработки |
| Расширение конфигурации | .cfe, не EPF | Конфигуратор или список расширений |
| Файл открыт в Конфигураторе после правки | .epf | Файл → Сохранить как |
Если у вас есть только база и нет понимания, где искать обработку, начните с пользовательского режима. Во многих типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) доработки от внедренцев лежат именно в справочнике дополнительных обработок, а не в самой конфигурации.
Сохранение обработки из конфигурации как внешней в Конфигураторе
Этот способ нужен, когда обработку написали прямо в конфигурации, а теперь её надо отдать в другую базу без обновления конфигурации там.
- Запустите базу в режиме
Конфигуратор. - Откройте дерево:
Конфигурация → Открыть конфигурацию. - Разверните ветку
Обработки(илиОтчетыдля отчёта). - Щёлкните правой кнопкой по нужному объекту.
- Выберите
Сохранить как внешнюю обработку, отчет.... - Укажите папку и имя файла. Расширение
.epfили.erfплатформа подставит сама.
Захватывать объект в хранилище конфигурации не нужно, снимать конфигурацию с поддержки тоже: операция только читает объект. Монопольный доступ к базе для неё не требуется.
Если нужен уже открытый внешний файл
Бывает, что EPF открыли через Файл → Открыть, поправили модуль и хотят сохранить отдельной версией. Тогда:
Файл → Сохранить— перезаписывает исходный файл;Файл → Сохранить как— кладёт копию под новым именем, исходник остаётся как был.
Перед правкой чужой обработки сохраните исходный файл копией — внешнюю обработку ничто не версионирует, и после перезаписи откатиться будет некуда.
Что проверить в коде после выгрузки
Обработка, вынутая из конфигурации, не всегда работает внешней без правок:
- 🔗 обращения вида
Обработки.ИмяОбработки.Создать()илиПолучитьФорму("Обработка.ИмяОбработки.Форма...")по-прежнему ведут на объект конфигурации, а не на внешний файл; - 🔒 если в базе обработку подключат как дополнительную через БСП, ей нужна экспортная функция
СведенияОВнешнейОбработке()в модуле объекта — без неё регистрация в справочнике не пройдёт; - 🧩 общие модули, общие макеты и роли конфигурации доступны внешней обработке только в той базе, где они есть. В другой конфигурации вызовы к ним упадут.
Выгрузка EPF из справочника дополнительных обработок в режиме Предприятия
В конфигурациях на БСП подключённые обработки хранятся в базе как двоичные данные. Сам файл на диске пользователю может быть уже недоступен — а из базы его можно забрать.
Путь в Бухгалтерии 3.0, ЗУП 3.1 и УТ 11:
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки
Порядок действий:
- Убедитесь, что в разделе
Печатные формы, отчеты и обработкивключён флажок использования дополнительных отчётов и обработок, иначе ссылки на список не будет. - Откройте список и найдите обработку по наименованию. Помогает строка поиска над списком.
- Откройте карточку двойным щелчком.
- В командной панели карточки откройте меню
Ещёи выберите командуВыгрузить в файл.... - Укажите папку. Имя файла программа предложит сама, расширение определится по виду: обработка —
.epf, отчёт —.erf.
Нужны права администратора: у пользователя без полных прав или роли управления дополнительными обработками команды выгрузки нет.
В клиент-серверной базе и в веб-клиенте браузер или тонкий клиент сначала спросит, куда сохранить файл. Если окно не появилось, проверьте, не заблокировал ли его браузер, и что для веб-клиента установлено расширение работы с файлами.
Какая версия попадёт в файл
Выгружается та версия, что сейчас записана в карточке. Если кто-то загрузил новую поверх старой командой загрузки из файла, предыдущая версия в справочнике не сохраняется. Версия, которую разработчик указал в СведенияОВнешнейОбработке(), видна в карточке в поле версии — сверьте её до выгрузки, чтобы не перенести на другой сервер устаревший файл.
Расширения конфигурации: CFE вместо EPF
Частая путаница: доработку сделали расширением, а из базы пытаются «выгрузить EPF». Расширение — отдельная сущность, оно сохраняется в файл .cfe и подключается к конфигурации, а не открывается как обработка. Расширения появились в платформе 8.3.6.
Выгрузить CFE можно двумя путями.
В Конфигураторе:
- Откройте
Конфигурация → Расширения конфигурации. - Выделите расширение в списке.
- В меню команд окна списка выберите
Конфигурация → Сохранить в файл.... - Укажите имя файла
.cfe.
В пользовательском режиме (конфигурации на БСП):
- Откройте
Администрирование → Печатные формы, отчеты и обработки → Расширения. - Выделите расширение.
- В меню
Ещёнайдите команду сохранения в файл.
При переносе на другой сервер загрузка .cfe и обновление конфигурации
базы данных — два отдельных шага. Загрузили файл, но не обновили — расширение не заработает.
Если внутри расширения есть собственная обработка и её надо отдать отдельным EPF, проще создать новую внешнюю обработку и перенести в неё реквизиты, формы и код. Прямой конвертации CFE в EPF нет.
Пакетная выгрузка: командная строка и код на встроенном языке
Когда обработок десятки, кликать по каждой долго. Есть два автоматических пути: команды Конфигуратора для разбора EPF в исходники и код, который выгружает все файлы из справочника.
Разбор EPF в XML и сборка обратно
Конфигуратор в пакетном режиме умеет раскладывать внешнюю обработку на XML-файлы и собирать её из них. Это основа хранения EPF в Git.
Разобрать файл в исходники:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"C:\Bases\Empty" /DisableStartupMessages ^
/DumpExternalDataProcessorOrReportToFiles "C:\src\Zagruzka\Zagruzka.xml" "C:\epf\Zagruzka.epf" ^
/Out"C:\logs\dump.log"
Собрать EPF из исходников:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"C:\Bases\Empty" /DisableStartupMessages ^
/LoadExternalDataProcessorOrReportFromFiles "C:\src\Zagruzka\Zagruzka.xml" "C:\epf\Zagruzka.epf" ^
/Out"C:\logs\build.log"
Для запуска нужна любая информационная база. Удобно держать пустую файловую базу
только под эти команды — так рабочие базы не задеваются. Замените 8.3.xx.xxxx на номер установленной у вас платформы, а результат смотрите в файле из параметра /Out.
Для расширения есть параметр выгрузки конфигурации с указанием имени расширения: /DumpCfg "C:\ext\Dorabotki.cfe" -Extension "ИмяРасширения". Полный список ключей пакетного режима выводится в справке по параметрам командной строки, она есть в составе документации платформы.
Выгрузка всех файлов из справочника кодом
Обработки, подключённые через БСП, лежат в реквизите ХранилищеОбработки справочника ДополнительныеОтчетыИОбработки. Достаточно пройтись по справочнику и записать двоичные данные на диск.
Код ниже — для серверной процедуры отдельной внешней обработки, которую администратор открывает через Файл → Открыть. Файлы запишутся на диск компьютера, где выполняется сервер 1С: в файловой базе — на ваш компьютер, в клиент-серверной — на сервер.
&НаСервере
Процедура ВыгрузитьОбработкиНаСервере(Каталог)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Обработки.Ссылка КАК Ссылка,
| Обработки.ИмяОбъекта КАК ИмяОбъекта,
| Обработки.Вид КАК Вид
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки КАК Обработки
|ГДЕ
| НЕ Обработки.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Сч = 0;
Пока Выборка.Следующий() Цикл
ДвоичныеДанные = Выборка.Ссылка.ХранилищеОбработки.Получить();
Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда
Продолжить;
КонецЕсли;
Если Выборка.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет
Или Выборка.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет Тогда
Расширение = ".erf";
Иначе
Расширение = ".epf";
КонецЕсли;
Сч = Сч + 1;
ИмяФайла = СтрШаблон("%1_%2%3", Выборка.ИмяОбъекта, Формат(Сч, "ЧГ=0"), Расширение);
ДвоичныеДанные.Записать(Каталог + ПолучитьРазделительПути() + ИмяФайла);
КонецЦикла;
Сообщить(СтрШаблон("Выгружено файлов: %1", Формат(Сч, "ЧГ=0")));
КонецПроцедуры
Порядковый номер в имени нужен потому, что одно и то же ИмяОбъекта может встретиться у двух разных записей — например, у старой и новой версии обработки. Без номера второй файл молча перезапишет первый.
Каталог должен существовать заранее, а у пользователя, под которым работает сервер 1С, должны быть права на запись в него. Запускайте обработку от администратора базы: в безопасном режиме, в котором БСП выполняет дополнительные обработки, запись файлов запрещена.
Ошибки при выгрузке и запуске выгруженного файла
Проблемы почти всегда всплывают не в момент сохранения, а когда файл пытаются открыть в другой базе.
Хранение и версионирование внешних обработок
Хранилище конфигурации внешние обработки не версионирует — оно работает только с объектами конфигурации. Порядок придётся выстроить самому.
Рабочая схема для небольшой команды:
- 📁 Одна папка — одна обработка. Внутри — актуальный EPF и подпапка
srcс XML-исходниками, разобранными командой из раздела про пакетную выгрузку. - 🏷️ Версия в имени файла и в коде.
ZagruzkaBanka_1.4.2.epfи то же1.4.2в функцииСведенияОВнешнейОбработке(). Тогда по карточке в справочнике сразу видно, что стоит в базе. - 🌿 Git хранит XML, а не бинарник. EPF — бинарный файл, Git покажет только факт изменения. XML даёт нормальный построчный diff модулей и форм.
- 📝 Журнал изменений рядом. Короткий файл: версия, дата, что поменялось, в какие базы установлено.
Для команды разработчиков удобнее 1С:EDT: она хранит внешние обработки исходниками в проекте и сама работает с Git. В Конфигураторе тот же результат дают пакетные команды разбора и сборки, повешенные на хуки Git, — так коммит всегда содержит и XML, и собранный EPF. Есть и сторонние утилиты разбора бинарных файлов 1С, например v8unpack, но штатные команды платформы надёжнее: формат XML у них документирован и стабилен между релизами платформы.
Перед переносом на другой сервер
Последний пункт часто забывают. Загрузка новой версии в карточку перезаписывает прежнюю, и если новая окажется с ошибкой, вернуть старую можно будет только из выгруженного заранее файла.
Частые вопросы
Можно ли достать исходный код из EPF без Конфигуратора?
/DumpExternalDataProcessorOrReportToFiles файл раскладывается на XML, а модули оказываются в обычных текстовых файлах .bsl. Конфигуратор при этом запускается без интерфейса.