Autonomous system for generating structured JSON contracts from 1C:Enterprise configurations
Project description
🚀 OneC Contract Generator
Autonomous system for generating structured JSON contracts from 1C:Enterprise configurations
Полностью автономная система для генерации структурированных JSON-контрактов из конфигураций 1С, включая контракты метаданных объектов, форм и модулей.
📋 Возможности
- 🎯 Контракты метаданных - структурированное описание объектов (справочники, документы, обработки)
- 📋 Контракты форм - архитектура форм с элементами управления и атрибутами
- 🔧 Контракты модулей - описание модулей объектов с функциями и процедурами
- 🔍 Группированные логи - структурированный вывод результатов с группировкой по категориям
- 📊 Статистика и отчеты - анализ структуры конфигурации
- 🚀 Интерактивный режим - пошаговый мастер с подсказками
- ⚡ Командный режим - автоматизация через аргументы
- 🔍 Semantic Search Ready - оптимизированная структура для поисковых систем
🚀 Быстрый старт
Установка
# Установка с PyPI
pip install onec-contract-generator
Использование
Интерактивный режим (рекомендуется)
onec-contract-generate
Запустится пошаговый мастер:
- 📁 Выбор директории конфигурации
- 📄 Выбор файла отчета
- 📂 Выбор выходной директории
- 🔧 Выбор компонентов для генерации
- 🎯 Подтверждение и запуск
Командный режим
onec-contract-generate --auto \
--conf-dir "C:\YourProject\YourConfig\conf_files" \
--report-path "C:\YourProject\YourConfig\conf_report\ОтчетПоКонфигурации.txt" \
--output-dir "C:\YourProject\YourConfig\metadata_contracts"
Анализ контрактов
# Статистика
onec-contract-analyze --action stats
# Поиск
onec-contract-analyze --action search --query "ДокументыПредприятия"
# Валидация
onec-contract-analyze --action validate
# Экспорт отчета
onec-contract-analyze --action report --output analysis.md
Тестирование
# Запуск тестов
onec-contract-test
# Или с pytest
pytest tests/
🏗️ Структура проекта
onec-contract-generator/
├── src/ # Исходный код
│ ├── core/ # Основные компоненты
│ │ ├── launcher.py # 🚀 Единый запускатор
│ │ ├── metadata_generator.py # 📋 Генератор контрактов метаданных
│ │ ├── form_generator.py # 📝 Генератор контрактов форм
│ │ └── module_generator.py # 🔧 Генератор контрактов модулей
│ ├── utils/ # Утилиты
│ └── parsers/ # Парсеры
├── scripts/ # Скрипты запуска
│ ├── generate.py # 🚀 Главный скрипт
│ ├── analyze.py # 📊 Скрипт анализа
│ ├── test.py # 🧪 Скрипт тестирования
│ └── publish.py # 📦 Скрипт публикации на PyPI
├── tests/ # Тесты
├── docs/ # Документация
├── examples/ # Примеры
├── old/ # Резервная копия старого функционала
├── setup.py # Конфигурация пакета
├── pyproject.toml # Современная конфигурация
├── requirements.txt # Зависимости
├── requirements-dev.txt # Зависимости для разработки
└── README.md # Эта документация
📦 Установка для разработки
# Клонируйте репозиторий
git clone <repository-url>
cd onec-contract-generator
# Установка в режиме разработки
pip install -e ".[dev]"
# Или установка зависимостей вручную
pip install -r requirements-dev.txt
🛠️ Ручной запуск без pip
Если вы хотите запустить генератор без установки через pip, используйте прямые скрипты:
Клонирование и настройка
# Клонируйте репозиторий
git clone <repository-url>
cd onec-contract-generator
# Установите зависимости (если нужно)
pip install -r requirements.txt
Запуск через Python скрипты
# Основной генератор
python scripts/generate.py
# Или с параметрами
python scripts/generate.py --auto \
--conf-dir "C:\YourProject\YourConfig\conf_files" \
--report-path "C:\YourProject\YourConfig\conf_report\ОтчетПоКонфигурации.txt" \
--output-dir "C:\YourProject\YourConfig\metadata_contracts"
# Анализ контрактов
python scripts/analyze.py --action stats
# Тестирование
python scripts/test.py
Запуск через модули напрямую
# Запуск основного модуля
python -m src.core.launcher
# Или с параметрами
python -m src.core.launcher --auto \
--conf-dir "C:\YourProject\YourConfig\conf_files" \
--report-path "C:\YourProject\YourConfig\conf_report\ОтчетПоКонфигурации.txt" \
--output-dir "C:\YourProject\YourConfig\metadata_contracts"
Запуск отдельных компонентов
# Только генератор метаданных
python -c "
from src.core.metadata_generator import MetadataGenerator
generator = MetadataGenerator('output_dir')
generator.generate('path/to/report.txt')
"
# Только генератор форм
python -c "
from src.core.form_generator import FormGenerator
generator = FormGenerator('output_dir')
generator.generate('path/to/conf_files')
"
📁 Поддерживаемые типы объектов 1С
Основные объекты
- Справочники - справочные данные
- Документы - документооборот
- Отчеты - отчетные формы
- Обработки - обработки данных
Регистры
- РегистрыСведений - регистры сведений
- РегистрыНакопления - регистры накопления
- РегистрыБухгалтерии - регистры бухгалтерии
- РегистрыРасчета - регистры расчета
Планы
- ПланыВидовХарактеристик - планы видов характеристик
- ПланыОбмена - планы обмена
- ПланыСчетов - планы счетов
- ПланыВидовРасчета - планы видов расчета
Общие объекты
- Перечисления - перечисления
- ОбщиеМодули - общие модули
- ОбщиеКартинки - общие картинки
- ОбщиеКоманды - общие команды
Сервисы
- HTTPСервисы - HTTP сервисы
- WebСервисы - Web сервисы
- XDTOПакеты - XDTO пакеты
📊 Примеры выходных данных
Контракт метаданных
{
"type": "Справочник",
"name": "Номенклатура",
"comment": "Номенклатура товаров и услуг",
"properties": [
{
"name": "Код",
"type": "Строка",
"length": 9,
"comment": "Код номенклатуры"
},
{
"name": "Наименование",
"type": "Строка",
"length": 150,
"comment": "Наименование номенклатуры"
}
],
"search_info": {
"type": "Справочник",
"category": "ОсновныеОбъекты",
"full_name": "Справочник_Номенклатура",
"search_keywords": ["Справочник", "Номенклатура", "товары", "услуги"],
"object_short_name": "Номенклатура"
}
}
Контракт формы
{
"form_type": "ФормаЭлемента",
"object_name": "Справочник.Номенклатура",
"form_name": "ФормаЭлементаФорма",
"controls": [
{
"name": "Код",
"type": "Поле",
"data_path": "Объект.Код",
"title": "Код"
},
{
"name": "Наименование",
"type": "Поле",
"data_path": "Объект.Наименование",
"title": "Наименование"
}
]
}
🔧 Конфигурация
Переменные окружения
ONEC_DEBUG- включить отладочный режимONEC_LOG_LEVEL- уровень логирования (INFO, WARNING, ERROR)
Параметры командной строки
--auto- автоматический режим--conf-dir- директория конфигурации--report-path- путь к отчету--output-dir- выходная директория--skip-metadata- пропустить метаданные--skip-forms- пропустить формы--skip-modules- пропустить модули
📚 Документация
- 📖 Полная документация
- 🚀 Руководство по использованию
- 📋 Примеры использования
- 🔧 API документация
- 🛠️ Руководство разработчика
- 📦 Руководство по публикации
🧪 Тестирование
# Запуск всех тестов
pytest
# Запуск с покрытием
pytest --cov=src
# Запуск конкретного теста
pytest tests/test_launcher.py::test_main_function
# Запуск с подробным выводом
pytest -v
🤝 Вклад в проект
- Форкните репозиторий
- Создайте ветку для новой функции (
git checkout -b feature/amazing-feature) - Зафиксируйте изменения (
git commit -m 'Add amazing feature') - Отправьте в ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
📄 Лицензия
Этот проект лицензирован под MIT License - см. файл LICENSE для деталей.
🆘 Поддержка
- Issues: GitHub Issues
- Email: support@onec-contract-generator.dev
- Документация: Полная документация
📈 Статистика проекта
- Версия: 2.2.0
- Python: 3.7+
- Лицензия: MIT
- Статус: Активная разработка
- PyPI: onec-contract-generator
Создано с ❤️ для сообщества 1С:Предприятие
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.2.0.tar.gz.
File metadata
- Download URL: onec_contract_generator-2.2.0.tar.gz
- Upload date:
- Size: 51.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 |
03d646befd10ed98cf190c686830abf64cab11099a771dc11e0207be9764ccd9
|
|
| MD5 |
91e9ddfba1d8f29ff841215fe41d228b
|
|
| BLAKE2b-256 |
f2083973fad06dee27874f8ea82f241af10327b9958b555cfbb0604f230eb3f7
|
File details
Details for the file onec_contract_generator-2.2.0-py3-none-any.whl.
File metadata
- Download URL: onec_contract_generator-2.2.0-py3-none-any.whl
- Upload date:
- Size: 25.0 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 |
3be28c454677ae48a59d3d192595c4ac418fd3c0db7cbe69cb28dc96cfb9f4b7
|
|
| MD5 |
50bf9bcdb5f321aeb0bd4fa987d9da0f
|
|
| BLAKE2b-256 |
acae3318edccf8bc41dc867cba1f81868e104f282a4115395236b098c782fbd2
|