mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-18 07:35:52 +03:00
Auto-build: opencode (python) from e2c7f38
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
---
|
||||
name: xdto-info
|
||||
description: Анализ структуры пакета XDTO 1С — типы, свойства, точки входа. Используй как подготовительный шаг при написании кода, создающего и заполняющего объект XDTO, при разборе входящего XML, а также чтобы узнать, какие пакеты есть в конфигурации
|
||||
argument-hint: <PackagePath> [-Namespace <URI>|-Package <имя>] [-Name <Тип>] [-Depth N] [-RequiredOnly] [-Mode used-by] [-Limit N] [-Offset N] [-OutFile <файл>]
|
||||
allowed-tools:
|
||||
- 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) |
|
||||
|
||||
```powershell
|
||||
python ".opencode/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,
|
||||
а как называется пакет — нет. Вызов повторяет строку, от которой отталкиваешься:
|
||||
|
||||
```powershell
|
||||
# Фабрика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`.
|
||||
Reference in New Issue
Block a user