И снова распаковщик. Теперь на чистом 1С. YellowPacker

03.09.22

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

V8Unpack-подобный распаковщик, который делает практически то же, что и всем известный инструмент. Для работы с файлами cf, cfe, epf, erf. Только на языке 1С, без использования внешних файлов, библиотек и компонент.

Скачать файл

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

Наименование По подписке [?] Купить один файл
YellowPacker - инструмент для разборки/сборки файлов конфигураций
.epf 23,31Kb
65
65 Скачать (5 SM) Купить за 3 050 руб.

Зачем?!

Да, да, я знаю что уже есть куча аналогов на разных языках (ссылки внизу). И предвосхищая вопрос, который обязательно появится в комментариях, отвечу сразу, что сподвигло меня на эти свершения.

В ходе оптимизаций и автоматизаций процесса разработки и тестирования в нашей команде, сошлись (среди прочих) следующие задачи:

1. Требовалось автоматизировать сборку версий расширений под разные конфигурации/версии из одного хранилища, чтобы не плодить ветки разработки, требующие синхронизации. В общем виде, весьма упрощенно, примерно такой процесс:

1) Разборка cfe;
2) изменение нескольких файлов;
3) сборка нового cfe.

Первый и последний этапы вполне можно было бы делать и с помощью v8unpack (так и было сделано первоначально). Алгоритм по изменению - на 1С. Запуск v8unpack из 1С-кода. Всё прекрасно работает. Но как-то... некрасивенько, на мой взгляд.

2. Еще одна задача - получение расширения из Хранилища в пользовательском режиме, для обновления тестовых баз из интерфейса, без привлечения программистов. При реализации пришлось разбираться с форматом данных в хранилище и 1С-ными методами работы с двоичными данными извлекать из полученных данных файлы конфигурации. И уже из них собирать cfe-файл (опять через v8unpack). В процессе "ковыряния в байтах", подумал что и сборку cfe-файла вполне можно сделать силами 1С.

В итоге, написал с нуля сначала распаковку, руководствуясь описанием формата от Андрея Овсянкина и собственными исследованиями, а затем и сборку. Терминология в коде "блок", "документ", "заголовок" и  т.д. - из описания формата.

Inflate/Deflate реализованы методом, предложенным SerVer1C, с использованием объектов для работы с Zip-файлами.

Осмелюсь предположить, что результат моих трудов может быть интересен десятку-другому коллег.

 

Как называется?

По аналогии с референсной программой, несколько сместив акцент на запаковку, решил окрестить свою разработку "YellowPacker". Ни у кого нет патента на это название? Вот и хорошо.

 

 

Что может?

Извлекает файлы из конфигурации/расширения/обработки/отчета (cf, cfe, epf, erf) в указанный каталог:

  • в v8unpack стиле (на каждый файл конфигурации создается пара файлов .header + .data) - режим "Без распаковки (v8unpack style)" - аналог ключа "-U[NPACK]";
  • в сыром виде - режим "Без распаковки" (файлы конфигурации записываются без доп.расширений, как есть; их атрибуты - в свойствах файла) - нет ключа-аналога;
  • с Inflate-ом и распаковкой вложенных контейнеров - режим "С распаковкой" - аналог ключа "-P[ARSE]".

Собирает из файлов в каталоге конфигурацию/расширение/обработку/отчет:

  • из файлов в v8unpack стиле - аналог ключа "-PA[CK]";
  • из файлов в сыром виде - нет ключа-аналога;
  • из файлов распакованных контейнеров - аналог ключа "-B[UILD]".

При выполнении сборки все параметры и версия контейнера определяются автоматически по составу и содержимому файлов в исходном каталоге.

Работает с конфигурациями как в "старом" (до 8.3.16, с 32-битной адресацией), так и в "новом" (с 8.3.16, с 64-битной адресацией) форматах.

Может работать в клиентском или серверном контексте, по выбору. Кроссплатформенно.

