Skip to main content

saby v8unpack

img lib ver img python ver img license img coverage

v8unpack - консольная утилита для сборки и распаковки бинарных файлов 1С:Предприятие 8.х (cf, cfe, epf) без использования технологической платформы.

В какой-то момент жить без системы контроля версий на уровне исходников стало совсем не выносимо и обозрев все варианты выбор пал на v8unpack. Однако, без устранения основных недостатков его использование было бы крайне не удобным (плоский список из нечеловекочитаемых файлов, скрытый где-то в дебрях программный код управляемых форм). Сразу скажу, что мы с глубоким уважением относимся к труду авторов v8unpack, данная утилита отлично выполняет все свои функции и без неё создание этого решения было бы не возможным. Кроме этого её Python реализация от Infactum была взята за основу без каких либо изменений.

Ключевые отличия от аналогичных утилит:

  • Структура хранения максимально приближена к структуре метаданных, человеко-читаемые имена файлов
  • Программный код всегда хранится в отдельных файлах и может быть разделен на несколько файлов
  • Общие для разных решений объекты метаданных могут автоматически браться из субмодулей
  • Двоичные данные макетов и картинки хранятся в исходном виде
  • При сборке под 8.2 и 8.1. автоматически комментируются директивы 8.3
  • Файлы хранятся в формате json
  • Видны изменения элементов форм

Основным назначением утилиты являются:

  1. Автоматическая сборка приложений 1С (расширения конфигураций, внешние обработки) для различных платформ и конфигураций из одних и тех же исходников
  2. Удобное и человекочитаемое хранение исходников в системах контроля версий.

Алгоритм работы

Утилита распаковывает и запаковывет бинарник 1С в 4 этапа:

  1. Распаковка стандартным v8unpack – на выходе текстовые файлы
  2. Конвертация в json
  3. Декодирование заголовков и разбивка по типам метаданных
  4. Организация кода и структуры хранения
  • вынос областей кода и панелей форм в отдельные файлы
  • сборка кода и форм из нескольких файлов
  • разделение объектов метаданных, панелей форм, файлов или областей кода под сабмодулям
  • версионирование кода расширения по версиям без применения областей

Алгоритм работы

Установка

pip install v8unpack

или скачайте exe файл

собрать exe файл актуальной версии можно запустив build_local.cmd из корня проекта.

Если работаете с тяжелыми конфигурациями используйте 64-bit питон последних версий.

Распаковка файла 1С

из командной строки:

v8unpack.exe -E d:/sample.cf d:/unpack

из python:

import v8unpack

if __name__ == '__main__':
    v8unpack.extract('d:/sample.cf', 'd:/unpack')

Сборка исходников

из командной строки:

v8unpack.exe -B d:/unpack d:/repacked.cf

из python:

import v8unpack

if __name__ == '__main__':
    v8unpack.build('d:/unpack', 'd:/repacked.cf')

Документация

Переход на сборку из одних исходников

Использование

История изменений

Участие

Отладка

Ограничения

Разметка форм и свойства объектов по прежнему является не читаемыми, но в этом виде проще проводить их анализ и при желании дополнить парсер.

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

Metadata

Release files for v8unpack 1.2.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for v8unpack 1.2.15
File Size Uploaded Provenance
v8unpack-1.2.15.tar.gz 1.4 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for v8unpack 1.2.15
File Interpreter ABI Platform
v8unpack-1.2.15-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / v8unpack-1.2.15.tar.gz

Download URL v8unpack-1.2.15.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
2b27140c3cbacca3ee0213c95b180f49289e753f00f1b764c3ac766219c9ebfa
BLAKE2b-256 checksum
How to use checksums
0d23cdf3f2b9aa092f8d5fc678c945526596731a967d9282e0df53e59383ace7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / v8unpack-1.2.15-py3-none-any.whl

Download URL v8unpack-1.2.15-py3-none-any.whl
Size 129.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
39c27b04273cc1f04cc65d9107999ac7f4a9e69c77fd1386b9d3d98496929169
BLAKE2b-256 checksum
How to use checksums
b7f1ae0c832a120082f2976431734bbf4184fa2371cd20fcb552a0983ec6f5d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Security for v8unpack 1.2.15

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.2.15 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page