Распаковщик и запаковщик файлов

10.02.26

Разработка - Инструментарий разработчика

Инструмент разработан исключительно с использованием языка 1С для работы с двоичными данными, буферами и потоками без использования библиотек и компонент. Работает только в файловом варианте на платформе 8.5 и выше х64.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Распаковщик и запаковщик файлов:
.epf 68,54Kb ver:1.4.3
113 6 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Предыстория:

Многие знают об утилите v8unpack, которая используется для работы с файлами epf, erf и cf. Однако в процессе разработки возникли некоторые проблемы, связанные с новым форматом, ошибками хеш-сумм и т.д.

Решил отказаться от использования утилиты в пользу 1С. В 1С есть параметры, например, DumpConfigToFiles и т.д., которые могут быть использованы для этой цели. Однако, они тоже имеют недостаток: без указания параметров подключения к информационной базе "/F <база> /N <пользователь> /P <пароль>" происходит некорректная запаковка (ссылки на реквизиты теряются), пропадают заимствованные объекты, изменяются права у ролей и т.д. 

Позже нашел описание форматов файлов *.epf, *.erf, *.cf и обработку для работы с ними. Однако и здесь не обошлось без проблем, т.к. в обработке нет сжатия данных по алгоритму deflate, медленная распаковка данных по алгоритму inflate и т.д. В итоге написал распаковщик файлов и наполовину запаковщик файлов, ориентируясь на описания форматов файлов.

Инструкция:

  1. Выбрать файл.
  2. Нажать кнопку "Распаковать".
  3. Нажать кнопку "Запаковать".

Заметки:

Описание форматов файлов:

Список инструментов, использованных при разработке:

 
Последние изменения:

1.4.3

Исправлена ошибка при вызове метода контекста (Сдвинуть).

1.4.2

Проведена небольшая оптимизация кода:
- Нерекомендуемые синхронные вызовы исключены из модулей форм.
- Передача константы/значения напрямую без промежуточных переменных.
- Устаревший метод "Найти" заменен на новый.
Исправлены выявленные ошибки.

1.4.1

Сведения о внешней обработке перенесены в заголовок формы.
Проведена небольшая оптимизация кода:
- Конкатенации строк, сложные для восприятия, были заменены на функцию СтрШаблон.
- Устаревшие конструкторы ЗаписьZipФайла и ЧтениеZipФайла заменены на новые.
- Устаревший метод Base64Значение заменен на новый.
Исправлены выявленные ошибки:
- В некоторых файловых путях заменены передние слэши на обратные.
- Удалены повторяющиеся слэши из путей к файлам.

1.4.0

Теперь поддерживаются 2 формы: "Версия 8.5" и "Такси". Требуется платформа 8.5.1.1150 и выше.

Упразднена неуправляемая обычная форма.

1.3.4

Теперь deflate распаковывается в памяти без использования временных файлов.

1.3.3

Добавлена возможность сохранить объекты конфигурации или расширения конфигурации хранилища (кроме удаленных).

1.3.2

Теперь проверяет режим совместимости при сохранении расширений конфигураций базы.

1.3.1

Добавлено поле для указания номера версии хранилища при сохранении конфигурации или расширения конфигурации хранилища.

Ускорено сохранение конфигурации или расширения конфигурации хранилища в полтора раза.

1.3.0

Добавлена возможность сохранить последнее расширение конфигурации хранилища.

 

Вступайте в нашу телеграмм-группу Инфостарт

распаковка запаковка