Работает на платформе 1С:Предприятие начиная с версии 8.3.10. Протестировано на 8.3.16, 8.3.18, 8.3.19. Конфигурация значения не имеет.

 

Результат сравнения исходной и пересобранной конфигурации расширения

 

Чего не умеет?

Из функций, присущих v8unpack, не реализован следующий функционал:

  • нет отдельно Inflate/Deflate извлеченных файлов из каталога - ключи "-I[NFLATE]" и "-D[EFLATE]"
  • нет вывода списка файлов - ключ "-LISTFILES|-LF"
  • нет работы по списку файлов - ключ "-L[IST]" (UPD 28.08.22 - теперь есть распаковка по списку)

 

А скорость?

Когда я вопрошал "а есть ли готовое решение на 1С-языке?", коллеги в комментариях высказывали сомнение что на 1С может работать с приемлемой скоростью. К моему удивлению, оказалось ничуть не медленнее, чем работает v8unpack. На самом деле, даже чуточку быстрее. Возможно это просто разброс или погрешность в замерах. Проверял на конфигурации "Управление холдингом" (660Мб) в режимах "Без распаковки (v8unpack style)" и "С распаковкой".

Узким местом являются дисковые операции - они и определяют время работы. По замеру производительности в Конфигураторе хорошо видно, что запись на диск занимает 80% всего времени. Разборку можно ускорить примерно вдвое (по отношению к v8unpack-style), если не записывать файлы атрибутов (.header) - это режим "Без распаковки" в моей обработке.

При извлечении файлов в режиме "С распаковкой" (с Inflate-ом) больше всего времени занимает ЧтениеZip.Извлечь() с записью файла на диск.

Отмечу, что особо оптимизацией скорости не занимался. Не исключаю, что-то можно еще что-то отыграть. Файлы расширения обрабатывает достаточно быстро - этого для моих текущих задач вполне хватает. Сборка/разборка больших конфигураций является скорее "побочным" продуктом и пока не используется.  

 

Перспективы?

В планах - портировать на OScript в виде библиотеки. Надеюсь что нужные методы поддерживаются движком.


Ссылки есть?

По ходу поисков готового решения собрал ссылки на публикации и инструменты схожей тематики:

Описание формата файлов конфигурации (CF, EPF, ERF) - Андрей Овсянкин (Evil Beaver)

Уточнение по формату 8.3.16 - Сергей Рудаков (fishca)

