Cc-1c-skills meta-compile
Создать объект метаданных 1С. Используй когда пользователь просит создать или добавить справочник, документ, регистр, перечисление, константу, общий модуль, обработку, отчёт и др.
install
source · Clone the upstream repo
git clone https://github.com/Nikolay-Shirokov/cc-1c-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Nikolay-Shirokov/cc-1c-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/meta-compile" ~/.claude/skills/nikolay-shirokov-cc-1c-skills-meta-compile && rm -rf "$T"
manifest:
.claude/skills/meta-compile/SKILL.mdsource content
/meta-compile — генерация объектов метаданных из JSON DSL
Принимает JSON-определение объекта метаданных → генерирует XML + модули в структуре выгрузки конфигурации + регистрирует в Configuration.xml.
Порядок работы
- Составь JSON по синтаксису и примерам ниже → запиши во временный файл
- Запусти скрипт meta-compile
- Если нужно изменить созданный объект —
/meta-edit - Если нужно проверить —
/meta-validate
Команда
powershell.exe -NoProfile -File .claude/skills/meta-compile/scripts/meta-compile.ps1 -JsonPath "<json>" -OutputDir "<ConfigDir>"
| Параметр | Описание |
|---|---|
| Путь к JSON-файлу (один объект или массив ) |
| Корень выгрузки конфигурации (где , , и т.д.) |
JSON DSL
Общая структура
{ "type": "Catalog", "name": "Номенклатура", ...свойства типа... }
type и name — обязательные. synonym генерируется из name автоматически (CamelCase → слова через пробел). Можно задать явно: "synonym": "Мой синоним".
Shorthand реквизитов
Используется в
attributes, dimensions, resources, tabularSections:
"ИмяРеквизита" → String(10) по умолчанию "ИмяРеквизита: Тип" → с типом "ИмяРеквизита: Тип | req, index" → с флагами
Типы:
String(100), Number(15,2), Boolean, Date, DateTime, CatalogRef.Xxx, DocumentRef.Xxx, EnumRef.Xxx, DefinedType.Xxx и др. ссылочные.
Составной тип:
"Значение: String + Number(15,2) + CatalogRef.Контрагенты".
Флаги:
req, index, indexAdditional, nonneg, master, mainFilter, denyIncomplete, useInTotals.
Свойства по типам
Примеров и shorthand-синтаксиса выше достаточно для типовых задач. Если нужны свойства типа, не показанные в примерах, и их допустимые значения — см. reference-файл:
— Catalog, Document, Enum, Constant, DefinedType, Report, DataProcessorreference/types-basic.md
— InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypesreference/types-registers.md
— BusinessProcess, Task, ExchangePlan, CommonModule, ScheduledJob, EventSubscription, DocumentJournalreference/types-process.md
— HTTPService, WebServicereference/types-web.md
Эта инструкция и reference-файлы — полная документация для генерации. Не ищи примеры XML в выгрузках конфигураций.
Примеры паттернов DSL
Минимальный объект
{ "type": "Catalog", "name": "Валюты" }
С реквизитами
{ "type": "Catalog", "name": "Организации", "descriptionLength": 100, "attributes": ["ИНН: String(12)", "КПП: String(9)", "Директор: CatalogRef.ФизическиеЛица"] }
С табличной частью
{ "type": "Document", "name": "ПриходнаяНакладная", "registerRecords": ["AccumulationRegister.ОстаткиТоваров"], "attributes": ["Организация: CatalogRef.Организации", "Контрагент: CatalogRef.Контрагенты"], "tabularSections": { "Товары": ["Номенклатура: CatalogRef.Номенклатура", "Количество: Number(15,3)", "Цена: Number(15,2)"] } }
Регистровый паттерн (измерения + ресурсы)
{ "type": "InformationRegister", "name": "КурсыВалют", "periodicity": "Day", "dimensions": ["Валюта: CatalogRef.Валюты | master, mainFilter, denyIncomplete"], "resources": ["Курс: Number(15,4)", "Кратность: Number(10,0)"] }
Batch — несколько объектов в одном файле
[ { "type": "Enum", "name": "Статусы", "values": ["Новый", "Закрыт"] }, { "type": "Catalog", "name": "Валюты" }, { "type": "Constant", "name": "ОсновнаяВалюта", "valueType": "CatalogRef.Валюты" } ]