Система генерации контрактов метаданных 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
Запустится пошаговый мастер:
- 📁 Выбор директории конфигурации
- 📄 Выбор файла отчета
- 📂 Выбор выходной директории
- 🔧 Выбор компонентов для генерации
- 🎯 Подтверждение и запуск
Командный режим
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
🤝 Вклад в проект
- Форкните репозиторий
- Создайте ветку для новой функции
- Внесите изменения
- Добавьте тесты
- Создайте Pull Request
📄 Лицензия
MIT License - см. файл LICENSE для подробностей.
🆘 Поддержка
При возникновении проблем:
- Запустите тесты:
python scripts/test.py - Проверьте документацию в папке
docs/ - Создайте Issue в репозитории
Удачной работы с контрактами метаданных! 🚀
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6c79ceae856eaacc9f52a5a356000454b1a8e6ab7dde7850ca6b3288a0e596c
|
|
| MD5 |
6cbd61270dd49454ce3f97cf151e8902
|
|
| BLAKE2b-256 |
2462eb8f52d17fa33e312bbc932fcc7a5fb88790768358e18f7968feca8755d8
|
File details
Details for the file onec_contract_generator-2.0.0-py3-none-any.whl.
File metadata
- Download URL: onec_contract_generator-2.0.0-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41a856fa65f6b71d14274a0e7aa951a5ea499f908388249deffeb50e17c1a770
|
|
| MD5 |
2252822891088b9323d9fffe83bc9581
|
|
| BLAKE2b-256 |
8d82dd5124d5ccf57deffe7b39afec325aa0e474200a7b92172033ea67efcd33
|