Разработка и Конфигурация · 11 мин
Как в 1С сохранить дополнительную обработку в файл
Как сохранить дополнительную (внешнюю) обработку 1С в файл .epf: через конфигуратор, из справочника дополнительных отчетов и обработок и программно. Пошаговая инструкция.
Дополнительная обработка в 1С существует в двух видах: как файл с расширением .epf на диске и как объект, загруженный в базу через механизм «Дополнительные отчеты и обработки» библиотеки стандартных подсистем (БСП). Задача сохранить такую обработку в файл возникает, когда нужно перенести её в другую базу, отправить коллеге, внести изменения в конфигураторе или создать резервную копию перед обновлением.
Способ сохранения зависит от того, где сейчас находится обработка. Если она уже есть в виде файла и открыта в конфигураторе — достаточно команды «Сохранить как». Если обработка хранится только внутри информационной базы (загружена в справочник дополнительных обработок), файл придется извлечь из хранилища значений. Ниже разобраны оба сценария, а также программный вариант для случаев, когда файлов нужно выгрузить много.
Где хранится дополнительная обработка и в каком виде её сохранять
Внешняя обработка на диске — это файл с расширением .epf (отчеты — .erf). Такой файл открывается конфигуратором и тонким клиентом через меню Файл → Открыть, не требуя подключения к конкретной базе. Внутри файла находятся модуль объекта, формы, макеты и код внешней обработки.
Когда обработку подключают к типовой конфигурации через подсистему «Дополнительные отчеты и обработки», её двоичные данные копируются в справочник «ДополнительныеОтчетыИОбработки» и хранятся внутри базы в хранилище значений. Исходный файл на диске при этом больше не нужен для работы — база использует собственную копию. Поэтому, если файл потерян, его всегда можно восстановить, выгрузив данные из справочника.
Как сохранить обработку в файл через конфигуратор
Этот способ подходит, когда обработка открыта для редактирования или была создана с нуля. Откройте конфигуратор, затем через меню Файл → Открыть укажите существующий .epf-файл либо создайте новую обработку через Файл → Новый → Внешняя обработка.
После внесения изменений выберите Файл → Сохранить (Ctrl+S) для перезаписи текущего файла или Файл → Сохранить как, чтобы записать копию под новым именем в нужную папку. В диалоге сохранения тип файла уже будет установлен как «Внешняя обработка (*.epf)», менять его не требуется.
- 1Откройте конфигуратор и загрузите обработку через Файл → Открыть
- 2Внесите нужные изменения в модуль, формы или макеты
- 3Выберите Файл → Сохранить как и укажите папку и имя файла
- 4Убедитесь, что расширение файла — .epf, и нажмите «Сохранить»
- 5Проверьте результат: откройте сохраненный файл заново и убедитесь, что изменения на месте
При сохранении под новым именем учитывайте, что конфигуратор продолжит редактировать уже новый файл — старый останется без изменений. Это удобно для версионирования: перед рискованной правкой сохраните копию с датой или номером версии в имени.
Как выгрузить обработку из справочника дополнительных отчетов и обработок
В типовых конфигурациях на БСП (Управление торговлей, ERP, Бухгалтерия предприятия, ЗУП и другие) подключенные обработки хранятся внутри базы. Чтобы получить их в виде файла, перейдите в раздел Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. В некоторых конфигурациях этот пункт находится в разделе «НСИ и администрирование».
Откройте нужный элемент справочника. В форме элемента, как правило, доступна команда сохранения обработки во внешний файл — в зависимости от версии БСП она называется «Сохранить в файл», «Выгрузить в файл» или находится в меню «Еще». После выбора команды укажите папку и имя файла — обработка будет записана на диск в формате .epf.
Если команды сохранения в форме нет, используйте обходной путь: откройте обработку на выполнение из списка, а затем, если интерфейс позволяет, сохраните её стандартными средствами. Либо воспользуйтесь программным способом, описанным ниже, — он работает независимо от версии БСП.
Как сохранить обработку в файл программно
Программный способ нужен, когда файлов много, интерфейсной команды нет или выгрузку требуется автоматизировать. Двоичные данные обработки лежат в реквизите «ХранилищеОбработки» справочника «ДополнительныеОтчетыИОбработки». Их нужно извлечь из хранилища значений и записать на диск.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДопОтчеты.ХранилищеОбработки КАК ХранилищеОбработки
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки КАК ДопОтчеты
|ГДЕ
| ДопОтчеты.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование", "Моя обработка");
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ДвоичныеДанные = Выборка.ХранилищеОбработки.Получить();
Если ДвоичныеДанные <> Неопределено Тогда
ДвоичныеДанные.Записать("C:\Temp\МояОбработка.epf");
КонецЕсли;
КонецЕсли;
Код выполняется на сервере, поэтому путь «C:\Temp\» — это папка на сервере 1С, а не на компьютере пользователя. В файловой базе сервер и клиент совпадают, а в клиент-серверном варианте файл нужно будет забрать с сервера или передать на клиент через временное хранилище.
Для массовой выгрузки обойдите выборку в цикле и формируйте имя файла из наименования элемента справочника, очищая его от недопустимых для файловой системы символов (двоеточий, слэшей, кавычек).
Как проверить, что файл сохранился корректно
Самая надежная проверка — открыть сохраненный .epf-файл заново: в конфигураторе через Файл → Открыть или в режиме предприятия через Файл → Открыть в тонком клиенте. Если обработка открывается без ошибок и выполняет свои функции, файл записан корректно.
Дополнительно убедитесь, что размер файла не нулевой и сопоставим с исходным, если он был. Файл размером в несколько байт или ноль байт означает, что хранилище значений было пустым — например, элемент справочника создали вручную, не загрузив саму обработку.
Как проверить результат
Файл открывается в конфигураторе или предприятии без сообщений об ошибках
Ошибка формата потока или «файл не является внешней обработкой»
Размер сопоставим с исходным файлом, обычно от десятков килобайт
Нулевой или подозрительно маленький размер
Обработка запускается и выполняет свои функции в тестовой базе
Ошибки при открытии формы или выполнении команд
Типичные ошибки и ограничения
Частая ситуация — попытка сохранить обработку, которая была загружена в базу из защищенного хранилища или поставляется без исходного кода. Такая обработка выгрузится в файл, но открыть её модуль в конфигураторе не получится: код скрыт паролем поставщика. Это ограничение формата, а не ошибка выгрузки.
Вторая типичная проблема — путаница между .epf и .erf. Отчет, сохраненный с расширением обработки, не откроется корректно. Следите за типом объекта: внешние отчеты сохраняйте как .erf, обработки — как .epf.
Что делать с сохраненным файлом дальше
Сохраненный .epf-файл можно перенести в другую базу двумя способами. Первый — открыть его напрямую через Файл → Открыть в режиме предприятия: обработка запустится без подключения, что удобно для разового использования. Второй — подключить её в целевой базе через тот же справочник «Дополнительные отчеты и обработки», командой «Добавить из файла».
При подключении к другой конфигурации проверьте совместимость: обработка, написанная под конкретную конфигурацию и обращающаяся к её объектам (документам, регистрам, общим модулям), в чужой базе будет работать с ошибками. Перед переносом полезно открыть модуль в конфигураторе и оценить зависимости.
Способы сохранения обработки
Подходит, когда обработка открыта для редактирования. Самый простой способ, но работает только с файлами на диске, а не с объектами в базе
Подходит для обработок, подключенных к типовой конфигурации. Быстро и без кода, но наличие команды зависит от версии БСП и прав пользователя
Универсальный вариант для массовой выгрузки и автоматизации. Требует прав на выполнение кода и аккуратности с путями в клиент-серверном режиме
Что важно запомнить
Обработка на диске сохраняется через конфигуратор (Файл → Сохранить как, формат .epf), обработка внутри базы — командой выгрузки из справочника дополнительных отчетов и обработок или программно через ХранилищеОбработки.Получить(). Результат всегда проверяйте повторным открытием файла, а перед любыми изменениями в рабочей базе делайте резервную копию.
Частые вопросы
Чем отличается файл .epf от .erf?
.epf — это внешняя обработка, .erf — внешний отчет. У отчета есть схема компоновки данных и он предназначен для формирования табличных документов, у обработки — произвольная логика и формы. Сохранять объект нужно с «родным» расширением, иначе платформа не сможет его корректно открыть.
Можно ли сохранить обработку в файл без прав администратора?
Выгрузка из справочника дополнительных обработок требует права на чтение этого справочника и обычно доступна пользователям с соответствующей ролью. Если прав нет, обратитесь к администратору базы — самостоятельно обойти ограничение штатными средствами нельзя.
Почему выгруженный файл не открывается в конфигураторе?
Наиболее вероятные причины: обработка защищена паролем поставщика (модуль скрыт намеренно), файл поврежден при передаче, либо версия платформы, в которой создана обработка, новее вашей. Проверьте версию платформы и попробуйте открыть файл в режиме предприятия — защищенные обработки там обычно работают.
Как сохранить сразу все дополнительные обработки из базы?
Штатной команды массовой выгрузки в типовых конфигурациях нет. Используйте программный способ: запросом выберите все элементы справочника «ДополнительныеОтчетыИОбработки», извлеките двоичные данные из реквизита «ХранилищеОбработки» и запишите каждый элемент в отдельный файл, формируя имя из наименования.
Куда сохраняется файл при программной выгрузке в клиент-серверной базе?
Код, выполняемый на сервере, пишет файл в файловую систему сервера 1С. Чтобы передать файл пользователю, поместите двоичные данные во временное хранилище (ПоместитьВоВременноеХранилище) и на клиенте сохраните их через диалог выбора файла.
Можно ли сохранить обработку из файловой базы в формате XML или исходников?
Штатно конфигуратор сохраняет внешнюю обработку только в бинарном формате .epf. Выгрузка в XML-файлы (для систем контроля версий) выполняется через конфигуратор: откройте обработку и используйте команду выгрузки в файлы конфигурации, либо сторонние инструменты вроде EDT или утилит разборки epf.