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

27.03.23

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
pfCFTool - версия 3.1.0
.rar 823,07Kb
13
13 Скачать (2 SM) Купить за 2 150 руб.

Внимание! Официально 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

См. также

SALE! 15%

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

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

10000 руб.

02.09.2020    160296    882    399    

866

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    8103    60    28    

71

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    23647    69    45    

118

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15515    36    7    

71

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10543    37    27    

62

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    188213    1141    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17370    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7767    8    35    

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

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

могу, наверное, потратить пару стартманей, но уже и без этого много потратил на поиск приемлемого парсера/запарсера :-)
12. Pasha1st 849 29.03.23 08:38 Сейчас в теме
(11) это не парсер, это аналог v8unpack - на выходе много файлов с нечитаемыми именами
15. huxuxuya 376 20.04.23 12:30 Сейчас в теме
А с форматами контейнеров новый и старый это что за история не подскажите где можно про это почитать?
И на какой версии платформы меняется формат контейнера?
16. Pasha1st 849 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 376 25.04.23 12:11 Сейчас в теме
Оставьте свое сообщение