Легковесная утилита на C++ (Win32 API) для просмотра и анализа файлов конфигурации 1С:Предприятие 7.7 (1cv7.md).
Программа позволяет просматривать внутреннюю структуру файла-контейнера, распаковывать потоки данных (ZLib), снимать шифрование и отображать иерархическое дерево метаданных в удобном виде.
- Без зависимостей: Не требует установленной платформы 1С:Предприятие. Работает автономно.
- Совместимость: Написана на чистом Win32 API, поддерживает старые ОС (Windows Server 2003 / XP) и современные Windows 10/11.
- Просмотр OLE структуры: Отображение файловой системы внутри контейнера (папки и потоки).
- Парсинг метаданных: Автоматический разбор потока
Main MetaData Stream.- Восстановление иерархии объектов (Справочники, Документы, Регистры и т.д.).
- Отображение внутренних ID и пользовательских названий.
- Декомпрессия и Дешифровка:
- Поддержка стандартного сжатия ZLib.
- Поддержка специфичного для 1С смещения заголовков.
- Снятие XOR-шифрования (сигнатура
%w) на лету.
- GUI: Удобный интерфейс с вкладками и детальным просмотром содержимого.
Проект реализует собственный алгоритм чтения формата .md:
- OLE Structured Storage: Использование
StgOpenStorageдля доступа к составным файлам. - Декомпрессия: Интегрированная библиотека
miniz(tinfl) для распаковки потоков Deflate/ZLib. - Парсинг формата 1С: Рекурсивный спуск для разбора текстового формата скобок
{"Key", {"Value", ...}}. - Анализ типов: Сопоставление внутренних идентификаторов объектов с их типами для построения понятного дерева.
Проект настроен для сборки через NMAKE (MSVC).
- Visual Studio (любая версия с поддержкой C++) или Build Tools.
- Включенный в проект файл
miniz.c(уже настроен в Makefile).
Откройте Developer Command Prompt for VS и выполните:
nmakeБудет создан файл parser.exe.
Для очистки временных файлов (.obj):
nmake cleanЗапустите parser.exe.
Перейдите на вкладку Настройки.
Нажмите Обзор... и выберите файл конфигурации 1cv7.md.
Программа автоматически распарсит файл:
Вкладка Структура файла: Показывает физическое содержимое ("сырые" данные).
Вкладка Метаданные: Показывает логическое дерево конфигурации.
Кликните на любой узел дерева, чтобы увидеть подробную информацию в правой панели.
Кнопка Справка открывает подробное руководство.
main.cpp — Точка входа, создание окон, логика GUI (вкладки, дерево).
MDParser.cpp — Логика чтения OLE, декомпрессия, парсинг текста метаданных.
MDParser.h — Заголовочный файл с описанием структур данных.
miniz.c / miniz.h — Библиотека для работы со сжатием.
Makefile — Скрипт сборки.
miniz — Single-file zlib-subset library (Public Domain / MIT).
📄 Лицензия Этот проект распространяется под лицензией MIT. Вы можете свободно использовать, изменять и распространять код.
PrS
- 💻 GitHub: bigsprut
- 📧 Email: bigsprut@gmail.com (bigsprut)
Если этот проект помог вам, вы можете поставить ⭐️ (звездочку) этому репозиторию!