V8Unpack 2.0 - brix8x (github

В8АнПак - onepack - Новый распаковщик конфигураций - SerVer1C

Сжатие/Распаковка данных по алгоритму Deflate встроенными (!) средствами платформы 1С - SerVer1C

Python V8Unpack от Егор Иванов (Infactum)

Уменьшаем трафик: HTTP запрос со сжатием GZIP средствами 1С. На примере выгрузки файлов на Яндекс-диск - Дионисий Милославский (uno-c)

saby v8unpack - Михаил Разговоров (Businka76)

Распаковка CF на Lua - Борис Илов (ilov_boris)

Компонент для чтения CF-формата. Описание CF-формата - Сергей Карташев (Elisy)

Архиваторный плагин Total Commander для работы с файлами cf, epf, erf, cfu, cfe, hbk как с архивами - Валерий Агеев (awa)

Быстрая распаковка CF - Magister

V8Reader (с расширенным анализом форм) Upd. - Андрей Д. (bambr1975)

Распаковщик / упаковщик файлов - ZhokhovM

Плагин TotalCommander-а просмотра файлов 1C v8 - Михаил Усков (MMF)

[x1c.ru] 1CDBin: Работа с файлами *.1CD на низком уровне средствами языка 1С от Николай Гусев (GusevNA)

DT:Менеджер 8.1 (Распаковка/упаковка *.DT файлов. Быстрый экспорт CF) - Сергей Боровик (BorovikSV)

Работа с хранилищем конфигурации из режима 1С: Предприятие минуя конфигуратор - MaxxG

Хотите извращений? Их есть у меня! - прототип реализации распаковки на 1С от Валерия Агеева

 

А еще что-нибудь интересненькое?

Другие публикации:

Водопад из Техжурнала 1С

Автономный сервер. Утилита управления

Автономный сервер. Новый вариант сервера

GitSync 3.0. Шпаргалка по использованию

Массовое изменение режима поддержки объектов конфигурации

Загрузка-выгрузка файлов по RDP с докачкой

 

UPD 23.08.22

Файл в публикации обновлен. Устранена ошибка "Тип контейнера для сборки не определен" при сборке вложенных контейнеров.

 

UPD 28.08.22

Файл в публикации обновлен. Устранены недоработки и найденные ошибки. Добавлено извлечение файлов по списку.

 

UPD 03.09.22

Файл в публикации обновлен. Доработан пересчет хеш-сумм файлов расширений при сборке.

См. также

SALE! 15%

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

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

10000 руб.

02.09.2020    159333    872    399    

861

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    7751    55    22    

66

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

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

9360 руб.

17.05.2024    23411    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10403    36    20    

61

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15383    35    7    

70

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187959    1138    0    

912

SALE! 50%

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Программист Стажер Платформа 1С v8.3 Платные (руб)

Использования систем контроля версий — стандарт современной разработки. На курсе научимся использованию Хранилища 1С и GIT при разработке на 1С:Предприятие 8. Разберем подходы и приемы коллективной разработки, научимся самостоятельно настраивать системы и ориентироваться в них.

4900 2450 руб.

29.06.2022    11928    99    4    

131

SALE! 15%

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

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

15000 12750 руб.

07.10.2021    17295    6    32    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Артано 795 22.08.22 09:00 Сейчас в теме
Спасибо, товарищ! И за труд и за сбор информации в одно место.
Xershi; akR00b; +2 Ответить
2. Steelvan 306 22.08.22 11:05 Сейчас в теме
На днях скачал "Распаковщик / упаковщик файлов - ZhokhovM" за 6 см.
И сегодня тоже бы скачал ту за 6, а не эту за 5.

Почему ?
Названия на русском больше люблю.
dvsidelnikov; amd1986; +2 5 Ответить
5. VKislitsin 1013 22.08.22 11:31 Сейчас в теме
(2)
Названия на русском больше люблю

Игорь, я ожидал вашего комментария. И меня бы расстроило, если бы вы не отметились здесь. Кроме того, я бы удивился, если бы никто не написал здесь про русский язык. Еще можно найти у меня ошибки в пунктуации, и, полагаю просто опечатки.

Что касается цены... Тут ни коим образом не конкуренция. Я думал какую сумму установить - то ли 10, то ли 5 СМ. Работы тут много, гораздо больше чем на 10СМ. Но делалась она "не корысти ради", а для решения собственных задач. Полагаю, кому нужно, скачает и за 10 и за 20. А кому не надо - и за 1 не скачает. Поставил 5, просто чтобы не жадничать.

На самом деле, моя публикация появилась именно благодаря Максиму (ZhokhovM). Моя разработка лежала "в столе" с прошлогоднего Ноября, когда я похвастался что сделал её. Но довести её до публикабельного состояния всё не было ни сил, ни времени. И Максим меня периодически пинал в ЛС вопросами "когда же?". В итоге, не дождавшись, написал свой вариант. Но сделал только распаковку. Сейчас выдалась пара дней и я довел свою разработку до публикации. Лучше поздно, чем никогда, как говорится. У Максима в его разработке больше разных форматов обрабатывается. Так что, если она вам подходит, не качайте мою. Я не огорчусь.
Xershi; Santa1; dvsidelnikov; LostMicos; ipoluhin; pavlov_dv; ardn; ixijixi; SeiOkami; Somebody1; mrChOP93; +11 Ответить
20. Eremkin 31.08.22 20:48 Сейчас в теме
(5)В конце добавить
- Хейтеры, люблю вас (с)
3. artbear 1563 22.08.22 11:11 Сейчас в теме
(0)
В планах - портировать на OScript в виде библиотеки. Надеюсь что нужные методы поддерживаются движком.


если бы сразу делал на 1скрипте, было бы легче и быстрее ИМХО.
4. nixel 1433 22.08.22 11:22 Сейчас в теме
(3) на оскрипте уже библиотека есть :) правда через dll
6. VKislitsin 1013 22.08.22 11:33 Сейчас в теме
(3)
если бы сразу делал на 1скрипте

