| name | xdto-edit |
| description | Точечное редактирование пакета XDTO 1С. Используй когда нужно добавить, изменить или удалить тип или свойство в существующем пакете, переименовать пакет, сменить пространство имён |
| argument-hint | <PackagePath> -Operation <операция> [-Target <путь>] [-Value <значение>] [-NoValidate] |
| allowed-tools | ["Bash","Read","Glob"] |
/xdto-edit — Точечное редактирование пакета XDTO
Меняет один элемент пакета, не требуя читать и переписывать всю схему — для больших
пакетов (EnterpriseData — около мегабайта) это единственный практичный путь.
Если нужно переработать схему целиком или сперва разобраться, как она устроена, —
/xdto-decompile → правка XSD → /xdto-compile -Force.
Параметры
| Параметр | Обязательный | Описание |
|---|
PackagePath | да | Каталог пакета, Ext/Package.bin или <Имя>.xml. Псевдоним — -Path |
Operation | да | Операция из таблицы ниже |
Target | зависит | Адрес: имя типа или путь Тип.Свойство |
Value | зависит | Фрагмент XSD, литерал, URI или текст. @путь — взять содержимое из файла |
NoValidate | нет | Не запускать xdto-validate после правки |
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-edit.ps1" -PackagePath "<путь>" -Operation <op> -Target "<адрес>" -Value "<значение>"
Операции
| Операция | -Target | -Value |
|---|
add-property | имя типа | <xs:element> или <xs:attribute> |
replace-property | Тип.Свойство | новое объявление целиком |
remove-property | Тип.Свойство | — |
add-type | — | <xs:complexType> или <xs:simpleType> |
remove-type | имя типа | — |
add-enum | имя типа значения | литерал |
add-import | — | URI пространства имён |
rename | — | новое имя объекта метаданных |
set-synonym | — | синоним |
set-comment | — | комментарий |
set-namespace | — | новый URI пространства имён |
Батч через ;; там, где перечисление осмысленно: remove-property, remove-type,
add-enum, add-import.
... -Operation add-property -Target "Платёж" -Value '<xs:element name="Комментарий" type="xs:string" minOccurs="0"/>'
... -Operation remove-property -Target "Платёж.Комментарий ;; Платёж.Черновик"
... -Operation add-enum -Target "ВидДокумента" -Value "Инкассо ;; Аккредитив"
... -Operation rename -Value ОбменСБанком
Содержимое всегда описывается фрагментом XML-схемы — тем же языком, что и в
/xdto-compile. Отдельных параметров вида -MinOccurs нет: чтобы поменять свойство,
дай его новое объявление целиком через replace-property.
Ограничение длины и прочие фасеты задаются вложенным типом:
<xs:element name="Комментарий" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string"><xs:maxLength value="200"/></xs:restriction>
</xs:simpleType>
</xs:element>
Многострочный фрагмент передавай файлом: -Value "@frag.xsd". Инлайн через оболочку
надёжен только для однострочных фрагментов без вложенных кавычек.
Адресация
Путь Тип.Свойство. Точка безопасна: имена типов и свойств — идентификаторы 1С.
Путь продолжается внутрь встроенных типов: ПлатежныйДокумент.ДатаСписано.ИдПлатежа.
Посмотреть, что есть в пакете и как называется нужный тип, — /xdto-info.
Перед правкой типа полезно /xdto-info -Mode used-by -Name <Тип>: покажет,
кого затронет изменение.
Что тянет за собой переименование и смена namespace
rename меняет имя в объекте метаданных, переименовывает файл <Имя>.xml и каталог
<Имя>/, правит регистрацию в Configuration.xml. Новое имя проверяется на
допустимость как идентификатор 1С и на занятость.
set-namespace меняет targetNamespace, все внутренние ссылки на собственные типы
и <Namespace> объекта метаданных. Пакеты, импортирующие старое пространство имён,
не изменяются — при версионировании они и должны продолжать смотреть на прежнее.
Навык их перечислит; если правка не версионная, поправь их импорты сам.
После правки автоматически запускается /xdto-validate — отключается через -NoValidate.
Типичный workflow
/xdto-info <пакет> — найти нужный тип
/xdto-info <пакет> -Mode used-by -Name <Тип> — если меняешь существующее
/xdto-edit <пакет> -Operation <op> …
/db-load-xml + /db-update