Внимание! Официально 1С не описывала данный формат файлов, претензии не принимаются.
Утилита предназначена для технических специалистов, например для целей восстановления поврежденных баз данных, диагностики и исправления целостности конфигураций.
При разработке во многом вдохновлялся утилитой V8Unpack, но делал под свои нужды, в первую очередь для диагностики и исправления ошибок.
Поддерживается "старый" и "новый" 64-разрядный формат, с заглушкой и без.
Отдельное спасибо авторам публикаций раз и два за описание форматов.
Это утилита командной строки. Есть экспериментальная сборка для Linux x86-64
Кратко о формате CFU:
В файлах CFU распространяются обновления для конфигураций 1С. В отличие от файлов CF сжимаются не объекты внутри контейнера, а сам контейнер. Если файл распаковать (например с помощью данной утилиты pf1CTool inflate 1Cv8.cfu 1Cv8.cfu.unp ), на выходе будет корректный файл-контейнер который можно просмотреть командой list.
При запуске без параметров программа показывает краткую справку о возможных параметрах.
Подробное описание параметров в приложенном файле readme.htm
Возможности: получить список файлов в контейнере, распаковать контейнер (без разжатия, с разжатием или с разжатием рекурсивно, собрать контейнер, протестировать, сконвертировать из старого формата в новый и обратно, получить информацию о CFU-файле, применить обновление из CFU к CF с получением нового CF. При распаковке контейнера можно фильтровать файлы по маске DOS-вида (version*) или регулярному выражению.
Зачем ещё одна подобная утилита? Я делал так чтобы было удобно мне, в т.ч. чтобы было легко что-то поправить в исходниках.
Примеры:
pfCFTool -l 1Cv8.cf -M ver*
Вывести список объектов с именами начинающимися на "ver"
pfCFTool -u 1Cv8.cf -m ^.{1,9}$ -c auto -d .\unp
Распаковать с разжатием в каталог unp объекты с именами не длиннее 9 символов
pfCFTool -u 1Cv8.cf -c auto -d .\unp -r
Распаковать контейнер с разжатием в каталог unp с распаковкой вложенных контейнеров
pfCFTool -p 1Cv8.cf -c auto -d .\unp -r
Упаковать обратно контейнер с автоматическим сжатием из каталога unp с упаковкой вложенных контейнеров
pfCFTool -t 1Cv8.cf -c deflate
Протестировать контейнер с разжатием объектов. Утилита сообщит о "битых" объектах
pfCFTool compare 1Cv8.cf 1Cv8-2.cf -c deflate
Сравнить содержимое двух контейнеров с разжатием объектов
pfCFTool convert 1Cv8.cf 1Cv8-2.cf -cv new -cnv 1
Изменить формат контейнера 1Cv8.cf из нового в старый, результат записать как 1Cv8-2.cf
pfCFTool inflate root root.txt
Разжать сжатый алгоритмом deflate файл "root", результат сохранить как root.txt
pfCFTool deflate root.txt root
Сжать алгоритмом deflate файл "root.txt", результат сохранить как "root"
pfCFTool cfupdate 1Cv8.cf 1cv8.cfu 1Cv8-new.cf
Применить файл обновления 1Cv8.cfu к конфигурации 1Cv8.cf, результат сохранить как 1Cv8-new.cf
pfCFTool cfuinfo 1cv8.cfu
Получить информацию о файле обновления. Результат выглядит примерно так:
Conf : БухгалтерияПредприятияБазовая Author : Фирма "1С" Version: 1.6.21.6 Delete : 91 Insert : 3806 Root : e0666db2-45d6-49b4-a200-061c6ba7d569 ReleaseID : 80095800-cdbf-4398-b132-4771464b119d 1564a6c8-0001-0000-18a3-f400bce61200 Updates for: 1 БухгалтерияПредприятияБазовая 1.6.20.6 07b4cfe0-9b02-424a-8271-60d424a67ef8
Исходники на github
Сборки для Win32/Win64/Linux x86-64/macOS64 прикладываю
Версия 3.1.0 - первый публичный релиз.