saby v8unpack

v8unpack - консольная утилита для сборки и распаковки бинарных файлов
1С:Предприятие 8.х (cf, cfe, epf) без использования технологической платформы.
В какой-то момент жить без системы контроля версий на уровне исходников стало совсем не выносимо и обозрев все
варианты выбор пал на v8unpack. Однако, без устранения основных недостатков его использование было бы крайне
не удобным (плоский список из нечеловекочитаемых файлов, скрытый где-то в дебрях программный код управляемых форм).
Сразу скажу, что мы с глубоким уважением относимся к труду авторов v8unpack, данная утилита отлично выполняет все
свои функции и без неё создание этого решения было бы не возможным. Кроме этого её Python реализация от Infactum
была взята за основу без каких либо изменений.
Ключевые отличия от аналогичных утилит:
- Структура хранения максимально приближена к структуре метаданных, человеко-читаемые имена файлов
- Программный код всегда хранится в отдельных файлах и может быть разделен на несколько файлов
- Общие для разных решений объекты метаданных могут автоматически браться из субмодулей
- Двоичные данные макетов и картинки хранятся в исходном виде
- При сборке под 8.2 и 8.1. автоматически комментируются директивы 8.3
- Файлы хранятся в формате json
- Видны изменения элементов форм
Основным назначением утилиты являются:
- Автоматическая сборка приложений 1С (расширения конфигураций, внешние обработки)
для различных платформ и конфигураций из одних и тех же исходников
- Удобное и человекочитаемое хранение исходников в системах контроля версий.
Алгоритм работы
Утилита распаковывает и запаковывет бинарник 1С в 4 этапа:
- Распаковка стандартным v8unpack – на выходе текстовые файлы
- Конвертация в json
- Декодирование заголовков и разбивка по типам метаданных
- Организация кода и структуры хранения
- вынос областей кода и панелей форм в отдельные файлы
- сборка кода и форм из нескольких файлов
- разделение объектов метаданных, панелей форм, файлов или областей кода под сабмодулям
- версионирование кода расширения по версиям без применения областей

Установка
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')
Документация
Переход на сборку из одних исходников
Использование
История изменений
Участие
Отладка
Ограничения
Разметка форм и свойства объектов по прежнему является не читаемыми, но в этом виде проще проводить их
анализ и при желании дополнить парсер.
На текущий момент утилита покрывает все типы метаданных в нужном нам объеме,
если Вам нужно более детальная распаковка каких то объектов напишите здесь обращение
или сделайте самостоятельно, мы будем рады любому участию в проекте.