$npx -y skills add Nikolay-Shirokov/cc-1c-skills --skill meta-compileСоздать объект метаданных 1С. Используй когда нужно создать или добавить справочник, документ, регистр, перечисление, константу, общий модуль, обработку, отчёт и др.
| 1 | # /meta-compile — генерация объектов метаданных из JSON |
| 2 | |
| 3 | Принимает JSON-определение объекта → генерирует XML + модули в структуре выгрузки конфигурации и |
| 4 | регистрирует объект в `Configuration.xml`. |
| 5 | |
| 6 | `ConfigDumpInfo.xml` намеренно не трогается: это служебный файл версий объектов, которым управляет |
| 7 | платформа (для инкрементальной выгрузки). |
| 8 | |
| 9 | ## Порядок работы |
| 10 | |
| 11 | 1. Составь JSON по синтаксису ниже → запиши во временный файл. |
| 12 | 2. Запусти скрипт. |
| 13 | 3. Изменить созданный объект — `/meta-edit`; проверить — `/meta-validate`. |
| 14 | |
| 15 | ```powershell |
| 16 | powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-compile.ps1" -JsonPath "<json>" -OutputDir "<ConfigDir>" |
| 17 | ``` |
| 18 | |
| 19 | | Параметр | Описание | |
| 20 | |----------|----------| |
| 21 | | `JsonPath` | Путь к JSON-файлу | |
| 22 | | `OutputDir` | Корень выгрузки конфигурации (где `Configuration.xml`, `Catalogs/`, `Documents/`, …) | |
| 23 | |
| 24 | ## Формат JSON |
| 25 | |
| 26 | **Один объект** `{ ... }` или **массив** объектов `[{ ... }, { ... }]` (batch — несколько объектов за прогон). |
| 27 | |
| 28 | ```json |
| 29 | { "type": "Catalog", "name": "Номенклатура", "...свойства типа...": "..." } |
| 30 | ``` |
| 31 | |
| 32 | `type` и `name` — обязательные. Остальное — по типу (см. индекс ниже). `synonym` по умолчанию выводится из |
| 33 | `name` (CamelCase → слова через пробел); можно задать явно строкой или мультиязычно: `"synonym": { "ru": "…", "en": "…" }`. |
| 34 | |
| 35 | ## Реквизиты (shorthand) |
| 36 | |
| 37 | Массивы `attributes`, `dimensions`, `resources` и колонки в `tabularSections` задаются строками: |
| 38 | |
| 39 | ``` |
| 40 | "Имя" → String(10) |
| 41 | "Имя: Тип" → с типом |
| 42 | "Имя: Тип | req, index" → с флагами |
| 43 | ``` |
| 44 | |
| 45 | **Типы:** `String(100)`, `String(10, fixed)` (фикс. длина), `Number(15,2)`, `Boolean`, `Date`, `DateTime`, |
| 46 | `Time`, ссылочные `CatalogRef.Xxx` / `DocumentRef.Xxx` / `EnumRef.Xxx` / `DefinedType.Xxx` и т.п. |
| 47 | Составной тип — через `+`: `"Значение: String + Number(15,2) + CatalogRef.Контрагенты"`. |
| 48 | |
| 49 | **Флаги** (после `|`, через запятую): |
| 50 | |
| 51 | | Флаг | Значение | Где | |
| 52 | |------|----------|-----| |
| 53 | | `req` | обязательное заполнение | attributes, dimensions, resources | |
| 54 | | `index` | индексировать | attributes, dimensions | |
| 55 | | `indexAdditional` | индекс с доп. упорядочиванием | attributes | |
| 56 | | `multiline` | многострочное поле | attributes | |
| 57 | | `nonneg` | неотрицательное (Number) | attributes, resources | |
| 58 | | `master` | ведущее измерение | dimensions (регистры) | |
| 59 | | `mainFilter` | основной отбор | dimensions (регистры) | |
| 60 | | `denyIncomplete` | запрет незаполненных | dimensions | |
| 61 | | `useInTotals` | использовать в итогах | dimensions (регистр накопления) | |
| 62 | |
| 63 | Реквизиту нужны свойства сверх shorthand (значение заполнения, параметры выбора, формат, подсказка, …) — |
| 64 | задаётся **объектной формой**, см. `reference/attributes.md`. |
| 65 | |
| 66 | ## Табличные части |
| 67 | |
| 68 | ```json |
| 69 | "tabularSections": { "Товары": ["Номенклатура: CatalogRef.Номенклатура", "Количество: Number(15,3)"] } |
| 70 | ``` |
| 71 | |
| 72 | Ключ — имя ТЧ, значение — массив колонок (shorthand) ЛИБО объект со свойствами ТЧ (см. `reference/attributes.md`). |
| 73 | |
| 74 | ## Индекс: свойства по типам |
| 75 | |
| 76 | Для каждого типа — свой reference-файл со свойствами, дефолтами и допустимыми значениями: |
| 77 | |
| 78 | | Тип(ы) | Файл | |
| 79 | |--------|------| |
| 80 | | Catalog (справочник) | `reference/catalog.md` | |
| 81 | | Document, DocumentJournal, Sequence, DocumentNumerator | `reference/document.md` | |
| 82 | | InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister | `reference/registers.md` | |
| 83 | | ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes | `reference/charts.md` | |
| 84 | | ExchangePlan | `reference/exchangeplan.md` | |
| 85 | | BusinessProcess, Task | `reference/process.md` | |
| 86 | | Report, DataProcessor | `reference/report-dataprocessor.md` | |
| 87 | | CommonModule, ScheduledJob, EventSubscription | `reference/code.md` | |
| 88 | | HTTPService, WebService | `reference/web.md` | |
| 89 | | Enum, Constant, DefinedType | `reference/simple.md` | |
| 90 | | FunctionalOption, FilterCriterion, SettingsStorage, CommonForm, CommonPicture, CommonTemplate, служебные | `reference/other-types.md` | |
| 91 | |
| 92 | Кросс-типовые детали: |
| 93 | - **`reference/attributes.md`** — объектная форма реквизита и колонки ТЧ (значение заполнения, параметры |
| 94 | выбора, формат, подсказка, границы, …) + свойства самой ТЧ. |
| 95 | - **`reference/blocks.md`** — блоки объекта: представления, команды (+ характеристики/стандартные реквизиты). |
| 96 | |
| 97 | Эта инструкция и reference-файлы — полная документация. Не ищи примеры XML в выгрузках конфигураций. |
| 98 | |
| 99 | ## Примеры |
| 100 | |
| 101 | Справочник с реквизитами: |
| 102 | ```json |
| 103 | { "type": "Catalog", "name": "Организации", "descriptionLength": 100, |
| 104 | "attributes": ["ИНН: String(12)", "КПП: String(9)", "Директор: CatalogRef.ФизическиеЛица"] } |
| 105 | ``` |
| 106 | |
| 107 | Документ с движениями и ТЧ: |
| 108 | ```json |
| 109 | { "type": "Document", "name": "ПриходнаяНакладная", |
| 110 | "registerRecords": ["AccumulationRegister.ОстаткиТоваров"], |
| 111 | "attributes": ["Организация: Catalo |