Как сохранить внешнюю обработку из 1С:Бухгалтерия 2.0 обратно в файл .epf?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия
← На главную

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

Способ 1: Особенности интерфейса справочника «Внешние обработки»

Проанализируем стандартное поведение системы. В «1С:Бухгалтерия 2.0», которая базируется на обычных формах, справочник с внешними обработками ведет себя специфически. Рассмотрим по шагам, почему кнопка сохранения может быть «невидимой»:

  1. Выясним причину отсутствия кнопки: если вы используете двойной клик по строке в списке, система часто сразу запускает саму обработку на исполнение, вместо того чтобы открыть ее карточку.
  2. Попробуем альтернативный вход: выделите нужную строку в списке и нажмите на кнопку «Изменить» (иконка с карандашом) на командной панели или воспользуйтесь клавишей F2.
  3. В открывшейся форме элемента справочника проанализируем командную панель. Именно здесь должна находиться кнопка «Сохранить как...» или иконка дискеты со стрелкой.

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

Способ 2: Программное извлечение файла через ХранилищеЗначений

Если стандартный интерфейс изменен разработчиками и кнопки сохранения физически нет, мы можем прибегнуть к программному методу. В системе 1С файлы внешних обработок хранятся в базе данных в бинарном виде. Для этого используется специальный тип данных — ХранилищеЗначений. Рассмотрим пример кода, который позволит нам принудительно выгрузить файл на диск. Этот код можно запустить в консоли кода или создать временную внешнюю обработку.


// Выберем ссылку на элемент справочника, зная его наименование или код
СсылкаНаОбработку = Справочники.ВнешниеОбработки.НайтиПоНаименованию("ПечатьДоговора");

Если Не СсылкаНаОбработку.Пустая() Тогда
    // Получим объект справочника
    ОбъектСправочника = СсылкаНаОбработку.ПолучитьОбъект();
    
    // В БП 2.0 реквизит обычно называется ХранилищеВнешнейОбработки
    // Извлекаем данные из хранилища
    ДвоичныеДанныеФайла = ОбъектСправочника.ХранилищеВнешнейОбработки.Получить();
    
    Если ДвоичныеДанныеФайла <> Неопределено Тогда
        ПутьВыгрузки = "C:\MyFiles\ExtProcessing.epf";
        // Записываем данные на диск
        ДвоичныеДанныеФайла.Записать(ПутьВыгрузки);
        Сообщить("Файл успешно сохранен по пути: " + ПутьВыгрузки);
    Иначе
        Предупреждение("В карточке справочника отсутствует файл обработки (пустое хранилище)!");
    КонецЕсли;
КонецЕсли;

Проанализируем этот алгоритм: метод Получить() у объекта ХранилищеЗначений возвращает объект типа ДвоичныеДанные, который обладает встроенным методом Записать(). Это самый надежный способ извлечения, который работает в обход любых ограничений экранных форм.

Способ 3: Поиск во временных файлах пользователя

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

  1. Извлекает бинарные данные из базы.
  2. Создает временный файл во временной директории операционной системы (обычно это папка %TEMP%).
  3. Присваивает файлу случайное имя с расширением .epf.
  4. Запускает этот файл.

Проанализируем содержимое папки временных файлов вашего профиля Windows. Если 1С не успела очистить кэш, вы можете найти там свою обработку. Ориентируйтесь на дату и время последнего изменения файла и размер, характерный для внешних обработок 1С. Это может спасти ситуацию, если элемент справочника в базе был случайно помечен на удаление или поврежден.

Разберем возможные проблемы при сохранении

Иногда кнопка сохранения есть, но процесс завершается ошибкой или файл не появляется. Выясним основные причины:

Подводя итог, отметим: в 90% случаев в «1С:Бухгалтерия 2.0» достаточно просто использовать кнопку «Изменить» вместо двойного клика. В остальных случаях программный доступ к реквизиту ХранилищеВнешнейОбработки гарантирует результат.

← На главную