К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как в 1С сохранить дополнительную обработку в файл

Как сохранить дополнительную (внешнюю) обработку 1С в файл .epf: через конфигуратор, из справочника дополнительных отчетов и обработок и программно. Пошаговая инструкция.

Дополнительная обработка в 1С существует в двух видах: как файл с расширением .epf на диске и как объект, загруженный в базу через механизм «Дополнительные отчеты и обработки» библиотеки стандартных подсистем (БСП). Задача сохранить такую обработку в файл возникает, когда нужно перенести её в другую базу, отправить коллеге, внести изменения в конфигураторе или создать резервную копию перед обновлением.

Способ сохранения зависит от того, где сейчас находится обработка. Если она уже есть в виде файла и открыта в конфигураторе — достаточно команды «Сохранить как». Если обработка хранится только внутри информационной базы (загружена в справочник дополнительных обработок), файл придется извлечь из хранилища значений. Ниже разобраны оба сценария, а также программный вариант для случаев, когда файлов нужно выгрузить много.

Где хранится дополнительная обработка и в каком виде её сохранять

Внешняя обработка на диске — это файл с расширением .epf (отчеты — .erf). Такой файл открывается конфигуратором и тонким клиентом через меню Файл → Открыть, не требуя подключения к конкретной базе. Внутри файла находятся модуль объекта, формы, макеты и код внешней обработки.

Когда обработку подключают к типовой конфигурации через подсистему «Дополнительные отчеты и обработки», её двоичные данные копируются в справочник «ДополнительныеОтчетыИОбработки» и хранятся внутри базы в хранилище значений. Исходный файл на диске при этом больше не нужен для работы — база использует собственную копию. Поэтому, если файл потерян, его всегда можно восстановить, выгрузив данные из справочника.

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

Этот способ подходит, когда обработка открыта для редактирования или была создана с нуля. Откройте конфигуратор, затем через меню Файл → Открыть укажите существующий .epf-файл либо создайте новую обработку через Файл → Новый → Внешняя обработка.

После внесения изменений выберите Файл → Сохранить (Ctrl+S) для перезаписи текущего файла или Файл → Сохранить как, чтобы записать копию под новым именем в нужную папку. В диалоге сохранения тип файла уже будет установлен как «Внешняя обработка (*.epf)», менять его не требуется.

Порядок действий в конфигураторе
  1. 1
    Откройте конфигуратор и загрузите обработку через Файл → Открыть
  2. 2
    Внесите нужные изменения в модуль, формы или макеты
  3. 3
    Выберите Файл → Сохранить как и укажите папку и имя файла
  4. 4
    Убедитесь, что расширение файла — .epf, и нажмите «Сохранить»
  5. 5
    Проверьте результат: откройте сохраненный файл заново и убедитесь, что изменения на месте

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

Как выгрузить обработку из справочника дополнительных отчетов и обработок

В типовых конфигурациях на БСП (Управление торговлей, ERP, Бухгалтерия предприятия, ЗУП и другие) подключенные обработки хранятся внутри базы. Чтобы получить их в виде файла, перейдите в раздел Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. В некоторых конфигурациях этот пункт находится в разделе «НСИ и администрирование».

Откройте нужный элемент справочника. В форме элемента, как правило, доступна команда сохранения обработки во внешний файл — в зависимости от версии БСП она называется «Сохранить в файл», «Выгрузить в файл» или находится в меню «Еще». После выбора команды укажите папку и имя файла — обработка будет записана на диск в формате .epf.

Если команды сохранения в форме нет, используйте обходной путь: откройте обработку на выполнение из списка, а затем, если интерфейс позволяет, сохраните её стандартными средствами. Либо воспользуйтесь программным способом, описанным ниже, — он работает независимо от версии БСП.

Как сохранить обработку в файл программно

Программный способ нужен, когда файлов много, интерфейсной команды нет или выгрузку требуется автоматизировать. Двоичные данные обработки лежат в реквизите «ХранилищеОбработки» справочника «ДополнительныеОтчетыИОбработки». Их нужно извлечь из хранилища значений и записать на диск.

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ДопОтчеты.ХранилищеОбработки КАК ХранилищеОбработки

|ИЗ

| Справочник.ДополнительныеОтчетыИОбработки КАК ДопОтчеты

|ГДЕ

| ДопОтчеты.Наименование = &Наименование";

Запрос.УстановитьПараметр("Наименование", "Моя обработка");

Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда

ДвоичныеДанные = Выборка.ХранилищеОбработки.Получить();

Если ДвоичныеДанные <> Неопределено Тогда

ДвоичныеДанные.Записать("C:\Temp\МояОбработка.epf");

КонецЕсли;

КонецЕсли;

Код выполняется на сервере, поэтому путь «C:\Temp\» — это папка на сервере 1С, а не на компьютере пользователя. В файловой базе сервер и клиент совпадают, а в клиент-серверном варианте файл нужно будет забрать с сервера или передать на клиент через временное хранилище.

Для массовой выгрузки обойдите выборку в цикле и формируйте имя файла из наименования элемента справочника, очищая его от недопустимых для файловой системы символов (двоеточий, слэшей, кавычек).

