Autonomous system for generating structured JSON contracts from 1C:Enterprise configurations
Project description
🚀 OneC Contract Generator
Система генерации контрактов метаданных 1С
Полностью автономная система для генерации структурированных JSON-контрактов из конфигураций 1С, включая контракты метаданных объектов, форм и модулей.
📋 Возможности
- 🎯 Контракты метаданных - структурированное описание объектов (справочники, документы, обработки)
- 📋 Контракты форм - архитектура форм с элементами управления и атрибутами
- 🔧 Контракты модулей - описание модулей объектов с функциями и процедурами
- 🔍 Группированные логи - структурированный вывод результатов с группировкой по категориям
- 📊 Статистика и отчеты - анализ структуры конфигурации
- 🚀 Интерактивный режим - пошаговый мастер с подсказками
- ⚡ Командный режим - автоматизация через аргументы
🏗️ Структура проекта
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 # 🧪 Скрипт тестирования
├── tests/ # Тесты
├── docs/ # Документация
├── examples/ # Примеры
├── old/ # Резервная копия старого функционала
└── README.md # Эта документация
🚀 Быстрый старт
Требования
Python 3.7+
Установка
# Клонируйте репозиторий
git clone <repository-url>
cd onec-contract-generator
# Или скопируйте папку в ваш проект
cp -r onec-contract-generator /path/to/your/project/
Использование
Интерактивный режим (рекомендуется)
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/analyze.py --action search --query "ДокументыПредприятия"
# Валидация
python scripts/analyze.py --action validate
# Экспорт отчета
python scripts/analyze.py --action report --output analysis.md
Тестирование
python scripts/test.py
📊 Структура контрактов
Контракт метаданных
{
"metadata_type": "Object",
"name": "Справочники.ДокументыПредприятия",
"type": "Справочник",
"comment": "Справочник документов предприятия",
"structure": {
"attributes_count": 3,
"tabular_sections_count": 1,
"attributes": [
{
"name": "Наименование",
"type": "Строка",
"path": "Справочники.ДокументыПредприятия.Реквизиты.Наименование"
}
],
"tabular_sections": [
{
"name": "Состав",
"type": "ТабличнаяЧасть",
"attributes": []
}
]
},
"generated_at": "C:\\YourProject\\onec-contract-generator",
"source": "Text Report"
}
Контракт формы
{
"metadata_type": "Form",
"name": "рлф_ФормаСпискаСПапками",
"synonym": "Форма списка с папками (Рольф)",
"comment": "Форвард; Мазалов Е.А.; 04.02.2025; 92558",
"form_type": "Managed",
"structure": {
"elements_count": 0,
"attributes_count": 0,
"elements": [],
"attributes": []
},
"generated_at": "C:\\YourProject\\onec-contract-generator",
"source": "XML Form Description"
}
Контракт модуля
{
"metadata_type": "Module",
"name": "ДокументыПредприятия_ModuleContract",
"module_type": "ObjectModule",
"functions": [
{
"name": "ПриСозданииНаСервере",
"parameters": [],
"return_type": "void"
}
],
"procedures": [
{
"name": "ОбработкаЗаполнения",
"parameters": [
{
"name": "Источник",
"type": "СправочникСсылка.ДокументыПредприятия"
}
]
}
],
"generated_at": "C:\\YourProject\\onec-contract-generator",
"source": "XML Module Description"
}
🎯 Преимущества
✅ Чистая архитектура
- Логичная организация файлов
- Модульная структура
- Разделение ответственности
✅ Простота использования
- Интерактивный мастер
- Простые команды запуска
- Автоматическое определение путей
✅ Профессиональность
- Стандартная структура Python проекта
- Подробная документация
- Полное тестирование
✅ Автономность
- Не требует установки зависимостей
- Работает на любой платформе
- Может быть скопирован в любой проект
✅ Улучшенное логирование
- Группировка логов по категориям
- Структурированный вывод результатов
- Сводки по обработке
🔧 Настройка
Переменные окружения
# Для Windows (кодировка)
set PYTHONIOENCODING=utf-8
# Для Linux/macOS
export PYTHONIOENCODING=utf-8
Структура входных данных
project/
├── conf_files/ # Файлы конфигурации
│ ├── Catalogs/
│ ├── Documents/
│ └── Forms/
├── conf_report/ # Отчеты конфигурации
│ └── ОтчетПоКонфигурации.txt
└── onec-contract-generator/ # Система генерации
📚 Документация
- 📖 Руководство по использованию
- 🔧 API документация (в разработке)
- 💡 Примеры использования (в разработке)
🧪 Тестирование
# Запуск всех тестов
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 "C:\absolute\path\to\conf_files" \
--report-path "C:\absolute\path\to\report.txt"
Проблема: Отсутствие файлов
# Решение: Проверить структуру проекта
ls -la
python scripts/test.py
Проблема: Ошибки парсинга форм
# Решение: Проверить XML файлы форм
# Система автоматически группирует ошибки в логах
📊 Результаты тестирования
✅ Успешно протестировано на реальных данных:
- Конфигурация: YourProject (33MB отчет)
- Модули: 3,451 объект обработан
- Формы: Множество форм создано
- Метаданные: Структурированные контракты
📋 Группировка логов:
- info: Информационные сообщения
- success: Успешно обработанные файлы
- warning: Предупреждения
- error: Ошибки обработки
- summary: Сводки по результатам
🤝 Вклад в проект
- Форкните репозиторий
- Создайте ветку для новой функции
- Внесите изменения
- Добавьте тесты
- Создайте 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.1.1.tar.gz.
File metadata
- Download URL: onec_contract_generator-2.1.1.tar.gz
- Upload date:
- Size: 47.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad0c1dd0dec0105e67eab7cd442900076eb87623e8bbbb0754686468d67b0e26
|
|
| MD5 |
e8fc4c2598745b4e69e4f148e2d2287f
|
|
| BLAKE2b-256 |
780d85fc8fcdd72360be9f1d6cc373c46e2b5b6b2a6c5a87e1aeeb56919856bd
|
File details
Details for the file onec_contract_generator-2.1.1-py3-none-any.whl.
File metadata
- Download URL: onec_contract_generator-2.1.1-py3-none-any.whl
- Upload date:
- Size: 24.7 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 |
7c14fc5ea7bdb60f4b783c6be4b13dadc7515952bd0f66454a1fdd58f48f06be
|
|
| MD5 |
09d1b66940a02872b3e16c820a894a55
|
|
| BLAKE2b-256 |
6e7c8f752c3a7ffde4443d0189070abb5e2f42c903f3996e37d59c34963cdfbc
|