$npx -y skills add Arman-Kudaibergenov/1c-ai-development-kit --skill meta-compileЭтот скилл MUST быть вызван когда пользователь просит добавить или создать объект конфигурации: справочник, документ, регистр, перечисление, константа, общий модуль, обработка, HTTP-сервис. SHOULD также вызывать для создания любого нового объекта метаданных 1С. Do NOT использоват
| 1 | # /meta-compile — генерация объектов метаданных из JSON DSL |
| 2 | |
| 3 | Принимает JSON-определение объекта метаданных → генерирует XML + модули в структуре выгрузки конфигурации + регистрирует в Configuration.xml. |
| 4 | |
| 5 | ## Параметры и команда |
| 6 | |
| 7 | | Параметр | Описание | |
| 8 | |----------|----------| |
| 9 | | `JsonPath` | Путь к JSON-определению объекта | |
| 10 | | `OutputDir` | Корневая директория выгрузки конфигурации (где `Catalogs/`, `Documents/` и т.д.) | |
| 11 | |
| 12 | ```powershell |
| 13 | powershell.exe -NoProfile -File .claude/skills/meta-compile/scripts/meta-compile.ps1 -JsonPath "<json>" -OutputDir "<ConfigDir>" |
| 14 | ``` |
| 15 | |
| 16 | `OutputDir` — директория, содержащая подпапки типов (`Catalogs/`, `Documents/`, ...) и `Configuration.xml`. |
| 17 | |
| 18 | ## Поддерживаемые типы (23) |
| 19 | |
| 20 | ### Ссылочные |
| 21 | Catalog (Справочник), Document (Документ), Enum (Перечисление), ExchangePlan (ПланОбмена), ChartOfAccounts (ПланСчетов), ChartOfCharacteristicTypes (ПВХ), ChartOfCalculationTypes (ПВР), BusinessProcess (БизнесПроцесс), Task (Задача) |
| 22 | |
| 23 | ### Регистры |
| 24 | InformationRegister (РегистрСведений), AccumulationRegister (РегистрНакопления), AccountingRegister (РегистрБухгалтерии), CalculationRegister (РегистрРасчёта) |
| 25 | |
| 26 | ### Отчёты/Обработки |
| 27 | Report (Отчёт), DataProcessor (Обработка) |
| 28 | |
| 29 | ### Сервисные |
| 30 | Constant (Константа), DefinedType (ОпределяемыйТип), CommonModule (ОбщийМодуль), ScheduledJob (РегламентноеЗадание), EventSubscription (ПодпискаНаСобытие), DocumentJournal (ЖурналДокументов), HTTPService (HTTPСервис), WebService (ВебСервис) |
| 31 | |
| 32 | ## JSON DSL — краткий справочник |
| 33 | |
| 34 | Полная спецификация: `docs/meta-dsl-spec.md`. |
| 35 | |
| 36 | ### Корневая структура |
| 37 | |
| 38 | ```json |
| 39 | { |
| 40 | "type": "Catalog", |
| 41 | "name": "Номенклатура", |
| 42 | "synonym": "авто из name", |
| 43 | ...type-specific..., |
| 44 | "attributes": [...], |
| 45 | "tabularSections": {...} |
| 46 | } |
| 47 | ``` |
| 48 | |
| 49 | ### Реквизиты — shorthand |
| 50 | |
| 51 | ``` |
| 52 | "ИмяРеквизита" — String без квалификаторов |
| 53 | "ИмяРеквизита: Тип" — с типом |
| 54 | "ИмяРеквизита: Тип | req, index" — с флагами |
| 55 | ``` |
| 56 | |
| 57 | Типы: `String(100)`, `Number(15,2)`, `Boolean`, `Date`, `DateTime`, `CatalogRef.Xxx`, `DocumentRef.Xxx`, `EnumRef.Xxx`, `ChartOfAccountsRef.Xxx`, `ChartOfCharacteristicTypesRef.Xxx`, `ChartOfCalculationTypesRef.Xxx`, `ExchangePlanRef.Xxx`, `BusinessProcessRef.Xxx`, `TaskRef.Xxx`, `DefinedType.Xxx`. |
| 58 | |
| 59 | Русские синонимы типов: `Строка`, `Число`, `Булево`, `Дата`, `СправочникСсылка.Xxx`, `ДокументСсылка.Xxx`, `ПланСчетовСсылка.Xxx`. |
| 60 | |
| 61 | Флаги: `req`, `index`, `indexAdditional`, `nonneg`, `master`, `mainFilter`, `denyIncomplete`, `useInTotals`. |
| 62 | |
| 63 | ## Примеры |
| 64 | |
| 65 | ### Справочник |
| 66 | |
| 67 | ```json |
| 68 | { "type": "Catalog", "name": "Валюты" } |
| 69 | ``` |
| 70 | |
| 71 | ### Перечисление |
| 72 | |
| 73 | ```json |
| 74 | { "type": "Enum", "name": "Статусы", "values": ["Новый", "Закрыт"] } |
| 75 | ``` |
| 76 | |
| 77 | ### Константа |
| 78 | |
| 79 | ```json |
| 80 | { "type": "Constant", "name": "ОсновнаяВалюта", "valueType": "CatalogRef.Валюты" } |
| 81 | ``` |
| 82 | |
| 83 | ### Определяемый тип |
| 84 | |
| 85 | ```json |
| 86 | { "type": "DefinedType", "name": "ДенежныеСредства", "valueTypes": ["CatalogRef.БанковскиеСчета", "CatalogRef.Кассы"] } |
| 87 | ``` |
| 88 | |
| 89 | ### Общий модуль |
| 90 | |
| 91 | ```json |
| 92 | { "type": "CommonModule", "name": "ОбменДаннымиСервер", "context": "server", "returnValuesReuse": "DuringRequest" } |
| 93 | ``` |
| 94 | |
| 95 | Шорткаты context: `"server"` → Server+ServerCall, `"client"` → ClientManagedApplication, `"serverClient"` → Server+ClientManagedApplication. |
| 96 | |
| 97 | ### Регистр сведений |
| 98 | |
| 99 | ```json |
| 100 | { |
| 101 | "type": "InformationRegister", "name": "КурсыВалют", "periodicity": "Day", |
| 102 | "dimensions": ["Валюта: CatalogRef.Валюты | master, mainFilter, denyIncomplete"], |
| 103 | "resources": ["Курс: Number(15,4)", "Кратность: Number(10,0)"] |
| 104 | } |
| 105 | ``` |
| 106 | |
| 107 | ### План обмена |
| 108 | |
| 109 | ```json |
| 110 | { "type": "ExchangePlan", "name": "ОбменССайтом", "attributes": ["АдресСервера: String(200)"] } |
| 111 | ``` |
| 112 | |
| 113 | ### Журнал документов |
| 114 | |
| 115 | ```json |
| 116 | { |
| 117 | "type": "DocumentJournal", "name": "Взаимодействия", |
| 118 | "registeredDocuments": ["Document.Встреча", "Document.ТелефонныйЗвонок"], |
| 119 | "columns": [{ "name": "Организация", "indexing": "Index", "references": ["Document.Встреча.Attribute.Организация"] }] |
| 120 | } |
| 121 | ``` |
| 122 | |
| 123 | ### HTTP-сервис |
| 124 | |
| 125 | ```json |
| 126 | { |
| 127 | "type": "HTTPService", "name": "API", "rootURL": "api", |
| 128 | "urlTemplates": { "Users": { "template": "/v1/users", "methods": { "Get": "GET", "Create": "POST" } } } |
| 129 | } |
| 130 | ``` |
| 131 | |
| 132 | ### Веб-сервис |
| 133 | |
| 134 | ```json |
| 135 | { |
| 136 | "type": "WebService", "name": "DataExchange", "namespace": "http://www.1c.ru/DataExchange", |
| 137 | "operations": { "TestConnection": { "returnType": "xs:boolean", "handler": "ПроверкаПодключения", "parameters": { "ErrorMessage": { "type": "xs:string", "direction": "Out" } } } } |
| 138 | } |
| 139 | ``` |
| 140 | |
| 141 | ### План счетов |
| 142 | |
| 143 | ```json |
| 144 | { |
| 145 | "type": "ChartOfAccounts", "name": "Хозрасчетный", |