Как проверить, что файл сохранился корректно

Самая надежная проверка — открыть сохраненный .epf-файл заново: в конфигураторе через Файл → Открыть или в режиме предприятия через Файл → Открыть в тонком клиенте. Если обработка открывается без ошибок и выполняет свои функции, файл записан корректно.

Дополнительно убедитесь, что размер файла не нулевой и сопоставим с исходным, если он был. Файл размером в несколько байт или ноль байт означает, что хранилище значений было пустым — например, элемент справочника создали вручную, не загрузив саму обработку.

Контрольные точки

Как проверить результат

Открытие файла
Норма

Файл открывается в конфигураторе или предприятии без сообщений об ошибках

Тревожный признак

Ошибка формата потока или «файл не является внешней обработкой»

Размер файла
Норма

Размер сопоставим с исходным файлом, обычно от десятков килобайт

Тревожный признак

Нулевой или подозрительно маленький размер

Работоспособность
Норма

Обработка запускается и выполняет свои функции в тестовой базе

Тревожный признак

Ошибки при открытии формы или выполнении команд

Типичные ошибки и ограничения

Частая ситуация — попытка сохранить обработку, которая была загружена в базу из защищенного хранилища или поставляется без исходного кода. Такая обработка выгрузится в файл, но открыть её модуль в конфигураторе не получится: код скрыт паролем поставщика. Это ограничение формата, а не ошибка выгрузки.

Вторая типичная проблема — путаница между .epf и .erf. Отчет, сохраненный с расширением обработки, не откроется корректно. Следите за типом объекта: внешние отчеты сохраняйте как .erf, обработки — как .epf.

Типичные ошибки
01
Сохранение в папку без прав записи — файл не создается, а ошибка в программном сценарии может быть пропущена без обработки исключений
02
Путаница с путями в клиент-серверном режиме — файл записывается на сервер, а пользователь ищет его на своем компьютере
03
Выгрузка из хранилища без проверки Получить() на Неопределено — в результате пустой файл или ошибка
04
Попытка открыть защищенную паролем обработку в конфигураторе — модуль недоступен, это ограничение защиты, а не повреждение файла

Что делать с сохраненным файлом дальше

Сохраненный .epf-файл можно перенести в другую базу двумя способами. Первый — открыть его напрямую через Файл → Открыть в режиме предприятия: обработка запустится без подключения, что удобно для разового использования. Второй — подключить её в целевой базе через тот же справочник «Дополнительные отчеты и обработки», командой «Добавить из файла».

При подключении к другой конфигурации проверьте совместимость: обработка, написанная под конкретную конфигурацию и обращающаяся к её объектам (документам, регистрам, общим модулям), в чужой базе будет работать с ошибками. Перед переносом полезно открыть модуль в конфигураторе и оценить зависимости.

Способы сохранения обработки

Конфигуратор: Сохранить как

Подходит, когда обработка открыта для редактирования. Самый простой способ, но работает только с файлами на диске, а не с объектами в базе

Команда из справочника БСП

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

Программная выгрузка

Универсальный вариант для массовой выгрузки и автоматизации. Требует прав на выполнение кода и аккуратности с путями в клиент-серверном режиме

Итог

Что важно запомнить

Обработка на диске сохраняется через конфигуратор (Файл → Сохранить как, формат .epf), обработка внутри базы — командой выгрузки из справочника дополнительных отчетов и обработок или программно через ХранилищеОбработки.Получить(). Результат всегда проверяйте повторным открытием файла, а перед любыми изменениями в рабочей базе делайте резервную копию.

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

Чем отличается файл .epf от .erf?

.epf — это внешняя обработка, .erf — внешний отчет. У отчета есть схема компоновки данных и он предназначен для формирования табличных документов, у обработки — произвольная логика и формы. Сохранять объект нужно с «родным» расширением, иначе платформа не сможет его корректно открыть.

Можно ли сохранить обработку в файл без прав администратора?

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

Почему выгруженный файл не открывается в конфигураторе?

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

Как сохранить сразу все дополнительные обработки из базы?

Штатной команды массовой выгрузки в типовых конфигурациях нет. Используйте программный способ: запросом выберите все элементы справочника «ДополнительныеОтчетыИОбработки», извлеките двоичные данные из реквизита «ХранилищеОбработки» и запишите каждый элемент в отдельный файл, формируя имя из наименования.

Куда сохраняется файл при программной выгрузке в клиент-серверной базе?

Код, выполняемый на сервере, пишет файл в файловую систему сервера 1С. Чтобы передать файл пользователю, поместите двоичные данные во временное хранилище (ПоместитьВоВременноеХранилище) и на клиенте сохраните их через диалог выбора файла.

Можно ли сохранить обработку из файловой базы в формате XML или исходников?

Штатно конфигуратор сохраняет внешнюю обработку только в бинарном формате .epf. Выгрузка в XML-файлы (для систем контроля версий) выполняется через конфигуратор: откройте обработку и используйте команду выгрузки в файлы конфигурации, либо сторонние инструменты вроде EDT или утилит разборки epf.