mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-20 01:20:59 +03:00
162 lines
8.8 KiB
Markdown
162 lines
8.8 KiB
Markdown
# Inline-операции над дочерними элементами
|
||
|
||
Подробный справочник операций `add-*` / `remove-*` / `modify-*` для дочерних элементов объекта метаданных.
|
||
|
||
## Общие правила
|
||
|
||
**Batch-режим** — несколько элементов через `;;`:
|
||
```
|
||
-Value "Комментарий: Строка(200) ;; Сумма: Число(15,2) | index"
|
||
```
|
||
|
||
**Shorthand-формат** реквизитов: `ИмяРеквизита: Тип | флаги`
|
||
|
||
Флаги: `req` — обязательное заполнение; `index` — индексировать; `master` — ведущее измерение (только dimensions); `mainFilter` — основной отбор (только dimensions).
|
||
|
||
**Позиционная вставка**: `>> after ИмяЭлемента` или `<< before ИмяЭлемента`:
|
||
```powershell
|
||
-Operation add-attribute -Value "Склад: CatalogRef.Склады >> after Организация"
|
||
```
|
||
|
||
## Составные типы
|
||
|
||
Для реквизитов с несколькими допустимыми типами — разделитель `+`:
|
||
```powershell
|
||
-Operation add-attribute -Value "Значение: Строка + Число(15,2) + Дата + CatalogRef.Контрагенты"
|
||
-Operation add-attribute -Value "Значение: Строка + Число(15,2) | req"
|
||
-Operation modify-ts-attribute -Value "Данные.Значение: type=Строка + Число(15,2) + Дата"
|
||
```
|
||
|
||
В 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.ТипыДокументов"
|
||
```
|
||
|
||
## 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)"`.
|
||
|
||
## modify-ts
|
||
|
||
Изменение свойств **самой табличной части** (Synonym, FillChecking, Use и др.):
|
||
|
||
```powershell
|
||
-Operation modify-ts -Value "Товары: synonym=Товарный состав"
|
||
-Operation modify-ts -Value "Товары: fillChecking=ShowError"
|
||
```
|
||
|
||
Формат аналогичен `modify-attribute`: `ИмяТЧ: ключ=значение, ключ=значение`.
|
||
|
||
## add-predefined
|
||
|
||
Добавить предопределённые элементы (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` (дерево). Тип кода (строковый/числовой)
|
||
берётся из объекта автоматически.
|
||
|
||
## add-enumValue / add-form / add-template / add-command
|
||
|
||
Просто имена (batch через `;;`):
|
||
```powershell
|
||
-Operation add-enumValue -Value "Значение1 ;; Значение2 ;; Значение3"
|
||
-Operation add-form -Value "ФормаЭлемента ;; ФормаСписка"
|
||
-Operation add-template -Value "ПечатнаяФорма"
|
||
-Operation add-command -Value "Команда1"
|
||
```
|
||
|
||
## remove-*
|
||
|
||
Имя элемента (или несколько через `;;`):
|
||
```powershell
|
||
-Operation remove-attribute -Value "СтарыйРеквизит ;; ЕщёОдин"
|
||
-Operation remove-ts -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`) можно писать короткое имя реквизита вместо полного пути.
|