Пропала или сломалась обработка 1С: откуда её вернуть и как не потерять снова

· 11 мин

Содержание

Чтобы восстановить обработку в 1С, сначала определите, где она жила. Внешнюю обработку , подключённую через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, можно выгрузить обратно в файл .epf прямо из карточки — платформа хранит её копию в базе. Обработку из состава конфигурации возвращают сравнением с конфигурацией поставщика или с версией из хранилища. Если нет ни того, ни другого, поможет резервная копия базы .dt, развёрнутая в отдельную базу.

Хуже всего, когда файл .epf лежал только на рабочем столе и был удалён. Но и здесь шансы есть: корзина, предыдущие версии файлов Windows, почта, на которую его когда-то присылали.

С чего начать: определяем тип обработки и масштаб потери

Восстановление зависит от двух вопросов: где хранилась обработка и что с ней случилось. От ответа зависит, какой способ сработает за пять минут, а какой отнимет день.

Где может храниться обработка:

  • 📁 Внешний файл .epf (или .erf для отчёта) — открывается через Файл → Открыть в клиенте или Конфигураторе. Живёт на диске или в сетевой папке, база про него ничего не знает.
  • 🗂 Дополнительная обработка в справочнике — тот же .epf, но загруженный в базу через механизм дополнительных отчётов и обработок. Двоичные данные файла сохраняются в базе.
  • 🧩 Обработка в составе конфигурации — объект в ветке «Обработки» дерева конфигурации. Типовые (например, «Групповое изменение реквизитов») и доработанные программистом.
  • 🔌 Обработка в расширении — объект расширения конфигурации , хранится в базе отдельно от основной конфигурации.

Что могло произойти:

  1. Файл удалили или перезаписали.
  2. Элемент справочника пометили на удаление или удалили окончательно.
  3. Обработку изменили, и она перестала работать — нужна прежняя версия.
  4. Файл повреждён: при открытии платформа сообщает, что файл не является внешней обработкой, или не открывает его.
  5. После обновления конфигурации доработки в обработке потерялись.
Что случилось с вашей обработкой?

Перед любыми действиями с рабочей базой сделайте копию: Конфигуратор → Администрирование → Выгрузить информационную базу. Не восстанавливайте файл .dt поверх рабочей базы, чтобы достать одну обработку — вы потеряете всё, что пользователи внесли после даты копии.

Способ 1. Достаём обработку из справочника дополнительных отчётов и обработок

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

Порядок действий в БП 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на БСП:

  1. Откройте Администрирование → Печатные формы, отчеты и обработки.
  2. Включите флажок «Дополнительные отчеты и обработки», если он снят, и перейдите по ссылке с тем же названием.
  3. Найдите обработку в списке. Если её не видно, включите показ помеченных на удаление: в меню Еще списка есть команда показа помеченных.
  4. Откройте карточку. В командной панели (или в меню Еще) выберите выгрузку в файл.
  5. Сохраните .epf в надёжную папку и проверьте, что он открывается через Файл → Открыть.

Если элемент был только помечен на удаление, снимите пометку — обработка снова появится в меню. Пометку снимает та же команда, которой её ставили (клавиша Delete на выделенной строке переключает пометку).

Для доработанных печатных форм и внешних обработок держите правило: файл, который работает в базе, всегда регистрируйте в справочнике. Тогда база сама становится архивом последней рабочей версии.

Если элемент удалили окончательно через Администрирование → Обслуживание → Удаление помеченных объектов, справочник его уже не вернёт. Переходите к способу 2.

Способ 2. Восстановление обработки из резервной копии базы

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

Если копия в формате .dt

  1. В окне запуска 1С нажмите Добавить и создайте новую пустую информационную базу, например «Восстановление обработки».
  2. Откройте её в Конфигураторе.
  3. Выберите Администрирование → Загрузить информационную базу и укажите файл .dt.
  4. Запустите базу в режиме 1С:Предприятие, найдите обработку в справочнике дополнительных и выгрузите её в файл, как в способе 1.
  5. Для обработки из конфигурации откройте дерево, щёлкните по объекту правой кнопкой и сохраните его во внешнюю обработку — в контекстном меню есть команда сохранения как внешней обработки.

Загрузка .dt в базу размером 20-30 ГБ может занять час и больше, поэтому заранее проверьте место на диске: нужно примерно в 3-5 раз больше размера архива.

Если копия — папка файловой базы или бэкап СУБД

  • 📂 Копия файла 1Cv8.1CD — положите её в отдельную папку и добавьте эту папку в список баз как существующую. Рабочую базу не трогайте.
  • 🗄 Бэкап SQL Server или PostgreSQL — администратор СУБД восстанавливает его под другим именем базы, затем в кластере 1С регистрируется новая информационная база, указывающая на эту копию.

