Files
cc-1c-skills/.codeassistant/skills/meta-edit/child-operations.md
T
2026-07-17 17:43:12 +00:00

8.8 KiB
Raw Blame History

Inline-операции над дочерними элементами

Подробный справочник операций add-* / remove-* / modify-* для дочерних элементов объекта метаданных.

Общие правила

Batch-режим — несколько элементов через ;;:

-Value "Комментарий: Строка(200) ;; Сумма: Число(15,2) | index"

Shorthand-формат реквизитов: ИмяРеквизита: Тип | флаги

Флаги: req — обязательное заполнение; index — индексировать; master — ведущее измерение (только dimensions); mainFilter — основной отбор (только dimensions).

Позиционная вставка: >> after ИмяЭлемента или << before ИмяЭлемента:

-Operation add-attribute -Value "Склад: CatalogRef.Склады >> after Организация"

Составные типы

Для реквизитов с несколькими допустимыми типами — разделитель +:

-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:

{ "name": "Значение", "type": ["Строка", "Число(15,2)", "Дата", "CatalogRef.Контрагенты"] }

add-attribute / add-dimension / add-resource / add-column

-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, ...

-Operation add-ts -Value "Товары: Ном: CatalogRef.Ном | req, Кол: Число(15,3), Цена: Число(15,2), Сумма: Число(15,2)"

add-ts-attribute / remove-ts-attribute / modify-ts-attribute

Операции над реквизитами внутри существующей ТЧ. Формат: ИмяТЧ.ОпределениеРеквизита (dot-нотация).

# Добавить реквизит в ТЧ
-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 и др.):

-Operation modify-ts -Value "Товары: synonym=Товарный состав"
-Operation modify-ts -Value "Товары: fillChecking=ShowError"

Формат аналогичен modify-attribute: ИмяТЧ: ключ=значение, ключ=значение.

add-predefined

Добавить предопределённые элементы (Catalog, ChartOfCharacteristicTypes). Существующие элементы и их идентификаторы сохраняются, новые получают свежий id.

Inline — строка (Код) Имя [Наименование] (batch через ;;; [Наименование] необязательно — иначе авто из имени):

-Operation add-predefined -Value "(001) Основной ;; (002) Резервный [Резервный склад]"

JSON — строки и/или объекты (для групп с вложенными):

{ "add": { "predefined": [
  "(001) Основной",
  { "name": "Группа", "isFolder": true, "childItems": ["(002) Вложенный"] }
] } }

Ключи объекта: name, code, description, isFolder, childItems (дерево). Тип кода (строковый/числовой) берётся из объекта автоматически.

add-enumValue / add-form / add-template / add-command

Просто имена (batch через ;;):

-Operation add-enumValue -Value "Значение1 ;; Значение2 ;; Значение3"
-Operation add-form -Value "ФормаЭлемента ;; ФормаСписка"
-Operation add-template -Value "ПечатнаяФорма"
-Operation add-command -Value "Команда1"

remove-*

Имя элемента (или несколько через ;;):

-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 и др. Свойство можно задать, даже если у реквизита оно ещё не выставлено. Опечатка в имени свойства → ошибка (правка не теряется молча).

-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) можно писать короткое имя реквизита вместо полного пути.