# Корневые файлы конфигурации Навыки группы `/cf-*` позволяют создавать, анализировать, редактировать и проверять корневые файлы конфигурации 1С — `Configuration.xml`, `ConfigDumpInfo.xml`, `Languages/`. ## Навыки | Навык | Параметры | Описание | |-------|-----------|----------| | `/cf-info` | ` [-Mode overview\|brief\|full]` | Анализ конфигурации: свойства, состав, счётчики объектов (3 режима) | | `/cf-init` | ` [-Synonym] [-OutputDir] [-Version] [-Vendor]` | Создание пустой конфигурации (scaffold XML-исходников) | | `/cf-validate` | ` [-MaxErrors 30]` | Валидация структурной корректности (8 проверок) | | `/cf-edit` | ` -Operation -Value ""` | Редактирование свойств, состава ChildObjects, ролей по умолчанию (6 операций) | ## Рабочий цикл ``` Описание (текст) → /cf-init → XML-исходники → /cf-validate ↕ /cf-edit → /cf-info ``` 1. `/cf-init` создаёт scaffold пустой конфигурации (Configuration.xml, ConfigDumpInfo.xml, Languages/) 2. `/cf-edit` вносит изменения: свойства, объекты в ChildObjects, роли по умолчанию 3. `/cf-validate` проверяет корректность XML (структура, enum-значения, ссылки, каталоги) 4. `/cf-info` выводит компактную сводку для визуальной проверки ## cf-info — режимы вывода ### brief — одна строка ``` Конфигурация: БухгалтерияПредприятия — "Бухгалтерия предприятия" v3.0.181.31 | 2847 объектов | Version8_3_24 ``` ### overview (по умолчанию) — заголовок + ключевые свойства + счётчики ``` Конфигурация: ТестКонфигурация — "Тестовая конфигурация" Version: 2.0.0.1 Vendor: TestCompany Compatibility: Version8_3_24 DefaultLanguage: Language.Русский Объекты (4 шт.): Language 1 Role 1 Catalog 1 Document 1 ``` ### full — все свойства + полный список объектов Выводит все свойства по категориям (скалярные, enum, ref), полный список ChildObjects поимённо, DefaultRoles и мобильные функциональности. ## cf-edit — операции ### Свойства ```powershell # Скалярные и enum -Operation modify-property -Value "Version=2.0.0.1 ;; Vendor=Фирма 1С ;; CompatibilityMode=Version8_3_27" # Многоязычные (LocalString) -Operation modify-property -Value "Synonym=Моя конфигурация ;; Copyright=ООО Фирма" # Ссылка -Operation modify-property -Value "DefaultLanguage=Language.Русский" ``` Поддерживаемые свойства: | Категория | Свойства | |-----------|----------| | Скалярные | `Name`, `Version`, `Vendor`, `Comment`, `NamePrefix`, `UpdateCatalogAddress` | | LocalString | `Synonym`, `BriefInformation`, `DetailedInformation`, `Copyright`, `VendorInformationAddress`, `ConfigurationInformationAddress` | | Enum | `CompatibilityMode`, `ConfigurationExtensionCompatibilityMode`, `DefaultRunMode`, `ScriptVariant`, `DataLockControlMode`, `ObjectAutonumerationMode`, `ModalityUseMode`, `SynchronousPlatformExtensionAndAddInCallUseMode`, `InterfaceCompatibilityMode`, `DatabaseTablespacesUseMode`, `MainClientApplicationWindowMode` | | Ref | `DefaultLanguage` | ### Состав объектов (ChildObjects) ```powershell # Добавить (вставляется в каноническую позицию — по типу, затем по алфавиту) -Operation add-childObject -Value "Catalog.Товары ;; Document.Заказ ;; Enum.ВидыОплат" # Удалить -Operation remove-childObject -Value "Catalog.Устаревший" ``` 44 типа объектов поддерживаются в каноническом порядке: Language, Subsystem, StyleItem, CommonPicture, ... IntegrationService. ### Роли по умолчанию (DefaultRoles) ```powershell # Добавить -Operation add-defaultRole -Value "ПолныеПрава" # Удалить -Operation remove-defaultRole -Value "ПолныеПрава" # Заменить список целиком -Operation set-defaultRoles -Value "ПолныеПрава ;; Администратор" ``` ### JSON mode — комбинированные операции ```json [ { "operation": "modify-property", "value": "Version=2.0.0.1 ;; Vendor=Test" }, { "operation": "add-childObject", "value": "Catalog.Товары ;; Document.Заказ" }, { "operation": "add-defaultRole", "value": "ПолныеПрава" } ] ``` ## cf-validate — проверки | # | Проверка | Уровень | |---|----------|---------| | 1 | XML well-formedness, MetaDataObject/Configuration, version | ERROR | | 2 | InternalInfo: 7 ContainedObject, валидные ClassId | ERROR | | 3 | Properties: Name, Synonym, DefaultLanguage, DefaultRunMode | ERROR/WARN | | 4 | Enum-значения (11 свойств) | ERROR | | 5 | ChildObjects: валидные типы, нет дубликатов, порядок | ERROR/WARN | | 6 | DefaultLanguage ссылается на существующий Language | ERROR | | 7 | Файлы языков `Languages/.xml` существуют | WARN | | 8 | Каталоги объектов из ChildObjects существуют | WARN | ## Сценарии использования ### Обзор существующей конфигурации ``` > Покажи структуру конфигурации C:\WS\cfsrc\acc_8.3.24 ``` Claude вызовет `/cf-info` и покажет: имя, синоним, версию, поставщика, количество объектов по типам. ### Создание новой конфигурации ``` > Создай пустую конфигурацию МойПроект, версия 1.0.0.1, поставщик "ООО Ромашка" ``` Claude вызовет `/cf-init` → `/cf-edit` (Version, Vendor) → `/cf-validate` → `/cf-info`. ### Добавление объектов в конфигурацию ``` > Добавь в конфигурацию src/ справочник Контрагенты, документ ЗаказКлиента и перечисление ВидыОплат ``` Claude вызовет `/cf-edit` с `add-childObject`, объекты встанут в каноническом порядке. ### Проверка конфигурации после изменений ``` > Проверь корректность конфигурации src/ ``` Claude вызовет `/cf-validate` и покажет ошибки и предупреждения. ## Структура корневых файлов ``` / ├── Configuration.xml # Свойства и состав конфигурации ├── ConfigDumpInfo.xml # Служебный (версии объектов) ├── Ext/ # Модули конфигурации │ ├── ManagedApplicationModule.bsl │ ├── SessionModule.bsl │ └── ... └── Languages/ └── Русский.xml # Язык конфигурации ``` ## Связь с другими навыками - `/meta-compile` — при создании объекта автоматически регистрирует его в `Configuration.xml` (вызывает логику `add-childObject`) - `/subsystem-edit` — при добавлении объекта в подсистему объект уже должен быть в ChildObjects - `/cf-edit` + `/meta-compile` — типичная связка: сначала добавить объект в конфигурацию, затем создать его исходники ## Спецификации - [1c-configuration-spec.md](1c-configuration-spec.md) — XML-формат Configuration.xml, ConfigDumpInfo.xml, Languages/, свойства, 44 типа ChildObjects