Делалось под решение собственных задач. Здесь - просто выделено в отдельное решение и отброшено всё "лишнее". А решение было на 1С.
7. Infactum 318 22.08.22 11:52 Сейчас в теме
А мое решение, где все нужные алгоритмы элементарно на питоне описаны, не смотрели что ли?)
8. VKislitsin 1013 22.08.22 11:55 Сейчас в теме
(7) Я извиняюсь, если ссылку не добавил. Видимо, просто потерял. Сейчас поправлю дело.
В алгоритмы ни в какие не смотрел. Просто написал сам, по описанию формата от Андрея Овсянкина.

PS. Коллеги, если еще не упомянул чьи-то публикации на тему работы с внутренними файлами 1С, пишите, дополню список.
9. ktb 629 22.08.22 11:59 Сейчас в теме
В оскрипт, кстати, не обязательно использовать ЧтениеZIP, т.к. есть библиотека deflator.
10. VKislitsin 1013 22.08.22 12:01 Сейчас в теме
(9)
не обязательно использовать ЧтениеZIP, т.к. есть библиотека deflato

Спасибо за уточнение. Надеялся что есть нормальный способ, без извращений.
11. JohnyDeath 302 26.08.22 11:40 Сейчас в теме
Я что-то не понял почему нельзя было решить исходную задачу с помощью штатной выгрузки-загрузки в файлы?
12. VKislitsin 1013 26.08.22 12:04 Сейчас в теме
(11) Евгений, наконец-то появился комментарий с посылом что я занимаюсь фигней :)

На самом деле в статье я сильно упростил пример для чего это понадобилось. По крайней мере, 1-й (там, кстати, написано "в общем виде, весьма упрощенно"). На деле, 1-й и 2-й пример - это одна и та же задача у меня. Конфигурация расширения извлекается из хранилища (тоже исключительно кодом 1С) и из неё делается несколько разных cfe-шников.
На базе этого решения есть еще обновление расширений из хранилища в пользовательском режиме. Тоже всё на чистом 1С.


И, давайте я еще 3-ю причину приведу, если требуется более весомое обоснование: мне было просто интересно сделать это.
Прикрепленные файлы:
Vasvas05; JohnyDeath; +2 Ответить
13. JohnyDeath 302 26.08.22 12:11 Сейчас в теме
(12) я не говорил про "фигню" )
Наоборот всегда плюсую энтузиастов-ковыряторов!

Но я так и не понял почему нельзя было выгрузить всё в xml, сделать нужные правки и загрузить обратно с помощью конфигуратора или автономного сервера.
1. "Конфигурация извлекается из хранилища" - ок, это понятно и это уже у вас было. Никак к текущему инструменту не относится.
2. Далее выгружаем cfe в xml
3. Делаем правки
4. Загружаем обратно и получаем новую cfe

так? п.2 и п.4 - это ж штатное.
Или я что-то всё равно не понял в первоначальной задаче?
14. VKislitsin 1013 26.08.22 12:23 Сейчас в теме
(13)
"Конфигурация извлекается из хранилища" - ок, это понятно и это уже у вас было. Никак к текущему инструменту не относится.


Я наверное слишком кратко поясняю...

Конфигурация при извлечении из храна не представляет собой нормальный CF или CFE. Его еще нужно собрать из того, что вытащилось. Это отдельная тема для публикации о формате хранилища, полагаю.

Результатом извлечения из храна, после определенных шаманских действий над двоичными данными, является как раз набор файлов, которые извлекают все распаковщики из конфигурации, без инфлейта. В терминологии v8unpack - это файлы .data. Файлы .header при этом приходилось генерить самостоятельно.