Если копия — файл .cf

Файл .cf содержит только конфигурацию, без данных. Обработки из справочника дополнительных в нём нет, а обработки из конфигурации — есть. Откройте .cf через сравнение (см. способ 4) или загрузите его в пустую базу и сохраните нужный объект во внешний файл.

Способ 3. Ищем потерянный файл .epf и .erf вне базы

Если обработка никогда не загружалась в справочник и не входила в конфигурацию, искать придётся на дисках и в переписке.

Где проверить:

  • 🗑 Корзина Windows — очевидно, но проверяют не всегда. Сортировка по дате удаления быстро покажет нужный файл.
  • 🕘 Предыдущие версии — щёлкните правой кнопкой по папке, где лежал файл, выберите Свойства → Предыдущие версии. Работает, если включены теневые копии или история файлов.
  • 🔍 Поиск по маске — в проводнике по всему диску: *.epf и *.erf. Файлы часто дублируются в «Загрузках» и папках вложений почты.
  • ✉️ Почта и мессенджеры — программист обычно присылает обработку письмом. Поищите по расширению или по имени файла.
  • 🌐 Сетевые папки и облачные диски — у большинства облачных хранилищ есть корзина и история версий файла.
  • 💾 Резервные копии рабочих станций — если в компании настроено копирование профилей пользователей.

Поиск по всему диску из командной строки:

dir C:\*.epf /s /b > %USERPROFILE%\Desktop\epf_list.txt
dir C:\*.erf /s /b >> %USERPROFILE%\Desktop\epf_list.txt

Список сохранится на рабочий стол. Сравните даты изменения и размеры: свежая доработанная версия обычно крупнее исходной.

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

Способ 4. Возвращаем обработку в конфигурации: хранилище и конфигурация поставщика

Этот способ нужен, когда обработка входит в конфигурацию и её испортили правками или обновлением. Возвращать нужно один объект, а не всю конфигурацию.

Из хранилища конфигурации

Если разработка ведётся через хранилище, каждая помещённая версия объекта сохранена.

  1. Откройте Конфигурация → Хранилище конфигурации → История хранилища.
  2. Найдите версию, в которой обработка работала, — по дате и комментарию.
  3. Сохраните эту версию в файл .cf командой сохранения версии в файл.
  4. Выполните Конфигурация → Сравнить, объединить с конфигурацией из файла и укажите этот .cf.
  5. В окне сравнения снимите все флажки и отметьте только нужную обработку.
  6. Выполните объединение, затем Конфигурация → Обновить конфигурацию базы данных.

Обработка должна быть захвачена в хранилище до объединения, а после проверки — помещена обратно с комментарием.

Из конфигурации поставщика

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

  1. Выберите Конфигурация → Сравнить конфигурации: основная конфигурация против конфигурации поставщика.
  2. Найдите обработку в списке различий и посмотрите, что изменилось в модуле и формах.
  3. Если правки не нужны совсем — через объединение верните объект из конфигурации поставщика.

Если конфигурация снята с поддержки или поставщик обновлён до другого релиза, загрузите файл 1Cv8.cf нужного релиза из каталога шаблонов (по умолчанию %APPDATA%\1C\1cv8\tmplts) и сравнивайте с ним.

ИсточникКогда подходитРиск
ХранилищеВедётся групповая разработкаНужно захватить объект, иначе объединение не пройдёт
Конфигурация поставщикаТиповая обработка, изменённая в базеПропадут все доработки объекта, а не только ошибочные
Файл .cf из шаблонов или архиваПоставщик обновлён, нужен прежний релизОбъект может зависеть от общих модулей другого релиза
Резервная копия .dtНи хранилища, ни .cf под рукойДолго разворачивать большую базу

Способ 5. Ручное восстановление кода повреждённой обработки

Ручной путь нужен, когда файл есть, но не открывается, или когда сохранилась только часть: модуль в письме, макет печатной формы, скриншоты формы.

Пробуем открыть и разобрать файл

  1. Откройте .epf в Конфигураторе через Файл → Открыть. Конфигуратор иногда открывает файл, на котором падает клиент, например при несовпадении режима совместимости.
  2. Если открылся — сразу выгрузите его в файлы XML. Это делается из командной строки:
"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER /F"D:\Bases\Empty" /DumpExternalDataProcessorOrReportToFiles "D:\Restore\src\Processing.xml" "D:\Restore\Processing.epf"

