Skip to main content

Unpacking binaries 1C to JSON for GIT

Project description

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 файл

Если работаете с тяжелыми конфигурациями используйте 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')

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

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

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

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

Участие

Отладка

Ограничения

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

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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

v8unpack-0.19.0.tar.gz (85.9 kB view details)

Uploaded Source

Built Distribution

v8unpack-0.19.0-py3-none-any.whl (131.5 kB view details)

Uploaded Python 3

File details

Details for the file v8unpack-0.19.0.tar.gz.

File metadata

  • Download URL: v8unpack-0.19.0.tar.gz
  • Upload date:
  • Size: 85.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for v8unpack-0.19.0.tar.gz
Algorithm Hash digest
SHA256 0639fc344426a170fb562b601c8a2f22a3e3b6105164a22c772ba25289d747c4
MD5 f6ce7c1b2b31d3ef84e6b1b5e90f2361
BLAKE2b-256 a992fd7b5c712f5c47c2587000c6791d4d0aee2d94cb5783e30bf0ad13d99e04

See more details on using hashes here.

File details

Details for the file v8unpack-0.19.0-py3-none-any.whl.

File metadata

  • Download URL: v8unpack-0.19.0-py3-none-any.whl
  • Upload date:
  • Size: 131.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for v8unpack-0.19.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4b219b8d2800fadbee9b4a83d411030f167ebf3de520eec1f202d8913c0e15b
MD5 6e6ae8685b5d9572ef4e7ad710a81c0d
BLAKE2b-256 ac4b5cee0262535cd5f42cf84f0dfdb97b1fc9151b647f10c86b0743669ed2ed

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page