framework/skills/tool-usage/platform-data/xml-generation/meta-operations/SKILL.md
xml-gen metadata: объекты, реквизиты, табличные части
npx skillsauth add steelmorgan/1c-agent-based-dev-framework meta-operationsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Триггер | Действие |
|---------|----------|
| Создать справочник/документ/регистр | meta compile meta.json <output_dir> |
| Посмотреть структуру объекта | meta info <objectPath> |
| Добавить реквизит/ТЧ/измерение | meta edit <objectPath> --op add-attribute "Name: Type" |
| Проверить объект метаданных | meta validate <objectPath> |
| Удалить объект из конфигурации | meta remove <configDir> Type.Name |
| Категория | Типы | |-----------|------| | Ссылочные | Catalog, Document, Enum, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, ExchangePlan | | Регистры | InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister | | Процессы | BusinessProcess, Task | | Сервисные | HTTPService, WebService | | Прочие | Constant, DefinedType, CommonModule, Report, DataProcessor, ScheduledJob, DocumentJournal, EventSubscription |
xml-gen meta compile <meta.json> <output_dir>
JSON DSL:
{
"type": "Catalog",
"name": "Товары",
"codeLength": 9,
"descriptionLength": 150,
"hierarchical": true,
"attributes": [
"Артикул: String(50)",
"Цена: Number(15,2)",
"Производитель: CatalogRef.Контрагенты"
],
"tabularSections": [
{ "name": "Штрихкоды", "attributes": ["Штрихкод: String(13)"] }
]
}
Полные свойства Catalog: hierarchical, hierarchyType (HierarchyFoldersAndItems|HierarchyItemsOnly), limitLevelCount, levelCount, foldersOnTop, codeLength, codeType (String|Number), codeAllowedLength (Variable|Fixed), codeSeries (WholeCatalog|WithinOwnerSubordination|WithinSubordination), descriptionLength, autonumbering, checkUnique, defaultPresentation (AsDescription|AsCode), subordinationUse (ToItems|ToFolders|ToFoldersAndItems), quickChoice, choiceMode (BothWays|FromChoiceForm|QuickChoice), editType (InDialog|InList|BothWays), owners (массив строк, напр. ["Catalog.Контрагенты"]).
Флаг реквизита multiLine — делает строковое поле многострочным (<MultiLine>true</MultiLine>). В shorthand: "Описание: String(500) | multiline".
xml-gen meta info [--mode brief|overview|full] <objectPath>
xml-gen meta edit <objectPath> --op <operation> "<value>"
Операции: add-attribute / add-dimension / add-resource / add-ts / add-ts-attribute / add-enumValue / add-form / add-template / add-command / remove-attribute / remove-ts / remove-enumValue / modify-attribute / add-property / modify-property
Shorthand формат:
ИмяРеквизита: ТипДанных | флаги >> after/before Якорь
Примеры: "Артикул: String(50)", "Сумма: Number(15,2) | nonneg", "Контрагент: CatalogRef.Контрагенты | indexing"
Предопределенные данные:
# Простой shorthand, батч через ;;
xml-gen meta edit src/xml/Catalogs/Товары.xml --op add-predefined \
--value "Основной|Основной элемент|000000001;;Группа|Группа||folder"
# Полное JSON-дерево элементов, включая пустой Code, ChildItems и поля планов
xml-gen meta edit src/xml/ChartsOfAccounts/Основной.xml --op add-predefined \
--value @predefined-items.json
add-predefined поддерживает Catalog, ChartOfAccounts, ChartOfCalculationTypes, ChartOfCharacteristicTypes. В shorthand формат: Имя[|Описание[|Код[|folder]]]; явно пустое третье поле (Имя|Описание|) создает <Code/>, а отсутствующее третье поле генерирует следующий код. JSON-файл может быть массивом или объектом { "items": [...] }; поля элемента: name, code, description, isFolder, childItems, types, accountType, offBalance, order, accountingFlags, extDimensionTypes, actionPeriodIsBase, displaced.
Состав плана обмена:
xml-gen meta edit src/xml/ExchangePlans/РИБ.xml --op add-exchange-content \
--value "Catalog.Товары|Deny;;Document.Заказ|Allow"
xml-gen meta edit src/xml/ExchangePlans/РИБ.xml --op add-exchange-content \
--value @exchange-content-items.json
add-exchange-content поддерживает только объекты ExchangePlan. Shorthand формат: Metadata[|AutoRecord]; если AutoRecord не указан, используется Deny. JSON может быть массивом или объектом { "items": [...] } с полями metadata и autoRecord.
~40 проверок: структура XML, UUID, Properties, boolean-свойства, type-specific правила (22 типа), строгая enum-валидация (HierarchyType, SubordinationUse, ChoiceMode, EditType, CodeAllowedLength, CodeSeries, NumberAllowedLength, RegisterRecordsDeletion, RegisterRecordsWritingOnPost, Periodicity, RequireCalculationTypes и др.), файловая структура.
xml-gen meta validate <objectPath>
Инварианты компиляции:
FillFromFillingValue / FillValue / DataHistory — только для реквизитов InformationRegister; для других регистров вызывают XSD-ошибку при загрузке.Ref, Code, Description, Parent, Owner, IsFolder, DeletionMark, PostingMode, DataVersion, Predefined, PredefinedDataName, Posted, Date, Number (и русские синонимы: Ссылка, Код, Наименование, Родитель, Владелец, ЭтоГруппа, ПометкаУдаления, РежимПроведения, ВерсияДанных, Предопределенный, ИмяПредопределенныхДанных, Проведен, Дата, Номер).xml-gen meta remove <configDir> <Type.Name> [--dry-run] [--keep-files] [--force]
Алгоритм: поиск файлов → проверка ссылок в XML/BSL → удаление из Configuration.xml ChildObjects → удаление из подсистем → удаление файлов.
В shorthand: Справочник → Catalog, Документ → Document, Перечисление → Enum, РегистрСведений → InformationRegister и т.д.
# Один объект
xml-gen meta edit <objectPath> --batch patch.json
# Мультиобъектный патч (ObjectPath внутри JSON)
xml-gen meta edit --batch multi-patch.json
Применять при: нескольких операциях разных типов к одному объекту за один вызов, генерации патчей агентом, воспроизводимых миграциях схемы.
Inline batch через ;;:
xml-gen meta edit <objectPath> --op add-attribute "Цена: Number(15,2) ;; Вес: Number(10,3) | nonneg"
Подробная спецификация, полная структура JSON, позиционная вставка, мультиобъектные патчи — references/batch-patch.md.
Статус:
--batch <file.json>и inline;;реализованы вxml-gen(Java, транзакционно).
development
1C server maintenance webhooks: container restart and external component cache cleanup
development
Interactive DAP debugging of a single BSL procedure
tools
Rules for using RLM tools for project search and navigation in 1C/BSL
development
Creates web applications and routes on Winow (a web server on OneScript and Autumn). Use when working with a web server on OneScript, routing, or Winow controllers.