Skip to content

Разговоров М. А. / Утилита для сборки разборки внешних обработок и расширений 1С без технологической платформы

License

Notifications You must be signed in to change notification settings

andpyxa/v8unpack-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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. Удобное и человекочитаемое хранение исходников в системах контроля версий.

Установка

pip install v8unpack

Распаковка файла 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')

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

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

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

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

Участие

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

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

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

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

Ограничения

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

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

About

Разговоров М. А. / Утилита для сборки разборки внешних обработок и расширений 1С без технологической платформы

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages