6.2 KiB
name, description, argument-hint, allowed-tools
| name | description | argument-hint | allowed-tools | |||
|---|---|---|---|---|---|---|
| xdto-edit | Точечное редактирование пакета XDTO 1С. Используй когда нужно добавить, изменить или удалить тип или свойство в существующем пакете, переименовать пакет, сменить пространство имён | <PackagePath> -Operation <операция> [-Target <путь>] [-Value <значение>] [-NoValidate] |
|
/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 ".codeassistant/skills/xdto-edit/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