Вместо <версия> подставьте номер установленной платформы, вместо D:\Bases\Empty — путь к любой файловой базе, например пустой. Обратная сборка из файлов — ключ /LoadExternalDataProcessorOrReportFromFiles.

  1. Если Конфигуратор не открывает файл, распакуйте контейнер сторонней утилитой с открытым кодом v8unpack. Текст модулей обычно достаётся даже из частично повреждённого файла, формы — не всегда.

Собираем обработку заново

  1. Создайте новую внешнюю обработку: Файл → Новый → Внешняя обработка.
  2. Добавьте реквизиты и табличные части с теми же именами, что были в старой: код обращается к ним по имени.
  3. Создайте форму, перенесите текст модуля объекта и модуля формы.
  4. Запустите синтаксический контроль модуля (Ctrl+F7) — он покажет переменные и процедуры, которых не хватает.
  5. Проверьте на копии базы, а не на рабочей: обработка с ошибкой может записать некорректные данные.

Если модуль восстановлен, а форма нет, проще нарисовать форму заново, чем чинить её разметку. Размещение элементов — работа на 15-30 минут, а логика уже есть в модуле.

Способ 6. Типовые внешние обработки из комплекта поставки

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

Где взять:

  • 📦 Комплект поставки конфигурации — в каталоге шаблонов после установки обновления иногда лежат дополнительные файлы рядом с 1Cv8.cf.
  • 🌐 Раздел обработок на портале поддержки — по договору ИТС доступны актуальные версии типовых внешних обработок.
  • 🧑‍💻 Обслуживающая организация — у партнёра, который ведёт базу, эти файлы обычно лежат готовыми.

Берите версию под вашу платформу и тип интерфейса. Старые обработки для обычных форм не запускаются в управляемом интерфейсе «Такси» или работают с ограничениями.

Многие функции, ради которых раньше искали внешний файл, в БП 3.0, ЗУП 3.1 и УТ 11 встроены в саму программу. Например, групповое изменение реквизитов открывается через Администрирование → Обслуживание → Корректировка данных, а загрузка из Excel доступна в табличных частях документов через Еще → Загрузить из файла или кнопку загрузки. Проверьте это до поисков файла.

Если не получилось вернуть обработку

Бывает, что копий нет нигде: файл существовал в единственном экземпляре, базу с ним не бэкапили, программист недоступен. Тогда остаются альтернативы.

  • 🔁 Найти автора. Даже если с программистом давно не работаете, у него могли сохраниться исходники. У фрилансеров и франчайзи это частая практика.
  • 🧾 Восстановить по результату. Если обработка формировала печатную форму или отчёт, а сохранились распечатки и образцы, по ним можно заказать новую — это дешевле, чем писать с нуля по устному описанию.
  • 🧪 Проверить, нужна ли она вообще. Часто обработку писали под функциональность, которой не было в старом релизе. Сейчас типовой механизм может закрывать ту же задачу.
  • 🛠 Восстановление данных с диска. Специализированные программы иногда находят удалённый .epf, если диск не был сильно перезаписан. На SSD с включённой командой TRIM шансы минимальные.

Ориентировочная стоимость повторной разработки у специалиста — от нескольких тысяч рублей за простую печатную форму до десятков тысяч за обработку с обменом или сложной логикой. Сохранившийся модуль или подробное описание заметно сокращают срок.

Как не потерять обработку в следующий раз

Обработки теряются из-за одного: их держат в единственном экземпляре. Несколько привычек снимают проблему.

Защита обработок от потери
Выполнено: 0 / 6

Для команд разработчиков хороший вариант — выгружать внешние обработки в XML и держать их в Git. Тогда видно, кто и что менял, а любую прошлую версию можно собрать за минуту.

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

Можно ли восстановить обработку из журнала регистрации?
Нет. Журнал регистрации фиксирует события: кто и когда запускал обработку, что записывал. Текста модуля и файла в нём нет.
Сохраняется ли внешняя обработка, если её просто открывали через Файл → Открыть?
Нет. При открытии из файла база не хранит копию. Копия появляется только после регистрации обработки в справочнике дополнительных отчётов и обработок.
Вернётся ли обработка, если загрузить старую конфигурацию .cf целиком?
Вернётся, но вместе с ней откатятся все остальные объекты конфигурации. Если после той версии было обновление, база может перестать соответствовать данным. Возвращайте только нужный объект через сравнение и объединение.
Можно ли открыть обработку, сделанную в более новой платформе?
Если файл сохранён в платформе с номером выше вашей, открыть его может не получиться. Обновите платформу до номера не ниже того, в котором сохранён файл.
Защищённую паролем обработку можно восстановить?
Можно вернуть сам файл любым из описанных способов. Пароль на модули снимает только автор — подбирать или обходить его не нужно, обратитесь к разработчику.