Skip to content

defin85/1c-help-parser

Repository files navigation

🔧 1C Help Parser

Парсер документации 1С для создания контекстных файлов для LLM

Python License Status

📋 Описание

Этот проект предназначен для парсинга файлов документации 1С (.hbk файлы) и создания структурированных контекстных файлов для использования с языковыми моделями (LLM). Проект анализирует как основной файл документации, так и файл оглавления, обеспечивая полное покрытие синтаксиса и архитектуры 1С.

🚀 Возможности

  • Парсинг .hbk файлов - извлечение HTML документации из архивов
  • Анализ структуры - автоматическое определение типов файлов и категорий
  • Извлечение синтаксиса - поиск объектов, методов, свойств, функций
  • 4 режима экспорта - максимальный/оптимизированный, 1 файл/множество файлов
  • Оптимизация для IDE - файлы <50KB для Cursor и других редакторов
  • Поисковый индекс - быстрый поиск по ключевым словам
  • Демонстрация - интерактивные примеры использования

⚡ Быстрый старт (5 минут)

1. Подготовка файлов

Конвертация .hbk в .zip

Если у вас есть исходный файл shcntx_ru.hbk, конвертируйте его в rebuilt.shcntx_ru.zip:

# Используя WinRAR (установите WinRAR с https://www.win-rar.com/)
"C:\Program Files\WinRAR\Rar.exe" r data/shcntx_ru.hbk

Это создаст восстановленный архив rebuilt.shcntx_ru.zip для парсинга.

2. Установка зависимостей

pip install beautifulsoup4

2. Запуск проекта

# Интерактивный режим
python run.py

# Автоматический режим (без интерактивного ввода)
python run.py --auto

# Полная обработка всей документации
python run.py --full

# Режимы экспорта:
# 1. Максимальный (1 файл)
python run.py --mode max

# 2. Оптимизированный (1 файл)
python run.py --mode optimized

# 3. Максимальный разбитый (множество файлов)
python run.py --mode max-split --max-file-size 50 --max-items-per-file 50

# 4. Оптимизированный разбитый (множество файлов)
python run.py --mode optimized-split --max-file-size 50 --max-items-per-file 50

# Устаревший способ (работает):
python run.py --optimized

# Обработка конкретного файла
python run.py --file data/rebuilt.shcntx_ru.zip

# Демонстрация результатов
python run.py --demo data/1c_context_optimized.json

# Проверка зависимостей
python run.py --check

3. Демонстрация результатов

# Демо оптимизированного контекста (рекомендуется)
python run.py --demo data/1c_context_optimized.json

📁 Структура проекта

1c-help-parser/
├── 📁 src/                    # Исходный код
│   ├── 📁 parsers/           # Парсеры
│   │   ├── base_parser.py        # Базовый класс для парсеров
│   │   ├── hbk_parser.py         # Парсер архивов .hbk
│   │   └── bsl_syntax_extractor.py # Извлечение синтаксиса
│   ├── 📁 converters/        # Конвертеры
│   │   ├── base_converter.py     # Базовый класс для конвертеров
│   │   ├── context_converter.py  # Базовый конвертер
│   │   └── optimized_context_converter.py  # Оптимизированный
│   ├── 📁 demos/             # Демонстрации
│   │   ├── llm_context_demo.py   # Демо основного файла (русский)
│   │   ├── test_root_demo.py     # Демо файла оглавления (английский)
│   │   ├── optimized_demo.py     # Демо оптимизированного контекста
│   │   └── improved_demo.py      # Демо улучшенного парсера
│   └── inspect_hbk.py        # Инспектор .hbk
├── 📁 data/                   # Данные и результаты
│   ├── *.zip                 # Архивы документации
│   ├── 1c_context.json       # Максимальный контекст (1 файл)
│   ├── 1c_context_optimized.json # Оптимизированный контекст (1 файл)
│   ├── max_split/            # Максимальный разбитый (множество файлов)
│   ├── optimized_split/      # Оптимизированный разбитый (множество файлов)
│   └── extracted/            # Извлеченные HTML файлы
├── 📁 docs/                   # Подробная документация
│   ├── DOCUMENTATION_OVERVIEW.md # Обзор документации
│   ├── REPORTS/              # Отчеты и сравнения
│   ├── README_CONTEXT.md     # Инструкции по использованию
│   ├── STRUCTURE.md          # Детальная структура
│   └── API/                  # API документация
└── 📁 examples/               # Примеры
    └── Module.bsl            # Пример кода 1С

📊 Результаты парсинга

Основной файл (shcntx_ru)

  • Размер: 38MB
  • Файлов: ~25000 HTML файлов
  • Обрабатывается по умолчанию: все файлы (настраивается)
  • Фокус: Детальная документация по синтаксису BSL
  • Язык: Русский
  • Содержимое: Структурированные данные с разделением на content (описание) и metadata (детали)

Структура выходных данных

{
  "content": "Краткое описание объекта",
  "metadata": {
    "syntax_variants": [],           // Варианты синтаксиса
    "parameters_by_variant": {},     // Параметры по вариантам
    "collection_elements": {},       // Информация о коллекциях
    "methods": [],                   // Методы объекта
    "availability": [],              // Доступность
    "version": ""                    // Версия
  }
}

🔍 Примеры использования

Поиск в оптимизированном контексте (рекомендуется)

python run.py --demo data/1c_context_optimized.json

Запросы:

  • "форма" - поиск по ключевому слову
  • "сервер" - поиск по доступности
  • "8.2" - поиск по версии
  • "objects" - поиск по категории

Запросы:

  • "What is FormDataStructure?"
  • "What is Global context?"
  • "What is DynamicList?"

📚 Подробная документация

📋 Основная документация

🚀 Разработка

💡 Примеры и использование

🎯 Применение

Для разработчиков 1С

  • Изучение синтаксиса и API
  • Поиск методов и свойств
  • Понимание архитектуры

Для LLM интеграции

  • Создание контекста для чат-ботов
  • Улучшение ответов по 1С
  • Автоматическая документация

Для обучения

  • Структурированная документация
  • Интерактивные примеры
  • Поиск по ключевым словам

📄 Лицензия

MIT License - см. файл LICENSE

🙏 Благодарности

  • Команде 1С за документацию
  • Сообществу разработчиков 1С
  • Проекту BeautifulSoup для парсинга HTML

📞 Контакты

  • Автор: AI Assistant
  • Проект: 1C Help Parser
  • Версия: 1.2.0

Если проект полезен, поставьте звездочку!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages