mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 17:25:52 +03:00
meta-edit добавляет поля в таблицу внешнего источника: тот же парсер реквизита, свой тег <Field>, свой контекст (без индексов и полнотекстового поиска — чужой таблицей 1С не владеет) и три своих свойства в хвосте. Сам источник точечно не правится: и таблица (отдельный файл), и функция (узел с полным набором свойств) требуют эмиттера, который живёт в meta-compile, — дублировать его здесь значило бы завести вторую реализацию одного и того же. Заодно закрыт тихий отказ, существовавший независимо от внешних источников: проверка допустимых детей смотрела на истинность списка, а не на наличие ключа, поэтому для вида с пустым списком трактовалась как «ограничений нет» и чужой ребёнок молча записывался в объект. Теперь add-attribute на таблице внешнего источника отвергается с предупреждением, а не пишет <Attribute> вместо <Field>. meta-remove понимает две формы: ExternalDataSource.PG — источник целиком, и четырёхчастную ExternalDataSource.PG.Table.products — одну таблицу. Таблица числится в ChildObjects файла источника, а не конфигурации, поэтому дерегистрация разведена переменной реестра; поиск ссылок дополнен путями вида ExternalDataSource.И.Table.Т и ExternalDataSourceTableRef.И.Т. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
61 lines
3.3 KiB
Markdown
61 lines
3.3 KiB
Markdown
---
|
|
name: meta-remove
|
|
description: Удалить объект метаданных из конфигурации 1С. Используй когда нужно удалить, убрать объект из конфигурации
|
|
argument-hint: <ConfigDir> -Object <Type.Name>
|
|
allowed-tools:
|
|
- Bash
|
|
- Read
|
|
- Glob
|
|
- AskUserQuestion
|
|
---
|
|
|
|
# /meta-remove — удаление объекта метаданных
|
|
|
|
Безопасно удаляет объект из XML-выгрузки конфигурации. Перед удалением проверяет ссылки на объект в реквизитах, коде и других метаданных. Если ссылки найдены — удаление блокируется.
|
|
|
|
## Использование
|
|
|
|
```
|
|
/meta-remove <ConfigDir> -Object <Type.Name>
|
|
```
|
|
|
|
## Параметры
|
|
|
|
| Параметр | Обязательный | Описание |
|
|
|------------|:------------:|-------------------------------------------------|
|
|
| ConfigDir | да | Корневая директория выгрузки (где Configuration.xml) |
|
|
| Object | да | Тип и имя объекта: `Catalog.Товары`, `Document.Заказ` и т.д. Таблица внешнего источника — четырьмя частями: `ExternalDataSource.PG.Table.products` |
|
|
| DryRun | нет | Только показать что будет удалено, без изменений |
|
|
| KeepFiles | нет | Не удалять файлы, только дерегистрировать |
|
|
| Force | нет | Удалить несмотря на найденные ссылки; ссылки на формы объекта при этом очищаются |
|
|
|
|
## Команда
|
|
|
|
```powershell
|
|
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-remove.ps1" -ConfigDir "<путь>" -Object "Catalog.Товары"
|
|
```
|
|
|
|
## Поддерживаемые типы
|
|
|
|
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
|
|
|
|
## Примеры
|
|
|
|
```powershell
|
|
# Проверка ссылок + dry run
|
|
... -ConfigDir C:\WS\tasks\cfsrc\acc_8.3.24 -Object "Catalog.Устаревший" -DryRun
|
|
|
|
# Удалить объект без ссылок
|
|
... -ConfigDir C:\WS\tasks\cfsrc\acc_8.3.24 -Object "Catalog.Устаревший"
|
|
|
|
# Принудительно удалить несмотря на ссылки
|
|
... -ConfigDir C:\WS\tasks\cfsrc\acc_8.3.24 -Object "Catalog.Устаревший" -Force
|
|
|
|
# Только дерегистрировать (файлы оставить)
|
|
... -ConfigDir C:\WS\tasks\cfsrc\acc_8.3.24 -Object "Report.Старый" -KeepFiles
|
|
|
|
# Удалить общий модуль
|
|
... -ConfigDir src -Object "CommonModule.МойМодуль"
|
|
```
|
|
|