pfCFTool - утилита работы с файлами CF/CFE/CFU/EPF/ERF и подобными

27.03.23

Разработка - Инструментарий разработчика

Утилита pfCFTools создана для распаковки/упаковки файлов со структурой как у CF. Является аналогом известной V8Unpack. Работает в режиме командной строки. Есть поддержка файлов CFU. Для компиляции требуется Free Pascal 3.0.2+. Проверено на Win32/Win64/Linux64/macOS64.

Скачать исходный код

Наименование Файл Версия Размер
pfCFTool - версия 3.1.0
.rar 823,07Kb
13
.rar 823,07Kb 13 Скачать

Внимание! Официально 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 - первый публичный релиз.

CF CFU

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124637    681    389    

732

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7723    24    6    

42

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4240    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178578    1083    0    

861

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99585    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18358    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23844    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28300    3    10    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dmpas 418 27.03.23 11:19 Сейчас в теме
Добро пожаловать в клуб!
Evil Beaver; support; JohnyDeath; cheshirshik; Pasha1st; ZhokhovM; SerVer1C; +7 Ответить
2. Pasha1st 838 27.03.23 22:24 Сейчас в теме
4. nixel 1408 28.03.23 08:27 Сейчас в теме
13. Evil Beaver 8114 29.03.23 23:00 Сейчас в теме
(2) дайте ссылку человеку чтоли на свежий v8unpack
14. agent00mouse 253 30.03.23 10:15 Сейчас в теме
(13)
https://github.com/saby-integration/v8unpack
Где-то тут публикация на него была. Пользую и получаю удовлетворение. ;-D
3. frkbvfnjh 787 28.03.23 05:09 Сейчас в теме
А когда поддержка DT появится?
5. Pasha1st 838 28.03.23 10:00 Сейчас в теме
(3) DT по структуре совсем другой. В кратце - это несколько символов заголовка и сжатые Deflate данные. В качестве данных - в версиях платформы 8.0 и 8.1 текстовое сериализованное значение (из фигурных скобок), в 8.2 и 8.3 - оно же но в бинарном представлении. Я видел тут несколько подобных утилит, правда без исходников. Когда доведу до релиза свой вариант - выложу.
shard; cleaner_it; +2 Ответить
10. frkbvfnjh 787 28.03.23 14:38 Сейчас в теме
(5) Очень, очень ждем! Огромное спасибо за труды! Если будет поддержка DT, скачаю за $тарты с удовольствием.
cleaner_it; +1 Ответить
18. Pasha1st 838 29.05.23 16:29 Сейчас в теме
(10) Статья об устройстве DT
https://infostart.ru/1c/articles/1865138/
Читаем и лайкаем )))
Ссылка на демо-утилиту в тексте статьи, с частичными исходниками.
Полноценную утилиту выложу когда будет готова к релизу
19. frkbvfnjh 787 30.05.23 05:41 Сейчас в теме
(18) Базару нет, залайкаю! :) Было бы сказочно хорошо, если бы в будущем утилита позволяла с минимальными усилиями извлечь конфигурацию из DT, или распаковать в 1Cv8.1CD, пусть даже с поврежденной конфигурацией или таблицами, что бы дальше можно было обработать базу утилитой АВЫ. В целом респект, в том числе за готовый кейс восстановления из поврежденного DT.
6. kser87 2439 28.03.23 10:38 Сейчас в теме
Очередная я бы сказал.
7. Pasha1st 838 28.03.23 12:31 Сейчас в теме
(6) А многие умеют накатывать CFU на CF без использования платформы?
cleaner_it; +1 Ответить
8. kser87 2439 28.03.23 12:57 Сейчас в теме
9. Pasha1st 838 28.03.23 13:09 Сейчас в теме
(8) Я периодически занимаюсь восстановлением баз, часто для этого нужно поднять чистую базу. Или получить CF нужного релиза. Не всегда под рукой есть CF, скачать тоже не всегда возможно или просто дольше чем взять предыдущий и обновить. Не призываю к использованию в продакшне, но мне эта функция нужна.
Говорю же - делал для себя, наконец решил поделиться с теми кому нужно.
frkbvfnjh; cleaner_it; +2 Ответить
11. AlexWhite 194 28.03.23 23:06 Сейчас в теме
А в какую структуру выгружает файлы, как "Конфигуратор, Конфигурация, Выгрузить конфигурацию в файлы" или скопом в один каталог с нечитабельными именами?

как просто распаковать и потом собрать в рабочий CF из разобранного ранее с наименьшими усилиями по отгадыванию, какими параметрами разбирался, с какими собрать?

могу, наверное, потратить пару стартманей, но уже и без этого много потратил на поиск приемлемого парсера/запарсера :-)
12. Pasha1st 838 29.03.23 08:38 Сейчас в теме
(11) это не парсер, это аналог v8unpack - на выходе много файлов с нечитаемыми именами
15. huxuxuya 368 20.04.23 12:30 Сейчас в теме
А с форматами контейнеров новый и старый это что за история не подскажите где можно про это почитать?
И на какой версии платформы меняется формат контейнера?
16. Pasha1st 838 21.04.23 14:06 Сейчас в теме
(15) https://infostart.ru/1c/articles/1570766/
С платформы 8.3.16 ввели "новый" формат CF. Если в старом все размеры и смещения были 32-разрядные и со знаком, и размер контейнера ограничивался 2Гб, то в обновленном - 64-разрядные. Стало возможно выгружать контейнеры больше 2Гб.
Ещё интересный момент - если CF - контейнер сжатых объектов, то CFU - сжатый контейнер объектов, и распаковка CFU перехода бух2 на бух3 например даст контейнер больше 2Гб, что в старом формате не было возможно.
Новый формат забавен тем что обычно (но не обязательно) содержит "заглушку" - почти пустой контейнер в старом формате, что обманывает утилиты которые ничего не знают про новый.
Из следствий - например декомпилятор от AWA содержит в себе компоненту распаковки, которая про старый формат ничего не знает, и без дополнительных ухищрений не видит содержимое конфигураций.
17. huxuxuya 368 25.04.23 12:11 Сейчас в теме
Оставьте свое сообщение