Далее, чтобы выгрузить это в XML, нужно из них сначала собрать конфигурацию. Применяя внешний инструмент (тот же v8unpack). После выгрузки и изменения - еще раз собрать. Теперь из XML-й. Для операций с XML нужно запускать в пакетном режиме конфигуратор, что тоже не очень-то быстро.
Т.е. цепочка такая - 1С вытаскивает нечто из храна - 1С разбирает это нечто на файлы .data и генерит файлы .header - вызываем v8unpack чтобы собрать cfe. Вызываем конфигуратор чтобы разложить его на XML - 1С меняет что-то в XML - вызываем конфигуратор чтобы собрать cfe из XML.

Я пошел более коротким путем. Полученные .data-файлы распаковываю, меняю что нужно и из них сразу собираю нужную конфигурацию. Как я написал, сначала делал это с помощью v8unpack, но потом стало интересно собрать их исключительно 1С-ным кодом, раз уж всё равно мне приходится оперировать с двоичными данными.
15. JohnyDeath 302 26.08.22 12:25 Сейчас в теме
(14) теперь кажется понял. Т.к. вы извлекаете из хранилища своим способом, то на выходе получаете не чистый cf.
Тогда вопрос почему решили извлекать из хранилища не штатными способами? )
16. VKislitsin 1013 26.08.22 12:37 Сейчас в теме
(15)
почему решили извлекать из хранилища не штатными способами?


А что подразумевается под штатным? Конфигуратор в пакетном режиме? Долго. Трудно контролируемо. Не всё возможно. Например, список версий читается только через отчет по версиям - метки не получить.

Кроме того, как я уже написал, мне было очень интересно сделать это напрямую.

Сейчас я могу не только получать что-то из храна (в том числе список версий с метками и/или любыми доступными отборами), но и помещать туда что-то, создавать пользователей, менять их права, отменять захваты, смотреть из одного окна разные хранилища на разных версиях Платформы и т.д.
17. VKislitsin 1013 26.08.22 13:03 Сейчас в теме
(15)
вы извлекаете из хранилища своим способом, то на выходе получаете не чистый cf

Извлечение из храна "своим методом" + сборка (либо с помощь v8unpack, либо инструментом из этой публикации) как раз дает чистый cf/cfe.
28. ktb 629 13.09.24 07:47 Сейчас в теме
(14) А можно где-то увидеть ваш "нештатный" способ извлечения из хранилища?
29. VKislitsin 1013 13.09.24 12:45 Сейчас в теме
(28) я уже и забыл что обещал что-то опубликовать. Мне всегда интересно ковырять что-то, а доводить до публикабельного вида и описывать неинтересно и напряжно :)
Постараюсь в ближайшее время расширение для обновления расширений из храна в пользовательском режиме опубликовать (скриншот выше приводил).
18. German 413 30.08.22 12:25 Сейчас в теме
19. VKislitsin 1013 30.08.22 12:27 Сейчас в теме
(18)
Вроде все это было вот тут

Герман, я в (5) расписывал историю что где было.
На самом деле, моя публикация появилась именно благодаря Максиму (ZhokhovM). Моя разработка лежала "в столе" с прошлогоднего Ноября, когда я похвастался что сделал её. Но довести её до публикабельного состояния всё не было ни сил, ни времени. И Максим меня периодически пинал в ЛС вопросами "когда же?". В итоге, не дождавшись, написал свой вариант. Но сделал только распаковку. Сейчас выдалась пара дней и я довел свою разработку до публикации. Лучше поздно, чем никогда, как говорится. У Максима в его разработке больше разных форматов обрабатывается.

Да и приведенная вами ссылка на вариант Максима есть в моей публикации.
21. AlexWhite 194 03.11.22 15:26 Сейчас в теме
Если я правильно понимаю, распаковщик распаковывает cf во множество папок и файлов с наименованиями из GUID объектов вместо мнемоничной структуры папок и файлов, похожих на дерево конфигурации в конфигураторе?
https://infostart.ru/public/1691321/ из вашей была сделана?

