/meta-compile - генерация объектов метаданных из JSON DSL
Принимает JSON-определение объекта метаданных → генерирует XML + модули в структуре выгрузки конфигурации + регистрирует в Configuration.xml.
Порядок работы
- Составь JSON по синтаксису и примерам ниже → запиши во временный файл
- Запусти скрипт meta-compile
- Если нужно изменить созданный объект -
/meta-edit - Если нужно проверить -
/meta-validate
Команда
powershell.exe -NoProfile -File skills/1c-meta-compile/scripts/meta-compile.ps1 -JsonPath "<json>" -OutputDir "<ConfigDir>"
| Параметр | Описание |
|---|---|
JsonPath |
Путь к JSON-файлу (один объект {...} или массив [{...}, ...]) |
OutputDir |
Корень выгрузки конфигурации (где Configuration.xml, Catalogs/, Documents/ и т.д.) |
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-файл:
reference/types-basic.md- Catalog, Document, Enum, Constant, DefinedType, Report, DataProcessorreference/types-registers.md- InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypesreference/types-process.md- BusinessProcess, Task, ExchangePlan, CommonModule, ScheduledJob, EventSubscription, DocumentJournalreference/types-web.md- HTTPService, WebServicereference/types-config.md- CommonAttribute, CommonCommand, CommandGroup, CommonForm, CommonTemplate, CommonPicture, FilterCriterion, Sequence, DocumentNumerator, SessionParameter, SettingsStorage, FunctionalOption, FunctionalOptionsParameter, WSReference
Эта инструкция и 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)"] }
}
Табличная часть задается списком колонок либо объектом, если нужен свой синоним:
"tabularSections": {
"Товары": { "synonym": "Строки заказа", "attributes": ["Номенклатура: CatalogRef.Номенклатура"] }
}
Поддержаны ключи attributes, synonym и comment. Любой другой ключ навык не применит и скажет об
этом предупреждением - молча он их больше не проглатывает.
Регистровый паттерн (измерения + ресурсы)
{
"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.Валюты" }
]