Выгрузка внешней и дополнительной обработки 1С в файл .epf
Содержание
Чтобы сохранить в файл дополнительную обработку, подключённую к базе 1С, откройте Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, откройте карточку нужной обработки и в меню Ещё выберите Выгрузить в файл.... Программа отдаст файл с расширением .epf (обработка) или .erf (отчёт), который можно открыть через Файл → Открыть или загрузить в другую базу.
Путь одинаков для конфигураций на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11, КА 2 и ERP. Если обработка зашита в саму конфигурацию или открыта в Конфигураторе, сохранять её нужно иначе — эти случаи разобраны ниже, вместе с выгрузкой кодом и пакетной командой.
Какие файлы получаются при сохранении обработки
Внешняя обработка — это один самостоятельный файл. Внутри него форма, модуль, макеты и реквизиты. Чтобы перенести обработку в другую базу или отдать программисту, достаточно этого файла.
| Расширение | Что внутри | Где открывается |
|---|---|---|
.epf | внешняя обработка (External Processing File) | Файл → Открыть в режиме 1С:Предприятие или Конфигуратор |
.erf | внешний отчёт (External Report File) | так же, плюс подключение как дополнительный отчёт |
набор .xml и .bsl | обработка, разобранная на исходные файлы | Конфигуратор (обратная сборка), 1С:EDT, Git |
📌 «Дополнительная» и «внешняя» обработка — один и тот же файл. Разница в способе подключения:
- внешняя — открыли файл с диска через
Файл → Открыть, в базе её нет; - дополнительная — файл загружен в справочник «Дополнительные отчеты и обработки» и хранится внутри базы. Там же настроены разделы, команды и пользователи, которым она доступна.
Дополнительную обработку хранит сама база, а не папка на диске. Поэтому её нельзя найти в проводнике: файл появляется только после выгрузки.
Выгрузка из справочника «Дополнительные отчеты и обработки»
Это основной случай: обработку когда-то загрузили в базу, исходный файл потерялся, а теперь её нужно перенести в другую базу или передать разработчику.
Шаг 1. Откройте список дополнительных обработок
- Перейдите в раздел
Администрирование. - Выберите
Печатные формы, отчеты и обработки. - Убедитесь, что флажок
Дополнительные отчеты и обработкивключён, и щёлкните по одноимённой ссылке.
Если ссылки нет, у пользователя нет прав администратора или функциональность отключена. Включить её может только администратор.
Шаг 2. Найдите нужную обработку
В списке видны все загруженные отчёты и обработки, включая печатные формы и обработки заполнения табличных частей. Если позиций много, введите часть названия в строку поиска над списком.
💡 Колонка «Вид» показывает тип: «Дополнительная обработка», «Печатная форма», «Заполнение объекта», «Отчет». По ней сразу понятно, какое расширение будет у файла.
Шаг 3. Выгрузите файл
- Откройте карточку обработки двойным щелчком.
- Нажмите
Ещёв командной панели карточки. - Выберите
Выгрузить в файл.... - Укажите папку и имя. По умолчанию программа подставляет имя файла, под которым обработку загружали.
В тонком клиенте откроется стандартное окно сохранения Windows. В веб-клиенте файл скачает браузер — ищите его в папке загрузок.
Команда «Выгрузить в файл» доступна пользователю с правом добавлять и изменять дополнительные отчёты и обработки. Обычному бухгалтеру её не видно, даже если он пользуется самой обработкой каждый день.
Где ещё лежит рядом нужная команда
В той же карточке есть обратная команда — Загрузить из файла.... Ей заменяют обработку новой версией без пересоздания элемента справочника. Настройки размещения и доступа при этом сохраняются. Удобный приём: выгрузить старую версию в файл как резервную копию и только потом загружать новую.
Сохранение обработки в Конфигураторе
Конфигуратор нужен в двух ситуациях: вы правите внешнюю обработку и хотите сохранить изменения, или нужно вытащить обработку, встроенную в конфигурацию.
Сохранить открытую внешнюю обработку
- Запустите базу в режиме
Конфигуратор. - Выберите
Файл → Открытьи укажите файл.epfили.erf. - Внесите правки в форму или модуль.
- Сохраните:
Файл → Сохранить(Ctrl+S) — перезапишет исходный файл,Файл → Сохранить как...— создаст копию под новым именем.
💡 Перед правкой чужой обработки сделайте Сохранить как... с суффиксом версии, например ЗагрузкаПрайса_v2.epf. Исходник останется нетронутым, а откатиться можно за секунду.
Внешнюю обработку можно открыть в Конфигураторе любой базы, даже пустой. Сама база для этого не меняется, монопольный доступ не нужен.
Сохранить обработку из состава конфигурации
Встроенные обработки (например, «Групповое перепроведение документов » или «Универсальный обмен данными» в старых релизах) не лежат в отдельных файлах. Но их можно сохранить как внешние:
- В Конфигураторе откройте дерево:
Конфигурация → Открыть конфигурацию. - Разверните ветку
Обработки(илиОтчеты). - Щёлкните правой кнопкой по нужному объекту.
- Выберите
Сохранить как внешнюю обработку, отчет.... - Укажите имя файла
.epfили.erf.
Полученный файл открывается в режиме 1С:Предприятие отдельно от конфигурации. Учтите: если обработка обращается к общим модулям, ролям или другим объектам конфигурации, в чужой базе без них она упадёт с ошибкой при первом же вызове.
Разобрать обработку на исходные файлы
Для системы контроля версий и сравнения правок удобен формат XML
: обработка раскладывается на корневой .xml, модули .bsl и описания форм. В Конфигураторе команды выгрузки в файлы и загрузки из файлов есть для открытой внешней обработки, но для регулярной работы удобнее пакетный режим из следующего раздела. В 1С:EDT обработку импортируют в проект и правят уже как набор исходников.
Пакетная выгрузка без открытия Конфигуратора
Когда обработок десятки или выгрузку нужно встроить в скрипт сборки, используйте пакетный режим Конфигуратора. Параметр /DumpExternalDataProcessorOrReportToFiles разбирает файл на XML, а /LoadExternalDataProcessorOrReportFromFiles собирает обратно.
rem Разобрать обработку на исходники
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "C:\Bases\Empty" ^
/DumpExternalDataProcessorOrReportToFiles "C:\src\Prices\Prices.xml" "C:\epf\Prices.epf" ^
/Out "C:\logs\dump.log"
rem Собрать обратно в epf
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "C:\Bases\Empty" ^
/LoadExternalDataProcessorOrReportFromFiles "C:\src\Prices\Prices.xml" "C:\epf\Prices_new.epf" ^
/Out "C:\logs\load.log"
Номер версии в пути 8.3.24.1548 подставьте свой — посмотрите папку C:\Program Files\1cv8\. Для пакетной работы подойдёт пустая файловая база: команды не трогают её данные.
Если в пути есть пробелы, берите его в кавычки целиком. Результат работы ищите в файле из параметра /Out — окна с ошибкой пакетный режим не показывает.
Программное сохранение обработки кодом
Код нужен, когда обработок много и выгружать их по одной через карточку долго. Например, перед переездом на новую базу администратор хочет за минуту снять копии всех дополнительных обработок.
В конфигурациях на БСП двоичные данные файла лежат в реквизите ХранилищеОбработки справочника ДополнительныеОтчетыИОбработки (тип ХранилищеЗначения). Имя исходного файла — в реквизите ИмяФайла.
Пример для выполнения на сервере (файловая база или сервер с доступом к нужной папке):
&НаСервере
Процедура ВыгрузитьВсеОбработкиНаСервере(Каталог)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Обработки.Ссылка КАК Ссылка,
| Обработки.Наименование КАК Наименование,
| Обработки.ИмяФайла КАК ИмяФайла
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки КАК Обработки
|ГДЕ
| НЕ Обработки.ПометкаУдаления
| И НЕ Обработки.ЭтоГруппа";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Данные = Выборка.Ссылка.ХранилищеОбработки.Получить();
Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
Продолжить;
КонецЕсли;
ИмяФайла = Выборка.ИмяФайла;
Если ПустаяСтрока(ИмяФайла) Тогда
ИмяФайла = Выборка.Наименование + ".epf";
КонецЕсли;
Данные.Записать(Каталог + ПолучитьРазделительПути() + ИмяФайла);
КонецЦикла;
КонецПроцедуры
Что важно знать про этот код:
- 🗂️
Каталог— папка на машине, где выполняется серверный код. В клиент-серверном варианте это диск сервера 1С, а не компьютер пользователя. - 🔐 Запрос выполняется с правами текущего пользователя. Запускайте код под администратором, иначе часть обработок может не попасть в выборку.
- 🔤 Если в наименовании есть символы
\ / : * ? " < > |, Windows не создаст файл. Для имён изНаименованиестоит заменить их на подчёркивание черезСтрЗаменить. - 📋 Отчёты (
.erf) хранятся в том же справочнике. Расширение берётся изИмяФайла, так что они выгрузятся корректно.
Чтобы отдать файл на компьютер пользователя в клиент-серверной базе, поместите двоичные данные во временное хранилище (ПоместитьВоВременноеХранилище) и на клиенте вызовите НачатьПолучениеФайлаССервера. Этот вариант работает и в веб-клиенте.
Хранение копий: сетевая папка, FTP и хранилище
Сохранить обработку в файл — полдела. Файл должен лежать там, где его найдут через год.
Сетевая папка
Самый простой вариант для небольшой команды. Заведите общую папку с понятной структурой:
\\fileserver\1C\Обработки\
Бухгалтерия\
ЗагрузкаВыписки_2.3.epf
Зарплата\
ПечатьЛистков_1.0.erf
_Архив\
Номер версии в имени файла избавляет от вопроса «какая из трёх копий актуальна».
Рядом с файлом удобно держать короткий текстовый файл с пометками: для какой конфигурации и релиза писалась обработка, кто её заказывал, что она меняет в данных. Через год это сэкономит час на выяснения, а новому администратору не придётся гадать, можно ли запускать обработку в рабочей базе.
Раз в квартал сверяйте папку со справочником в базе. Обработки, которые давно отключены, переносите в _Архив, а не удаляйте.
Выгрузка на FTP из кода
Если копии нужно отправлять на удалённый сервер, в 1С есть объект FTPСоединение. Метод Записать отправляет локальный файл на сервер:
Соединение = Новый FTPСоединение("ftp.example.ru", 21, "user", "password");
Соединение.Записать("C:\epf\ЗагрузкаВыписки.epf", "/backup/epf/ЗагрузкаВыписки.epf");
Логин и пароль в код не зашивайте: храните их в защищённых настройках или константе с ограниченным доступом. Обычный FTP передаёт пароль открытым текстом, поэтому для внешних серверов лучше защищённое соединение или VPN.
Контроль версий
Если обработки пишет свой программист, правильнее хранить не .epf, а исходники XML в Git. Разбор и сборка делаются пакетными командами из раздела выше. Так видно, кто и что поменял в каждой версии.
Что мешает сохранить обработку и как это исправить
Не перезаписывайте рабочую обработку в справочнике файлом, который не проверили. Команда Загрузить из файла... сразу меняет версию для всех пользователей. Сначала откройте новый файл через Файл → Открыть и прогоните на тестовой базе.