Skip to content

bigsprut/1CMDParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1C 7.7 Configuration Parser (MD Parser)

Легковесная утилита на 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:

  1. OLE Structured Storage: Использование StgOpenStorage для доступа к составным файлам.
  2. Декомпрессия: Интегрированная библиотека miniz (tinfl) для распаковки потоков Deflate/ZLib.
  3. Парсинг формата 1С: Рекурсивный спуск для разбора текстового формата скобок {"Key", {"Value", ...}}.
  4. Анализ типов: Сопоставление внутренних идентификаторов объектов с их типами для построения понятного дерева.

🚀 Сборка

Проект настроен для сборки через 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

Если этот проект помог вам, вы можете поставить ⭐️ (звездочку) этому репозиторию!