Если это так, могу ли я обратиться за коммерческой версией обработки, которая:
1) Разбирает cf на папки и файлы в мнемоничную структуру папок и файлов, вида:
\Документы\АвансовыйОтчет\МодульОбъекта.bsl
\Документы\АвансовыйОтчет\ФормаЭлемента\МодульФормы.bsl
...
2) При разборке разбирает отдельно на двоичные файлы (таблицы, картинки, схемы компановки данных и пр.) и текстовые объекты (модули - txt или bsl)?
22. VKislitsin 1013 03.11.22 19:39 Сейчас в теме
(21)
Если я правильно понимаю, распаковщик распаковывает cf во множество папок и файлов с наименованиями из GUID объектов вместо мнемоничной структуры папок и файлов, похожих на дерево конфигурации в конфигураторе?

Да, имена файлов и каталогов имеют вид GUID-ов, а не человекочитаемых имен.

https://infostart.ru/public/1691321/ из вашей была сделана?

Не совсем. Автор этой публикации делал свою разработку самостоятельно, не дождавшись от меня анонсированной публикации. Позже, возможно, какие-то решения/алгоритмы были пересмотрены/доработаны по образцу моей.

Если это так, могу ли я обратиться за коммерческой версией обработки

С этим лучше в личку.

1) Разбирает cf на папки и файлы в мнемоничную структуру папок и файлов, вида:
\Документы\АвансовыйОтчет\МодульОбъекта.bsl
\Документы\АвансовыйОтчет\ФормаЭлемента\МодульФормы.bsl

Частично этот функционал уже есть (но не опубликован): чтение в оглавление имен объектов и определение их типов объектов (т.е. имена каталогов и файлов для файловой структуры). Построение дерева я не делал.

2) При разборке разбирает отдельно на двоичные файлы (таблицы, картинки, схемы компановки данных и пр.) и текстовые объекты (модули - txt или bsl)?

На самом деле, все файлы - текстовые. Просто это либо формат "скобкофайлов", либо программный код. В файлах управляемых форм описание формы в скобочном формате и программный код находятся в одном файле. Но в принципе, разделить его на отдельные - вполне возможно.
ZhokhovM; +1 Ответить
23. AlexWhite 194 03.11.22 19:48 Сейчас в теме
(22) сомневаюсь, что все файлы текстовые. Картинки? Схемы данных? Табличные документы? Запароленные модули?
В общем, я готов поучаствовать в финансировании доработок.
24. VKislitsin 1013 03.11.22 19:57 Сейчас в теме
(23)
Картинки? Схемы данных? Табличные документы? Запароленные модули?

Они в Base64 внутри текстовых скобкофайлов все лежат. Что-то из этого раскодируется в обычный XML, например схемы компоновки данных. Что-то в бинарники. Табличные документы - это чистый скобкофайл. Запароленные модули не ковырял.
25. Serg2000mr 670 03.05.23 07:50 Сейчас в теме
(0) Подскажите, что делать с распакованными скобко-файлами? ЗначениеИзСтрокиВнутр их не берет
26. VKislitsin 1013 03.05.23 12:35 Сейчас в теме
(25) Я тут даже затрудняюсь ответить.
У каждого могут быть свои цели и задачи для этой распаковки. Обычно, коллеги, которым нужна распаковка, знают что такое V8Unpack, какие результаты он выдает и для чего их можно применить.
Полагаю, когда кто-нибудь полностью разберется с внутренним 1С-ным форматом "скобкофайлов", опишет его и/или создаст транслятор в привычные XML, сообщество поставит ему памятник :)
27. Serg2000mr 670 03.05.23 12:57 Сейчас в теме
(26) Ну, когда-то и эти коллеги не знали, какие результаты выдает V8Unpack..🤔
Памятник - звучит заманчиво ))
Оставьте свое сообщение