mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-07 10:40:52 +03:00
Auto-build: codeassistant (python) from 41e2eca
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
---
|
||||
name: meta-edit
|
||||
description: Точечное редактирование объекта метаданных 1С. Используй когда нужно добавить, удалить или изменить реквизиты, табличные части, измерения, ресурсы или свойства существующего объекта конфигурации
|
||||
argument-hint: <ObjectPath> -Operation <op> -Value "<val>" | -DefinitionFile <json> [-NoValidate]
|
||||
allowed-tools:
|
||||
- Bash
|
||||
- Read
|
||||
- Write
|
||||
- Glob
|
||||
---
|
||||
|
||||
# /meta-edit — точечное редактирование метаданных 1С
|
||||
|
||||
Атомарные операции модификации существующих XML объектов метаданных.
|
||||
|
||||
## Команда
|
||||
|
||||
### Inline mode (простые операции)
|
||||
|
||||
```powershell
|
||||
python ".codeassistant/skills/meta-edit/scripts/meta-edit.py" -ObjectPath "<path>" -Operation <op> -Value "<val>"
|
||||
```
|
||||
|
||||
### JSON mode (сложные/комбинированные)
|
||||
|
||||
```powershell
|
||||
python ".codeassistant/skills/meta-edit/scripts/meta-edit.py" -DefinitionFile "<json>" -ObjectPath "<path>"
|
||||
```
|
||||
|
||||
| Параметр | Описание |
|
||||
|----------|----------|
|
||||
| ObjectPath | XML-файл или директория объекта (обязательный, авторезолв `<dirName>.xml`) |
|
||||
| Operation | Inline-операция (альтернатива DefinitionFile) |
|
||||
| Value | Значение для inline-операции |
|
||||
| DefinitionFile | JSON-файл с операциями (альтернатива Operation) |
|
||||
| NoValidate | Не запускать meta-validate после правки |
|
||||
|
||||
## Частые операции
|
||||
|
||||
Batch через `;;` во всех операциях.
|
||||
|
||||
| Операция | Формат Value | Пример |
|
||||
|----------|-------------|--------|
|
||||
| `add-attribute` | `Имя: Тип \| флаги` | `"Сумма: Число(15,2) \| req, index"` |
|
||||
| `add-dimension` | `Имя: Тип \| флаги` | `"Организация: CatalogRef.Организации \| master"` |
|
||||
| `add-resource` | `Имя: Тип` | `"Сумма: Число(15,2)"` |
|
||||
| `add-column` | `Имя: Тип` | `"Тип: EnumRef.ТипыДокументов"` |
|
||||
| `add-ts` | `ТЧ: Рекв1: Тип1, Рекв2: Тип2` | `"Товары: Ном: CatalogRef.Ном, Кол: Число(15,3)"` |
|
||||
| `add-ts-attribute` | `ТЧ.Имя: Тип` | `"Товары.Скидка: Число(15,2)"` |
|
||||
| `remove-*` | `Имя` | `"СтарыйРеквизит ;; ЕщёОдин"` |
|
||||
| `remove-ts-attribute` | `ТЧ.Имя` | `"Товары.УстаревшийРекв"` |
|
||||
| `modify-attribute` | `Имя: ключ=значение` | `"СтароеИмя: name=НовоеИмя, type=Строка(500)"` |
|
||||
| `modify-ts-attribute` | `ТЧ.Имя: ключ=значение` | `"Товары.Рекв: name=НовоеИмя"` |
|
||||
| `modify-ts` | `ТЧ: ключ=значение` | `"Товары: synonym=Товарный состав"` |
|
||||
| `modify-property` | `Ключ=Значение` | `"CodeLength=11 ;; DescriptionLength=150"` |
|
||||
|
||||
Позиционная вставка: `"Склад: CatalogRef.Склады >> after Организация"`.
|
||||
|
||||
Составной тип — через `+`: `"Значение: Строка + Число(15,2) + Дата"`.
|
||||
|
||||
## Быстрые примеры
|
||||
|
||||
```powershell
|
||||
# Добавить реквизиты
|
||||
-Operation add-attribute -Value "Комментарий: Строка(200) ;; Сумма: Число(15,2) | index"
|
||||
|
||||
# Добавить ТЧ с реквизитами
|
||||
-Operation add-ts -Value "Товары: Ном: CatalogRef.Ном | req, Кол: Число(15,3), Цена: Число(15,2)"
|
||||
|
||||
# Удалить реквизит
|
||||
-Operation remove-attribute -Value "УстаревшийРеквизит"
|
||||
|
||||
# Переименовать + сменить тип
|
||||
-Operation modify-attribute -Value "СтароеИмя: name=НовоеИмя, type=Строка(500)"
|
||||
|
||||
# Изменить свойства объекта
|
||||
-Operation modify-property -Value "CodeLength=11 ;; DescriptionLength=150"
|
||||
|
||||
# Владельцы справочника
|
||||
-Operation set-owners -Value "Catalog.Контрагенты ;; Catalog.Организации"
|
||||
```
|
||||
|
||||
## Индекс: что правишь → файл
|
||||
|
||||
| Что нужно | Файл |
|
||||
|-----------|------|
|
||||
| Реквизит, измерение, ресурс, графа: флаги, составные типы, структурные свойства (`Format`, `ChoiceParameters`, `FillValue`, …) | `reference/attributes.md` |
|
||||
| Табличная часть и её реквизиты | `reference/tabular-sections.md` |
|
||||
| Свойства самого объекта, списочные свойства (владельцы, движения, основание, ввод по строке) | `reference/properties.md` |
|
||||
| Предопределённые элементы | `reference/predefined.md` |
|
||||
| Значения перечисления, команды | `reference/other-children.md` |
|
||||
| Внешний источник данных: поля, таблицы, функции | `reference/external-data-source.md` |
|
||||
| Комбинированные операции в одном JSON, синонимы ключей и типов, какие дети допустимы у типа объекта | `reference/json-dsl.md` |
|
||||
|
||||
Форму добавляет и удаляет навык `form-add` / `form-remove`, макет — навык `template-add` /
|
||||
`template-remove`: кроме записи в `ChildObjects` у них есть собственные файлы, и `meta-edit` их не трогает.
|
||||
|
||||
## Верификация
|
||||
|
||||
```
|
||||
/meta-validate <ObjectPath> — валидация после редактирования
|
||||
/meta-info <ObjectPath> — визуальная сводка
|
||||
```
|
||||
@@ -0,0 +1,88 @@
|
||||
# Реквизиты, измерения, ресурсы, графы
|
||||
|
||||
Операции над «плоскими» дочерними элементами объекта: реквизит (`attribute`), измерение (`dimension`),
|
||||
ресурс (`resource`), графа журнала (`column`). Синтаксис у всех один.
|
||||
|
||||
## Общие правила
|
||||
|
||||
**Batch-режим** — несколько элементов через `;;`:
|
||||
```
|
||||
-Value "Комментарий: Строка(200) ;; Сумма: Число(15,2) | index"
|
||||
```
|
||||
|
||||
**Shorthand-формат**: `ИмяРеквизита: Тип | флаги`
|
||||
|
||||
Флаги: `req` — обязательное заполнение; `index` — индексировать; `master` — ведущее измерение (только
|
||||
измерения); `mainFilter` — основной отбор (только измерения).
|
||||
|
||||
**Позиционная вставка**: `>> after ИмяЭлемента` или `<< before ИмяЭлемента`:
|
||||
```powershell
|
||||
-Operation add-attribute -Value "Склад: CatalogRef.Склады >> after Организация"
|
||||
```
|
||||
|
||||
## Составные типы
|
||||
|
||||
Разделитель `+`:
|
||||
```powershell
|
||||
-Operation add-attribute -Value "Значение: Строка + Число(15,2) + Дата + CatalogRef.Контрагенты"
|
||||
-Operation add-attribute -Value "Значение: Строка + Число(15,2) | req"
|
||||
```
|
||||
|
||||
В JSON DSL — массив в `type`:
|
||||
```json
|
||||
{ "name": "Значение", "type": ["Строка", "Число(15,2)", "Дата", "CatalogRef.Контрагенты"] }
|
||||
```
|
||||
|
||||
## add-attribute / add-dimension / add-resource / add-column
|
||||
|
||||
```powershell
|
||||
-Operation add-attribute -Value "Комментарий: Строка(200)"
|
||||
-Operation add-attribute -Value "Сумма: Число(15,2) | req, index"
|
||||
-Operation add-attribute -Value "Ном: CatalogRef.Номенклатура | req ;; Кол: Число(15,3)"
|
||||
-Operation add-dimension -Value "Организация: CatalogRef.Организации | master, mainFilter"
|
||||
-Operation add-resource -Value "Сумма: Число(15,2)"
|
||||
-Operation add-column -Value "Тип: EnumRef.ТипыДокументов"
|
||||
```
|
||||
|
||||
## remove-*
|
||||
|
||||
Имя элемента (или несколько через `;;`):
|
||||
```powershell
|
||||
-Operation remove-attribute -Value "СтарыйРеквизит ;; ЕщёОдин"
|
||||
-Operation remove-enumValue -Value "НеиспользуемоеЗначение"
|
||||
```
|
||||
|
||||
## modify-attribute / modify-dimension / modify-resource / modify-enumValue / modify-column
|
||||
|
||||
Формат: `ИмяЭлемента: ключ=значение, ключ=значение`
|
||||
|
||||
**Спец-операции** (строчные ключи): `name` (переименование), `type` (смена типа), `synonym`.
|
||||
|
||||
**Свойства** задавайте по имени свойства 1С (PascalCase, как в конфигураторе): `Indexing`, `FillChecking`,
|
||||
`Use`, `FullTextSearch`, `DataHistory`, `PasswordMode`, `MultiLine`, `Mask`, `CreateOnInput`, `QuickChoice` и др.
|
||||
Свойство можно задать, даже если у реквизита оно ещё не выставлено.
|
||||
|
||||
```powershell
|
||||
-Operation modify-attribute -Value "СтароеИмя: name=НовоеИмя, type=Строка(500)"
|
||||
-Operation modify-attribute -Value "Комментарий: Indexing=Index, FullTextSearch=Use"
|
||||
-Operation modify-enumValue -Value "СтароеЗначение: name=НовоеЗначение"
|
||||
```
|
||||
|
||||
## Структурные свойства реквизита
|
||||
|
||||
Свойства со сложным значением задавайте через JSON DSL (`{ "modify": { "attributes": { "Имя": { ... } } } }`):
|
||||
|
||||
| Ключ | Значение | Пример (JSON) |
|
||||
|------|----------|---------------|
|
||||
| `Format` / `EditFormat` / `ToolTip` | строка (мультиязычная) | `"Format": "ДФ=dd.MM.yyyy"` |
|
||||
| `ChoiceForm` | путь формы выбора | `"ChoiceForm": "Catalog.Товары.Form.ФормаВыбора"` |
|
||||
| `MinValue` / `MaxValue` | число или строка | `"MinValue": 0, "MaxValue": 100` |
|
||||
| `FillValue` | значение заполнения | `"FillValue": "EmptyRef"` · `true` · `10` · `{"nil": true}` |
|
||||
| `LinkByType` | `{dataPath, linkItem?}` | `"LinkByType": {"dataPath": "Вид", "linkItem": 0}` |
|
||||
| `ChoiceParameterLinks` | `[{name, dataPath, valueChange?}]` | `["Отбор.Организация=Организация"]` |
|
||||
| `ChoiceParameters` | `[{name, type?, value?}]` | `[{"name": "Отбор.ЭтоГруппа", "value": false}]` |
|
||||
|
||||
- `FillValue`: `"EmptyRef"` — пустая ссылка по типу реквизита; `{"emptyRef": true}` / `{"nil": true}` — явные маркеры.
|
||||
- `ChoiceParameters` value — булево/число/строка/ссылочный путь или массив; укажите `type` (напр.
|
||||
`EnumRef.СтавкиНДС`), чтобы задавать значения короткими именами (`"Оптовая"` вместо полного пути).
|
||||
- В путях данных (`LinkByType`/`ChoiceParameterLinks`) можно писать короткое имя реквизита вместо полного пути.
|
||||
@@ -0,0 +1,44 @@
|
||||
# Внешние источники данных
|
||||
|
||||
Точечные правки внутри уже созданного источника: поле в таблицу, таблица и функция в источник.
|
||||
Источник целиком собирает навык `meta-compile` — его повторный запуск заменяет файл источника,
|
||||
выдаёт новый uuid и оставляет сиротами таблицы, которых нет в описании.
|
||||
|
||||
## add-field — поле таблицы
|
||||
|
||||
Правится файл таблицы: `ExternalDataSources/<Источник>/Tables/<Таблица>.xml`.
|
||||
|
||||
Поле задаётся как обычный реквизит, плюс три своих ключа: `nameInDataSource` (умолчание — имя поля),
|
||||
`readOnly`, `allowNull`. Флаги строковой формы — `readonly`, `nullable`.
|
||||
|
||||
```json
|
||||
{ "add": { "fields": [
|
||||
"barcode: String(20) | nullable",
|
||||
{ "name": "cost", "type": "Number(15,2)", "nameInDataSource": "cost_net", "readOnly": true }
|
||||
] } }
|
||||
```
|
||||
|
||||
Типы поля: `Number`, `String`, `Date`, `Boolean`, `UUID`, `BinaryData` и ссылка на таблицу того же
|
||||
источника — `ExternalDataSourceTableRef.<Источник>.<Таблица>`. Составной тип платформа запрещает.
|
||||
|
||||
## add-tables / add-functions — в файле источника
|
||||
|
||||
Правится файл источника: `ExternalDataSources/<Источник>.xml`. Таблица — единственная операция
|
||||
навыка, создающая **файл**: `<Источник>/Tables/<Имя>.xml` плюс имя в `ChildObjects` источника.
|
||||
Синтаксис таблицы и функции тот же, что у навыка `meta-compile` (`reference/external-data-source.md` там же).
|
||||
|
||||
```json
|
||||
{ "add": {
|
||||
"tables": { "sales": { "keyFields": ["id"], "fields": ["id: Number(10,0)", "summa: Number(15,2)"] } },
|
||||
"functions": { "nextKey": "NEXT VALUE FOR public.seq_key" }
|
||||
} }
|
||||
```
|
||||
|
||||
При добавлении таблицы не поддержаны ключи `characteristics` и `default*Form` — навык отвергает их,
|
||||
а не проглатывает молча. Характеристики задаются при сборке источника навыком `meta-compile`,
|
||||
форму назначает навык `form-add`.
|
||||
|
||||
## Удаление
|
||||
|
||||
Таблицу удаляет навык `meta-remove`: `ExternalDataSource.<Источник>.Table.<Таблица>` — вместе с файлом
|
||||
и записью в `ChildObjects`. Весь источник — `ExternalDataSource.<Источник>`.
|
||||
@@ -0,0 +1,153 @@
|
||||
# JSON DSL — режим определений
|
||||
|
||||
Для сложных и комбинированных операций используйте JSON-файл вместо inline-режима.
|
||||
|
||||
```powershell
|
||||
python .codeassistant/skills/meta-edit/scripts/meta-edit.py -DefinitionFile "<json>" -ObjectPath "<path>"
|
||||
```
|
||||
|
||||
## add — добавить элементы
|
||||
|
||||
```json
|
||||
{
|
||||
"add": {
|
||||
"attributes": [
|
||||
{ "name": "Комментарий", "type": "Строка(200)" },
|
||||
{ "name": "Сумма", "type": "Число(15,2)", "indexing": "Index" }
|
||||
],
|
||||
"tabularSections": [{
|
||||
"name": "Товары",
|
||||
"attrs": [
|
||||
{ "name": "Номенклатура", "type": "CatalogRef.Номенклатура" },
|
||||
{ "name": "Количество", "type": "Число(15,3)" }
|
||||
]
|
||||
}],
|
||||
"commands": ["Пересчитать"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Реквизиты можно задавать shorthand-строками: `"Сумма: Число(15,2) | req, index"`.
|
||||
|
||||
## remove — удалить элементы
|
||||
|
||||
```json
|
||||
{
|
||||
"remove": {
|
||||
"attributes": ["СтарыйРеквизит"],
|
||||
"tabularSections": ["УстаревшаяТЧ"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## modify — изменить существующие
|
||||
|
||||
```json
|
||||
{
|
||||
"modify": {
|
||||
"properties": {
|
||||
"CodeLength": 11,
|
||||
"Hierarchical": true,
|
||||
"Owners": ["Catalog.Контрагенты", "Catalog.Организации"],
|
||||
"RegisterRecords": ["AccumulationRegister.Продажи"],
|
||||
"InputByString": ["StandardAttribute.Description"]
|
||||
},
|
||||
"attributes": {
|
||||
"Комментарий": { "type": "Строка(500)" },
|
||||
"СтароеИмя": { "name": "НовоеИмя" }
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## modify — реквизиты внутри ТЧ
|
||||
|
||||
```json
|
||||
{
|
||||
"modify": {
|
||||
"tabularSections": {
|
||||
"Товары": {
|
||||
"add": ["СтавкаНДС: EnumRef.СтавкиНДС", "Скидка: Число(15,2)"],
|
||||
"remove": ["УстаревшийРекв"],
|
||||
"modify": {
|
||||
"СтароеИмя": { "name": "НовоеИмя", "type": "Строка(500)" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Комбинирование
|
||||
|
||||
Все три операции (`add`, `remove`, `modify`) можно указать в одном JSON-файле:
|
||||
|
||||
```json
|
||||
{
|
||||
"add": { "tabularSections": [{ "name": "НоваяТЧ", "attrs": ["Имя: Строка(100)"] }] },
|
||||
"modify": {
|
||||
"tabularSections": {
|
||||
"СуществующаяТЧ": {
|
||||
"add": ["НовыйРекв: Число(15,2)"],
|
||||
"remove": ["СтарыйРекв"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Позиционная вставка
|
||||
|
||||
```json
|
||||
{ "name": "Склад", "type": "CatalogRef.Склады", "after": "Организация" }
|
||||
```
|
||||
|
||||
## Синонимы ключей (case-insensitive)
|
||||
|
||||
**Операции:** `add`/`добавить`, `remove`/`удалить`, `modify`/`изменить`
|
||||
|
||||
| Каноническое | Синонимы |
|
||||
|-------------|----------|
|
||||
| attributes | реквизиты, attrs |
|
||||
| tabularSections | табличныеЧасти, тч, ts |
|
||||
| dimensions | измерения, dims |
|
||||
| resources | ресурсы, res |
|
||||
| enumValues | значения, values |
|
||||
| columns | графы, колонки |
|
||||
| forms | формы |
|
||||
| templates | макеты |
|
||||
| commands | команды |
|
||||
| properties | свойства |
|
||||
|
||||
Формы и макеты `meta-edit` не добавляет и не удаляет: кроме записи в `ChildObjects` у них есть собственные файлы.
|
||||
Форма — навыки `form-add` / `form-remove`, макет — `template-add` / `template-remove`. Команда файла не имеет — её `meta-edit` добавляет сам.
|
||||
|
||||
## Составные типы
|
||||
|
||||
Для полей с несколькими допустимыми типами — массив в `type`:
|
||||
|
||||
```json
|
||||
{ "name": "Значение", "type": ["Строка", "Число(15,2)", "Дата", "CatalogRef.Контрагенты"] }
|
||||
```
|
||||
|
||||
В inline-формате — через `+`:
|
||||
```
|
||||
"Значение: Строка + Число(15,2) + Дата + CatalogRef.Контрагенты"
|
||||
```
|
||||
|
||||
## Синонимы типов
|
||||
|
||||
`Строка(200)`, `Число(15,2)`, `Булево`, `Дата`, `ДатаВремя`, `ХранилищеЗначения`, `СправочникСсылка.XXX`, `ДокументСсылка.XXX`, `ПеречислениеСсылка.XXX`, `ОпределяемыйТип.XXX`.
|
||||
|
||||
## Поддерживаемые типы объектов
|
||||
|
||||
| Тип объекта | Допустимые add-типы |
|
||||
|-------------|-------------------|
|
||||
| Catalog, Document, ExchangePlan, ChartOf*, BP, Task, Report, DP | attributes, tabularSections, commands |
|
||||
| Enum | enumValues, commands |
|
||||
| *Register (4 типа) | dimensions, resources, attributes, commands |
|
||||
| DocumentJournal | columns, commands |
|
||||
| ExternalDataSource | tables, functions |
|
||||
| Table (таблица внешнего источника) | fields, commands |
|
||||
|
||||
У `Constant` добавлять нечего: единственный её ребёнок — форма, а форму добавляет навык `form-add`.
|
||||
@@ -0,0 +1,23 @@
|
||||
# Значения перечисления и команды
|
||||
|
||||
## add-enumValue / add-command
|
||||
|
||||
Просто имена (batch через `;;`):
|
||||
```powershell
|
||||
-Operation add-enumValue -Value "Значение1 ;; Значение2 ;; Значение3"
|
||||
-Operation add-command -Value "ОткрытьДосье"
|
||||
```
|
||||
|
||||
Команда создаётся вместе с заготовкой модуля `Commands/<Имя>/Ext/CommandModule.bsl`.
|
||||
|
||||
## Формы и макеты — другими навыками
|
||||
|
||||
Кроме записи в `ChildObjects` у формы и макета есть собственные файлы, поэтому `meta-edit` их
|
||||
не добавляет и не удаляет:
|
||||
|
||||
| Что | Добавить | Удалить |
|
||||
|-----|----------|---------|
|
||||
| Форма | навык `form-add` | навык `form-remove` |
|
||||
| Макет | навык `template-add` | навык `template-remove` |
|
||||
|
||||
Содержимое формы собирает навык `form-compile`.
|
||||
@@ -0,0 +1,20 @@
|
||||
# Предопределённые элементы
|
||||
|
||||
Добавить предопределённые элементы (Catalog, ChartOfCharacteristicTypes). Существующие элементы и их
|
||||
идентификаторы сохраняются, новые получают свежий id.
|
||||
|
||||
Inline — строка `(Код) Имя [Наименование]` (batch через `;;`; `[Наименование]` необязательно — иначе авто из имени):
|
||||
```powershell
|
||||
-Operation add-predefined -Value "(001) Основной ;; (002) Резервный [Резервный склад]"
|
||||
```
|
||||
|
||||
JSON — строки и/или объекты (для групп с вложенными):
|
||||
```json
|
||||
{ "add": { "predefined": [
|
||||
"(001) Основной",
|
||||
{ "name": "Группа", "isFolder": true, "childItems": ["(002) Вложенный"] }
|
||||
] } }
|
||||
```
|
||||
|
||||
Ключи объекта: `name`, `code`, `description`, `isFolder`, `childItems` (дерево). Тип кода (строковый/числовой)
|
||||
берётся из объекта автоматически.
|
||||
@@ -0,0 +1,72 @@
|
||||
# Свойства объекта и свойства-списки
|
||||
|
||||
Справочник операций для обычных свойств объекта и свойств-списков (Owners, RegisterRecords, BasedOn, InputByString).
|
||||
|
||||
## modify-property
|
||||
|
||||
Изменение свойств объекта по имени свойства 1С (PascalCase, как в конфигураторе). Формат: `Ключ=Значение`
|
||||
(batch через `;;`):
|
||||
```powershell
|
||||
-Operation modify-property -Value "CodeLength=11 ;; DescriptionLength=150"
|
||||
-Operation modify-property -Value "Hierarchical=true"
|
||||
```
|
||||
|
||||
Свойство можно задать, даже если оно ещё не выставлено у объекта (например `FullTextSearch`, `DataHistory`).
|
||||
Допустимы имена свойств соответствующего типа объекта.
|
||||
|
||||
### Type — тип значения (Константа, ПВХ)
|
||||
|
||||
`Type=...` перестраивает дескриптор типа значения. Значение — тип 1С в том же синтаксисе,
|
||||
что у реквизитов: составной через `+`, с квалификаторами и ссылочными типами:
|
||||
```powershell
|
||||
-Operation modify-property -Value "Type=String(100) + Number(15,2) + CatalogRef.Номенклатура"
|
||||
```
|
||||
Структурные свойства (со вложенными узлами) через `Ключ=Значение` не задаются — исключение только `Type`.
|
||||
|
||||
## Свойства-списки
|
||||
|
||||
Свойства, значение которых — список ссылок. Управляются через inline `add-*` / `remove-*` / `set-*` и через JSON `modify.properties`.
|
||||
|
||||
| Свойство | Объекты | Inline-значение |
|
||||
|----------|---------|-----------------|
|
||||
| Owners | Catalog, ChartOfCharacteristicTypes | `Catalog.XXX` |
|
||||
| RegisterRecords | Document | `AccumulationRegister.XXX` |
|
||||
| BasedOn | Document, Catalog, BP, Task | `Document.XXX` |
|
||||
| InputByString | Catalog, ChartOf*, Task | `StandardAttribute.Description` |
|
||||
| DataLockFields | Catalog, Document, регистры и др. | `Организация` (короткое имя реквизита → полный путь) |
|
||||
| RegisteredDocuments | DocumentJournal | `Document.XXX` |
|
||||
|
||||
### add-owner / add-registerRecord / add-basedOn / add-registeredDocument
|
||||
|
||||
Полное имя метаданных `MetaType.Name`:
|
||||
```powershell
|
||||
-Operation add-owner -Value "Catalog.Контрагенты ;; Catalog.Организации"
|
||||
-Operation add-registerRecord -Value "AccumulationRegister.ОстаткиТоваров"
|
||||
-Operation add-basedOn -Value "Document.ЗаказКлиента"
|
||||
-Operation add-registeredDocument -Value "Document.РасходныйОрдер"
|
||||
```
|
||||
|
||||
### add-inputByString / add-dataLockField
|
||||
|
||||
Пути полей (короткое имя реквизита разворачивается в полный путь автоматически):
|
||||
```powershell
|
||||
-Operation add-inputByString -Value "StandardAttribute.Description ;; StandardAttribute.Code"
|
||||
-Operation add-dataLockField -Value "Организация ;; Контрагент"
|
||||
```
|
||||
|
||||
### remove-owner / remove-registerRecord / remove-basedOn / remove-inputByString / remove-dataLockField / remove-registeredDocument
|
||||
|
||||
```powershell
|
||||
-Operation remove-owner -Value "Catalog.Контрагенты"
|
||||
-Operation remove-inputByString -Value "Catalog.МойСпр.StandardAttribute.Code"
|
||||
-Operation remove-dataLockField -Value "Организация"
|
||||
```
|
||||
|
||||
### set-owners / set-registerRecords / set-basedOn / set-inputByString / set-dataLockFields / set-registeredDocuments
|
||||
|
||||
Заменяют **весь список** (в отличие от add/remove):
|
||||
```powershell
|
||||
-Operation set-owners -Value "Catalog.Организации ;; Catalog.Контрагенты"
|
||||
-Operation set-registerRecords -Value "AccumulationRegister.Продажи ;; AccumulationRegister.ОстаткиТоваров"
|
||||
-Operation set-inputByString -Value "StandardAttribute.Description ;; StandardAttribute.Code"
|
||||
```
|
||||
@@ -0,0 +1,56 @@
|
||||
# Табличные части
|
||||
|
||||
Операции над табличной частью и её реквизитами. Общие правила shorthand-формата, флагов, batch и
|
||||
позиционной вставки — в `attributes.md`.
|
||||
|
||||
## add-ts
|
||||
|
||||
Формат: `ИмяТЧ: Реквизит1: Тип1, Реквизит2: Тип2, ...`
|
||||
|
||||
```powershell
|
||||
-Operation add-ts -Value "Товары: Ном: CatalogRef.Ном | req, Кол: Число(15,3), Цена: Число(15,2), Сумма: Число(15,2)"
|
||||
```
|
||||
|
||||
## add-ts-attribute / remove-ts-attribute / modify-ts-attribute
|
||||
|
||||
Операции над реквизитами **внутри существующей ТЧ**. Формат: `ИмяТЧ.ОпределениеРеквизита` (dot-нотация).
|
||||
|
||||
```powershell
|
||||
# Добавить реквизит в ТЧ
|
||||
-Operation add-ts-attribute -Value "Товары.СтавкаНДС: EnumRef.СтавкиНДС"
|
||||
-Operation add-ts-attribute -Value "Товары.Скидка: Число(15,2) ;; Товары.Бонус: Число(15,2)"
|
||||
|
||||
# Позиционная вставка в ТЧ
|
||||
-Operation add-ts-attribute -Value "Товары.Скидка: Число(15,2) >> after Цена"
|
||||
|
||||
# Удалить реквизит из ТЧ
|
||||
-Operation remove-ts-attribute -Value "Товары.УстаревшийРекв"
|
||||
-Operation remove-ts-attribute -Value "Товары.Рекв1 ;; Товары.Рекв2"
|
||||
|
||||
# Изменить реквизит в ТЧ (rename, type change и т.д.)
|
||||
-Operation modify-ts-attribute -Value "Товары.СтароеИмя: name=НовоеИмя, type=Строка(500)"
|
||||
```
|
||||
|
||||
Batch через `;;` — можно указать разные ТЧ: `"Товары.А: Строка(50) ;; Услуги.Б: Число(10)"`.
|
||||
|
||||
Составной тип реквизита ТЧ:
|
||||
```powershell
|
||||
-Operation modify-ts-attribute -Value "Данные.Значение: type=Строка + Число(15,2) + Дата"
|
||||
```
|
||||
|
||||
## modify-ts
|
||||
|
||||
Изменение свойств **самой табличной части** (Synonym, FillChecking, Use и др.):
|
||||
|
||||
```powershell
|
||||
-Operation modify-ts -Value "Товары: synonym=Товарный состав"
|
||||
-Operation modify-ts -Value "Товары: fillChecking=ShowError"
|
||||
```
|
||||
|
||||
Формат аналогичен `modify-attribute`: `ИмяТЧ: ключ=значение, ключ=значение`.
|
||||
|
||||
## remove-ts
|
||||
|
||||
```powershell
|
||||
-Operation remove-ts -Value "УстаревшаяТЧ"
|
||||
```
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user