Skip to main content

Система генерации контрактов метаданных 1С

Project description

🚀 1C Contract Generator

Система генерации контрактов метаданных 1С

Полностью автономная система для генерации структурированных JSON-контрактов из конфигураций 1С, включая контракты метаданных объектов, форм и модулей.

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

  • 🎯 Контракты метаданных - структурированное описание объектов (справочники, документы)
  • 📋 Контракты форм - архитектура форм с элементами управления
  • 🔧 Контракты модулей - описание модулей объектов
  • 🔍 Анализ и валидация - проверка качества контрактов
  • 📊 Статистика и отчеты - анализ структуры конфигурации
  • 🚀 Интерактивный режим - пошаговый мастер с подсказками
  • Командный режим - автоматизация через аргументы

🏗️ Структура проекта

1c-contract-generator/
├── src/                                    # Исходный код
│   ├── core/                               # Основные компоненты
│   │   ├── launcher.py                     # 🚀 Единый запускатор
│   │   ├── metadata_generator.py           # 📋 Генератор контрактов метаданных
│   │   ├── form_generator.py               # 📝 Генератор контрактов форм
│   │   └── module_generator.py             # 🔧 Генератор контрактов модулей
│   ├── utils/                              # Утилиты
│   │   ├── analyzer.py                     # 📊 Анализ контрактов
│   │   ├── validator.py                    # ✅ Валидация контрактов
│   │   └── reporter.py                     # 📄 Генерация отчетов
│   └── parsers/                            # Парсеры
│       ├── xml_parser.py                   # 📄 Парсер XML файлов
│       ├── bsl_parser.py                   # 🔤 Парсер BSL модулей
│       └── report_parser.py                # 📋 Парсер текстовых отчетов
├── scripts/                                # Скрипты запуска
│   ├── generate.py                         # 🚀 Главный скрипт
│   ├── analyze.py                          # 📊 Скрипт анализа
│   └── test.py                             # 🧪 Скрипт тестирования
├── tests/                                  # Тесты
├── docs/                                   # Документация
├── examples/                               # Примеры
└── README.md                               # Эта документация

🚀 Быстрый старт

Требования

Python 3.7+

Установка

# Клонируйте репозиторий
git clone <repository-url>
cd 1c-contract-generator

# Или скопируйте папку в ваш проект
cp -r 1c-contract-generator /path/to/your/project/

Использование

Интерактивный режим (рекомендуется)

python scripts/generate.py

Запустится пошаговый мастер:

  1. 📁 Выбор директории конфигурации
  2. 📄 Выбор файла отчета
  3. 📂 Выбор выходной директории
  4. 🔧 Выбор компонентов для генерации
  5. 🎯 Подтверждение и запуск

Командный режим

python scripts/generate.py --auto \
  --conf-dir conf_files \
  --report-path conf_reports/FullReport.txt

Анализ контрактов

# Статистика
python scripts/analyze.py --action stats

# Поиск
python scripts/analyze.py --action search --query "ДокументыПредприятия"

# Валидация
python scripts/analyze.py --action validate

# Экспорт отчета
python scripts/analyze.py --action report --output analysis.md

Тестирование

python scripts/test.py

📊 Структура контрактов

Контракт метаданных

{
  "name": "Справочники.ДокументыПредприятия",
  "type": "Справочник",
  "attributes": [
    {
      "name": "Наименование",
      "type": "Строка"
    }
  ],
  "tabular_sections": {
    "Состав": {
      "name": "Состав",
      "attributes": [
        {
          "name": "Номенклатура",
          "type": "СправочникСсылка.Номенклатура"
        }
      ]
    }
  }
}

Контракт формы

{
  "owner": "Справочник.ДокументыПредприятия",
  "name": "ФормаОбъекта",
  "context": ["НаКлиенте", "НаСервере"],
  "attributes": [
    {
      "name": "Объект",
      "type": "СправочникОбъект.ДокументыПредприятия"
    }
  ],
  "controls": [
    {
      "name": "Наименование",
      "type": "ПолеВвода"
    }
  ],
  "commands": [
    {
      "name": "ЗаписатьИЗакрыть",
      "action": "ЗаписатьИЗакрытьНаКлиенте"
    }
  ]
}

🎯 Преимущества

Чистая архитектура

  • Логичная организация файлов
  • Модульная структура
  • Разделение ответственности

Простота использования

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

Профессиональность

  • Стандартная структура Python проекта
  • Подробная документация
  • Полное тестирование

Автономность

  • Не требует установки зависимостей
  • Работает на любой платформе
  • Может быть скопирован в любой проект

🔧 Настройка

Переменные окружения

# Для Windows (кодировка)
set PYTHONIOENCODING=utf-8

# Для Linux/macOS
export PYTHONIOENCODING=utf-8

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

project/
├── conf_files/                    # Файлы конфигурации
│   ├── Catalogs/
│   ├── Documents/
│   └── Forms/
├── conf_reports/                  # Отчеты конфигурации
│   └── FullReport.txt
└── 1c-contract-generator/         # Система генерации

📚 Документация

🧪 Тестирование

# Запуск всех тестов
python scripts/test.py

# Запуск конкретных тестов
python -m pytest tests/ -v

# Запуск с покрытием
python -m pytest tests/ --cov=src

🚨 Устранение проблем

Проблема: Кодировка в Windows

# Решение: Установить переменную окружения
set PYTHONIOENCODING=utf-8
python scripts/generate.py

Проблема: Пути к файлам

# Решение: Использовать абсолютные пути
python scripts/generate.py --auto \
  --conf-dir /absolute/path/to/conf_files \
  --report-path /absolute/path/to/report.txt

Проблема: Отсутствие файлов

# Решение: Проверить структуру проекта
ls -la
python scripts/test.py

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для новой функции
  3. Внесите изменения
  4. Добавьте тесты
  5. Создайте Pull Request

📄 Лицензия

MIT License - см. файл LICENSE для подробностей.

🆘 Поддержка

При возникновении проблем:

  1. Запустите тесты: python scripts/test.py
  2. Проверьте документацию в папке docs/
  3. Создайте Issue в репозитории

Удачной работы с контрактами метаданных! 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onec_contract_generator-2.0.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onec_contract_generator-2.0.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file onec_contract_generator-2.0.0.tar.gz.

File metadata

  • Download URL: onec_contract_generator-2.0.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for onec_contract_generator-2.0.0.tar.gz
Algorithm Hash digest
SHA256 b6c79ceae856eaacc9f52a5a356000454b1a8e6ab7dde7850ca6b3288a0e596c
MD5 6cbd61270dd49454ce3f97cf151e8902
BLAKE2b-256 2462eb8f52d17fa33e312bbc932fcc7a5fb88790768358e18f7968feca8755d8

See more details on using hashes here.

File details

Details for the file onec_contract_generator-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for onec_contract_generator-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41a856fa65f6b71d14274a0e7aa951a5ea499f908388249deffeb50e17c1a770
MD5 2252822891088b9323d9fffe83bc9581
BLAKE2b-256 8d82dd5124d5ccf57deffe7b39afec325aa0e474200a7b92172033ea67efcd33

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page