Files
cc-1c-skills/.github/skills/xdto-info/SKILL.md
T

5.4 KiB

name, description, argument-hint, allowed-tools
name description argument-hint allowed-tools
xdto-info Анализ структуры пакета XDTO 1С — типы, свойства, точки входа. Используй как подготовительный шаг при написании кода, создающего и заполняющего объект XDTO, при разборе входящего XML, а также чтобы узнать, какие пакеты есть в конфигурации <PackagePath> [-Namespace <URI>|-Package <имя>] [-Name <Тип>] [-Depth N] [-RequiredOnly] [-Mode used-by] [-Limit N] [-Offset N] [-OutFile <файл>]
Bash
Read
Glob

/xdto-info — Анализ структуры пакета XDTO

Показывает структуру типа в терминах 1С: какой тип значения присваивать, что обязательно, где нужен вложенный объект, какие значения допустимы. Заменяет чтение Package.bin или XSD с ручным переводом xs:decimalЧисло и lowerBound="0" → необязательный.

Параметры

Параметр Обязательный Описание
PackagePath да Каталог пакета либо корень исходников конфигурации. Псевдоним — -Path
Namespace нет Выбрать пакет по пространству имён (когда путь — корень исходников)
Package нет Выбрать пакет по имени объекта метаданных
Name нет Имя типа. Без выбранного пакета ищется по всей конфигурации
Depth нет Глубина разузлования вложенных объектов. По умолчанию 1
RequiredOnly нет Оставить только обязательные свойства — скелет для «заполни обязательное». Необязательный объект уходит вместе со своим содержимым
Mode нет used-by — показать, кто ссылается на тип
Limit / Offset нет Пагинация. По умолчанию 150 строк
OutFile нет Записать результат в файл (UTF-8 BOM)
python ".github/skills/xdto-info/scripts/xdto-info.py" -PackagePath "<путь>"

Что показывает

Точка входа определяется по пути: корень исходников — список пакетов, каталог пакета — его состав.

Вызов Результат
-PackagePath src все пакеты конфигурации: имя, число типов, namespace
-PackagePath src/XDTOPackages/ОбменСБанком импорты, точки входа, списки типов
... -Name ПлатежныйДокумент структура типа для заполнения
... -Name ПлатежныйДокумент -Depth 3 то же с раскрытием вложенных объектов
... -Mode used-by -Name СуммаТип кто ссылается на тип, включая соседние пакеты

Когда известны namespace и тип, но не имя пакета

Так бывает чаще всего: namespace и имя типа видны в коде или в образце XML, а как называется пакет — нет. Вызов повторяет строку, от которой отталкиваешься:

# ФабрикаXDTO.Тип("urn:1C.ru:ClientBankExchange", "ПлатежныйДокумент")
... -PackagePath src -Namespace "urn:1C.ru:ClientBankExchange" -Name ПлатежныйДокумент

Если известно только имя типа — укажи -Name и корень исходников: тип найдётся по всем пакетам. При нескольких совпадениях навык покажет, где именно, чтобы уточнить.

Что в выводе

Свойства показаны так, как их предстоит заполнять в коде: тип значения — в нотации 1С и с учётом ограничений (Строка(6), Число(18,2)), обязательность и коллекции — флагами, для перечислимых типов перечислены допустимые значения. Непомеченное свойство необязательно.

Обозначения, которые сами по себе неочевидны, навык поясняет прямо в выводе — и только те, что в нём встретились.

Типичный workflow

  1. /xdto-info src — какие пакеты есть
  2. /xdto-info src -Namespace "<URI>" — точки входа и типы пакета
  3. /xdto-info src -Namespace "<URI>" -Name <Тип> -Depth 2 — структура для кода
  4. Перед правкой типа: -Mode used-by -Name <Тип> — кого затронет

Нужна сама XML-схема, а не сводка, — это /xdto-decompile.