$npx -y skills add Arman-Kudaibergenov/1c-ai-development-kit --skill meta-removeЭтот скилл MUST быть вызван когда пользователь просит удалить, убрать объект из конфигурации 1С. SHOULD также вызывать при очистке неиспользуемых объектов конфигурации. Do NOT использовать для модификации объекта — используй meta-edit; для удаления формы — используй form-remove.
| 1 | # /meta-remove — удаление объекта метаданных |
| 2 | |
| 3 | Безопасно удаляет объект из XML-выгрузки конфигурации. Перед удалением проверяет ссылки на объект в реквизитах, коде и других метаданных. Если ссылки найдены — удаление блокируется. |
| 4 | |
| 5 | ## Использование |
| 6 | |
| 7 | ``` |
| 8 | /meta-remove <ConfigDir> -Object <Type.Name> |
| 9 | ``` |
| 10 | |
| 11 | ## Параметры |
| 12 | |
| 13 | | Параметр | Обязательный | Описание | |
| 14 | |------------|:------------:|-------------------------------------------------| |
| 15 | | ConfigDir | да | Корневая директория выгрузки (где Configuration.xml) | |
| 16 | | Object | да | Тип и имя объекта: `Catalog.Товары`, `Document.Заказ` и т.д. | |
| 17 | | DryRun | нет | Только показать что будет удалено, без изменений | |
| 18 | | KeepFiles | нет | Не удалять файлы, только дерегистрировать | |
| 19 | | Force | нет | Удалить несмотря на найденные ссылки | |
| 20 | |
| 21 | ## Команда |
| 22 | |
| 23 | ```powershell |
| 24 | powershell.exe -NoProfile -File .claude/skills/meta-remove/scripts/meta-remove.ps1 -ConfigDir "<путь>" -Object "Catalog.Товары" |
| 25 | ``` |
| 26 | |
| 27 | ## Что делает |
| 28 | |
| 29 | 1. **Находит файлы объекта**: `{TypePlural}/{Name}.xml` и `{TypePlural}/{Name}/` |
| 30 | 2. **Проверяет ссылки** (блокирует при наличии, если нет `-Force`): |
| 31 | - XML-типы в реквизитах других объектов: `CatalogRef.Имя`, `DocumentRef.Имя` и т.д. |
| 32 | - BSL-код: `Справочники.Имя`, `Catalogs.Имя`, вызовы общих модулей |
| 33 | - Журналы документов, подписки на события, определяемые типы |
| 34 | 3. **Удаляет из Configuration.xml**: убирает из `<ChildObjects>` |
| 35 | 4. **Очищает подсистемы**: рекурсивно удаляет из `<Content>` |
| 36 | 5. **Удаляет файлы**: XML-файл и каталог объекта |
| 37 | |
| 38 | ## Поддерживаемые типы |
| 39 | |
| 40 | Catalog, Document, Enum, Constant, InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes, BusinessProcess, Task, ExchangePlan, DocumentJournal, Report, DataProcessor, CommonModule, ScheduledJob, EventSubscription, HTTPService, WebService, DefinedType, Role, Subsystem, CommonForm, CommonTemplate, CommonPicture, CommonAttribute, SessionParameter, FunctionalOption, FunctionalOptionsParameter, Sequence, FilterCriterion, SettingsStorage, XDTOPackage, WSReference, StyleItem, Language |
| 41 | |
| 42 | ## Вывод (объект без ссылок) |
| 43 | |
| 44 | ``` |
| 45 | === meta-remove: Catalog.Устаревший === |
| 46 | |
| 47 | [FOUND] Catalogs/Устаревший.xml |
| 48 | [FOUND] Catalogs/Устаревший/ (8 files) |
| 49 | |
| 50 | --- Reference check --- |
| 51 | [OK] No references found |
| 52 | |
| 53 | --- Configuration.xml --- |
| 54 | [OK] Removed <Catalog>Устаревший</Catalog> from ChildObjects |
| 55 | [OK] Configuration.xml saved |
| 56 | |
| 57 | --- Subsystems --- |
| 58 | [OK] Removed from subsystem 'Справочники' |
| 59 | |
| 60 | --- Files --- |
| 61 | [OK] Deleted directory: Catalogs/Устаревший/ |
| 62 | [OK] Deleted file: Catalogs/Устаревший.xml |
| 63 | |
| 64 | === Done: 4 actions performed (1 subsystem references removed) === |
| 65 | ``` |
| 66 | |
| 67 | ## Вывод (объект со ссылками — блокировка) |
| 68 | |
| 69 | ``` |
| 70 | === meta-remove: Catalog.Валюты === |
| 71 | |
| 72 | [FOUND] Catalogs/Валюты.xml |
| 73 | [FOUND] Catalogs/Валюты/ (4 files) |
| 74 | |
| 75 | --- Reference check --- |
| 76 | [WARN] Found 3 reference(s) to Catalog.Валюты: |
| 77 | |
| 78 | Documents/СчетНаОплату.xml |
| 79 | pattern: CatalogRef.Валюты |
| 80 | InformationRegisters/КурсыВалют.xml |
| 81 | pattern: CatalogRef.Валюты |
| 82 | CommonModules/РаботаСВалютами/Ext/Module.bsl |
| 83 | pattern: Справочники.Валюты |
| 84 | |
| 85 | [ERROR] Cannot remove: object has 3 reference(s). |
| 86 | Use -Force to remove anyway, or fix references first. |
| 87 | ``` |
| 88 | |
| 89 | Код возврата: 0 = успешно, 1 = ошибки или найдены ссылки. |
| 90 | |
| 91 | ## Проверяемые ссылки |
| 92 | |
| 93 | | Категория | Паттерны поиска | |
| 94 | |-----------|----------------| |
| 95 | | XML-типы реквизитов | `CatalogRef.Name`, `DocumentRef.Name`, `EnumRef.Name` и др. | |
| 96 | | BSL-код (рус.) | `Справочники.Name`, `Документы.Name`, `Перечисления.Name` и др. | |
| 97 | | BSL-код (англ.) | `Catalogs.Name`, `Documents.Name`, `Enums.Name` и др. | |
| 98 | | Общие модули | `Name.` (вызовы методов), `<Handler>Name.`, `<MethodName>Name.` | |
| 99 | |
| 100 | Ссылки из Configuration.xml, ConfigDumpInfo.xml и подсистем НЕ считаются блокирующими — они очищаются автоматически. |
| 101 | |
| 102 | ## Примеры |
| 103 | |
| 104 | ```powershell |
| 105 | # Проверка ссылок + dry run |
| 106 | ... -ConfigDir C:\WS\tasks\cfsrc\acc_8.3.24 -Object "Catalog.Устаревший" -DryRun |
| 107 | |
| 108 | # Удалить объект без ссылок |
| 109 | ... -ConfigDir C:\WS\tasks\cfsrc\acc_8.3.24 -Object "Catalog.Устаревший" |
| 110 | |
| 111 | # Принудительно удалить несмотря на ссылки |
| 112 | ... -ConfigDir C:\WS\tasks\cfsrc\acc_8.3.24 -Object "Catalog.Устаревший" -Force |
| 113 | |
| 114 | # Только дерегистрировать (файлы оставить) |
| 115 | ... -ConfigDir C:\WS\tasks\cfsrc\acc_8.3.24 -Object "Report.Старый" -KeepFiles |
| 116 | |
| 117 | # Удалить общий модуль |
| 118 | ... -ConfigDir src -Object "CommonModule.МойМодуль" |
| 119 | ``` |
| 120 | |
| 121 | ## Когда использовать |
| 122 | |
| 123 | - **Ре |