diff --git a/.claude/skills/meta-compile/scripts/meta-compile.ps1 b/.claude/skills/meta-compile/scripts/meta-compile.ps1
index ca8f5ac0..943716e1 100644
--- a/.claude/skills/meta-compile/scripts/meta-compile.ps1
+++ b/.claude/skills/meta-compile/scripts/meta-compile.ps1
@@ -577,7 +577,7 @@ function Emit-TabularStandardAttributes {
function Emit-Attribute {
param([string]$indent, $parsed, [string]$context)
- # $context: "catalog", "document", "tabular", "register"
+ # $context: "catalog", "document", "object", "processor", "tabular", "processor-tabular", "register"
$uuid = New-Guid-String
X "$indent"
X "$indent`t"
@@ -607,13 +607,13 @@ function Emit-Attribute {
X "$indent`t`t"
X "$indent`t`t"
- # FillFromFillingValue — not for tabular section attributes
- if ($context -ne "tabular") {
+ # FillFromFillingValue — not for tabular/processor (non-stored objects don't have these)
+ if ($context -notin @("tabular", "processor")) {
X "$indent`t`tfalse"
}
- # FillValue — not for tabular section attributes
- if ($context -ne "tabular") {
+ # FillValue — not for tabular/processor
+ if ($context -notin @("tabular", "processor")) {
Emit-FillValue "$indent`t`t" $typeStr
}
@@ -632,20 +632,22 @@ function Emit-Attribute {
X "$indent`t`t"
X "$indent`t`tAuto"
- # Use — only for catalog/document top-level attributes
- if ($context -eq "catalog" -or $context -eq "document") {
+ # Use — only for catalog top-level attributes
+ if ($context -eq "catalog") {
X "$indent`t`t"
}
- # Indexing
- $indexing = "DontIndex"
- if ($parsed.flags -contains "index") { $indexing = "Index" }
- if ($parsed.flags -contains "indexadditional") { $indexing = "IndexWithAdditionalOrder" }
- if ($parsed.indexing) { $indexing = $parsed.indexing }
- X "$indent`t`t$indexing"
+ # Indexing/FullTextSearch/DataHistory — not for non-stored objects (processor, processor-tabular)
+ if ($context -notin @("processor", "processor-tabular")) {
+ $indexing = "DontIndex"
+ if ($parsed.flags -contains "index") { $indexing = "Index" }
+ if ($parsed.flags -contains "indexadditional") { $indexing = "IndexWithAdditionalOrder" }
+ if ($parsed.indexing) { $indexing = $parsed.indexing }
+ X "$indent`t`t$indexing"
- X "$indent`t`tUse"
- X "$indent`t`tUse"
+ X "$indent`t`tUse"
+ X "$indent`t`tUse"
+ }
X "$indent`t"
X "$indent"
@@ -688,10 +690,11 @@ function Emit-TabularSection {
}
X "$indent`t"
+ $tsContext = if ($objectType -in @("DataProcessor","Report")) { "processor-tabular" } else { "tabular" }
X "$indent`t"
foreach ($col in $columns) {
$parsed = Parse-AttributeShorthand $col
- Emit-Attribute "$indent`t`t" $parsed "tabular"
+ Emit-Attribute "$indent`t`t" $parsed $tsContext
}
X "$indent`t"
@@ -2447,6 +2450,7 @@ if ($objType -in $typesWithAttrTS) {
$context = switch ($objType) {
"Catalog" { "catalog" }
"Document" { "document" }
+ { $_ -in @("DataProcessor","Report") } { "processor" }
default { "object" }
}
foreach ($a in $attrs) {
diff --git a/.claude/skills/meta-edit/scripts/meta-edit.ps1 b/.claude/skills/meta-edit/scripts/meta-edit.ps1
index 39e6525c..a41de7c2 100644
--- a/.claude/skills/meta-edit/scripts/meta-edit.ps1
+++ b/.claude/skills/meta-edit/scripts/meta-edit.ps1
@@ -660,6 +660,7 @@ function Get-AttributeContext {
"Catalog" { return "catalog" }
"Document" { return "document" }
{ $_ -in @("InformationRegister","AccumulationRegister","AccountingRegister","CalculationRegister") } { return "register" }
+ { $_ -in @("DataProcessor","Report","ExternalDataProcessor","ExternalReport") } { return "processor" }
default { return "object" }
}
}
@@ -698,8 +699,8 @@ function Build-AttributeFragment {
$sb.AppendLine("$indent`t`t") | Out-Null
$sb.AppendLine("$indent`t`t") | Out-Null
- # FillFromFillingValue — for catalog/document/object contexts
- if ($context -ne "register") {
+ # FillFromFillingValue/FillValue — not for register, tabular (config TS), or processor (non-stored top-level)
+ if ($context -notin @("register", "tabular", "processor")) {
$sb.AppendLine("$indent`t`tfalse") | Out-Null
$sb.AppendLine($(Build-FillValueXml "$indent`t`t" $typeStr)) | Out-Null
}
@@ -719,20 +720,22 @@ function Build-AttributeFragment {
$sb.AppendLine("$indent`t`t") | Out-Null
$sb.AppendLine("$indent`t`tAuto") | Out-Null
- # Use — catalog/document only
- if ($context -eq "catalog" -or $context -eq "document") {
+ # Use — catalog only
+ if ($context -eq "catalog") {
$sb.AppendLine("$indent`t`t") | Out-Null
}
- # Indexing
- $indexing = "DontIndex"
- if ($parsed.flags -contains "index") { $indexing = "Index" }
- if ($parsed.flags -contains "indexadditional") { $indexing = "IndexWithAdditionalOrder" }
- if ($parsed.indexing) { $indexing = $parsed.indexing }
- $sb.AppendLine("$indent`t`t$indexing") | Out-Null
+ # Indexing/FullTextSearch/DataHistory — not for non-stored objects (processor, processor-tabular)
+ if ($context -notin @("processor", "processor-tabular")) {
+ $indexing = "DontIndex"
+ if ($parsed.flags -contains "index") { $indexing = "Index" }
+ if ($parsed.flags -contains "indexadditional") { $indexing = "IndexWithAdditionalOrder" }
+ if ($parsed.indexing) { $indexing = $parsed.indexing }
+ $sb.AppendLine("$indent`t`t$indexing") | Out-Null
- $sb.AppendLine("$indent`t`tUse") | Out-Null
- $sb.AppendLine("$indent`t`tUse") | Out-Null
+ $sb.AppendLine("$indent`t`tUse") | Out-Null
+ $sb.AppendLine("$indent`t`tUse") | Out-Null
+ }
$sb.AppendLine("$indent`t") | Out-Null
$sb.Append("$indent") | Out-Null
@@ -804,8 +807,8 @@ function Build-TabularSectionFragment {
$sb.AppendLine("$indent`t`t`t") | Out-Null
$sb.AppendLine("$indent`t`t") | Out-Null
- # Use — catalog/document only
- if ($objType -in @("Catalog","Document")) {
+ # Use — catalog only
+ if ($objType -eq "Catalog") {
$sb.AppendLine("$indent`t`t") | Out-Null
}
@@ -817,11 +820,12 @@ function Build-TabularSectionFragment {
elseif ($tsDef.attributes) { $columns = @($tsDef.attributes) }
elseif ($tsDef.реквизиты) { $columns = @($tsDef.реквизиты) }
+ $tsAttrContext = if ($script:objType -in @("DataProcessor","Report","ExternalDataProcessor","ExternalReport")) { "processor-tabular" } else { "tabular" }
if ($columns.Count -gt 0) {
$sb.AppendLine("$indent`t") | Out-Null
foreach ($col in $columns) {
$colParsed = Parse-AttributeShorthand $col
- $sb.AppendLine($(Build-AttributeFragment $colParsed "tabular" "$indent`t`t")) | Out-Null
+ $sb.AppendLine($(Build-AttributeFragment $colParsed $tsAttrContext "$indent`t`t")) | Out-Null
}
$sb.AppendLine("$indent`t") | Out-Null
} else {
@@ -1816,7 +1820,8 @@ function Modify-ChildElements($modifyDef, [string]$childType) {
continue
}
$tsAttrIndent = Get-ChildIndent $tsChildObjEl
- $fragmentXml = Build-AttributeFragment $parsed "tabular" $tsAttrIndent
+ $tsAttrContext = if ($script:objType -in @("DataProcessor","Report","ExternalDataProcessor","ExternalReport")) { "processor-tabular" } else { "tabular" }
+ $fragmentXml = Build-AttributeFragment $parsed $tsAttrContext $tsAttrIndent
$nodes = Import-Fragment $fragmentXml
$savedCO = $script:childObjectsEl
$script:childObjectsEl = $tsChildObjEl
diff --git a/docs/1c-config-objects-spec.md b/docs/1c-config-objects-spec.md
index cb33d19c..e23a44f5 100644
--- a/docs/1c-config-objects-spec.md
+++ b/docs/1c-config-objects-spec.md
@@ -716,9 +716,11 @@ Ext/ # Расширение конфигураци
|---|---|---|
| `Indexing` | enum | `DontIndex` \| `Index` \| `IndexWithAdditionalOrder` |
| `ChoiceFoldersAndItems` | enum | `Items` \| `Folders` \| `FoldersAndItems` |
-| `Use` | enum | `ForItem` \| `ForFolder` \| `ForFolderAndItem` (только для иерарх. справочников) |
+| `Use` | enum | `ForItem` \| `ForFolder` \| `ForFolderAndItem` (только для справочников) |
| `FillFromFillingValue` | boolean | Заполнять из значения по умолчанию |
+> **Различие хранимых и нехранимых объектов**: Свойства `Indexing`, `FullTextSearch`, `DataHistory`, `FillFromFillingValue`, `FillValue` присутствуют только у **хранимых** объектов (Catalog, Document, ExchangePlan, ChartOf*, BusinessProcess, Task). У объектов DataProcessor и Report (как в конфигурации, так и внешних EPF/ERF) эти свойства **отсутствуют**. Свойство `Use` есть только у справочников (Catalog).
+
### 6.2. Табличная часть (TabularSection)
```xml
@@ -749,7 +751,10 @@ Ext/ # Расширение конфигураци
+ но без FillFromFillingValue, FillValue, Use.
+ У нехранимых объектов (DataProcessor, Report) реквизиты ТЧ
+ содержат FillFromFillingValue и FillValue, но не содержат
+ Indexing, FullTextSearch, DataHistory -->
diff --git a/docs/1c-epf-spec.md b/docs/1c-epf-spec.md
index a36734f7..2bba27bd 100644
--- a/docs/1c-epf-spec.md
+++ b/docs/1c-epf-spec.md
@@ -314,7 +314,7 @@ xmlns="http://v8.1c.ru/8.3/xcf/logform"
```
-> **Важно**: Реквизиты табличных частей имеют 2 дополнительных свойства по сравнению с реквизитами объекта: `FillFromFillingValue` и `FillValue`. Они вставляются между `MaxValue` и `FillChecking`.
+> **Важно**: Реквизиты табличных частей имеют 2 дополнительных свойства по сравнению с реквизитами объекта: `FillFromFillingValue` и `FillValue`. Они вставляются между `MaxValue` и `FillChecking`. При этом свойства `Indexing`, `FullTextSearch`, `DataHistory` и `Use` **отсутствуют** как у реквизитов объекта, так и у реквизитов ТЧ обработок/отчётов (в отличие от хранимых объектов конфигурации).
## 4. Метаданные формы (`Forms/<Имя>.xml`)