mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-11 16:34:57 +03:00
feat(skd-compile): @autoDates — НачалоПериода/КонецПериода вместо ДатаНачала/ДатаОкончания
Канонический паттерн БСП в Титан/ЕРП-отчётах использует имена НачалоПериода/КонецПериода (~10:1 по частоте). Выражения &Период.ДатаНачала/&Период.ДатаОкончания сохранены — это обращение к внутренним полям StandardPeriod. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -119,7 +119,7 @@ Shorthand: `"Имя [Заголовок]: тип = Выражение #noField #
|
||||
Shorthand: `"Имя [Заголовок]: тип = значение @флаги"`. `[Заголовок]` опциональный — добавляет `<title>` (LocalStringType).
|
||||
|
||||
Флаги shorthand:
|
||||
- `@autoDates` — генерирует пару скрытых параметров `ДатаНачала`/`ДатаОкончания` с выражениями `&Имя.ДатаНачала`/`&Имя.ДатаОкончания`. Используется для StandardPeriod в БСП-отчётах: БСП превращает эту пару в два отдельных поля «Начало/Конец» в панели быстрых настроек.
|
||||
- `@autoDates` — генерирует пару параметров `НачалоПериода`/`КонецПериода` (тип Дата, `useRestriction=true`) с выражениями `&Имя.ДатаНачала`/`&Имя.ДатаОкончания`. Канонический паттерн БСП: эти параметры используются в тексте запроса как `&НачалоПериода`/`&КонецПериода`, а пользователь в быстрых настройках редактирует только `Имя` (StandardPeriod).
|
||||
- `@valueList` — `<valueListAllowed>true</valueListAllowed>` — разрешает передавать список значений
|
||||
- `@hidden` — скрытый параметр: `availableAsField=false` + исключается из `"dataParameters": "auto"`
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# skd-compile v1.15 — Compile 1C DCS from JSON
|
||||
# skd-compile v1.16 — Compile 1C DCS from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$DefinitionFile,
|
||||
@@ -1044,18 +1044,18 @@ function Emit-Parameters {
|
||||
# Track parameter for auto dataParameters
|
||||
$script:allParams += @{ name = $parsed.name; hidden = [bool]$parsed.hidden; type = "$($parsed.type)"; value = $parsed.value }
|
||||
|
||||
# @autoDates: auto-generate ДатаНачала and ДатаОкончания (canonical БСП pattern)
|
||||
# @autoDates: auto-generate НачалоПериода and КонецПериода (canonical БСП pattern)
|
||||
if ($parsed.autoDates) {
|
||||
$paramName = $parsed.name
|
||||
$beginParsed = @{
|
||||
name = "ДатаНачала"; title = "Начало периода"
|
||||
name = "НачалоПериода"; title = "Начало периода"
|
||||
type = "date"; value = "0001-01-01T00:00:00"
|
||||
useRestriction = $true
|
||||
expression = "&$paramName.ДатаНачала"
|
||||
}
|
||||
Emit-SingleParam -p $null -parsed $beginParsed
|
||||
$endParsed = @{
|
||||
name = "ДатаОкончания"; title = "Конец периода"
|
||||
name = "КонецПериода"; title = "Конец периода"
|
||||
type = "date"; value = "0001-01-01T00:00:00"
|
||||
useRestriction = $true
|
||||
expression = "&$paramName.ДатаОкончания"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# skd-compile v1.15 — Compile 1C DCS from JSON
|
||||
# skd-compile v1.16 — Compile 1C DCS from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import json
|
||||
@@ -916,11 +916,11 @@ def emit_parameters(lines, defn):
|
||||
'value': parsed.get('value'),
|
||||
})
|
||||
|
||||
# @autoDates: auto-generate ДатаНачала and ДатаОкончания (canonical БСП pattern)
|
||||
# @autoDates: auto-generate НачалоПериода and КонецПериода (canonical БСП pattern)
|
||||
if parsed.get('autoDates'):
|
||||
param_name = parsed['name']
|
||||
begin_parsed = {
|
||||
'name': '\u0414\u0430\u0442\u0430\u041d\u0430\u0447\u0430\u043b\u0430',
|
||||
'name': '\u041d\u0430\u0447\u0430\u043b\u043e\u041f\u0435\u0440\u0438\u043e\u0434\u0430',
|
||||
'title': '\u041d\u0430\u0447\u0430\u043b\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430',
|
||||
'type': 'date', 'value': '0001-01-01T00:00:00',
|
||||
'useRestriction': True,
|
||||
@@ -928,7 +928,7 @@ def emit_parameters(lines, defn):
|
||||
}
|
||||
emit_single_param(lines, None, begin_parsed)
|
||||
end_parsed = {
|
||||
'name': '\u0414\u0430\u0442\u0430\u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f',
|
||||
'name': '\u041a\u043e\u043d\u0435\u0446\u041f\u0435\u0440\u0438\u043e\u0434\u0430',
|
||||
'title': '\u041a\u043e\u043d\u0435\u0446 \u043f\u0435\u0440\u0438\u043e\u0434\u0430',
|
||||
'type': 'date', 'value': '0001-01-01T00:00:00',
|
||||
'useRestriction': True,
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
</value>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаНачала</name>
|
||||
<name>НачалоПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -53,7 +53,7 @@
|
||||
<expression>&Период.ДатаНачала</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаОкончания</name>
|
||||
<name>КонецПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
</value>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаНачала</name>
|
||||
<name>НачалоПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -88,7 +88,7 @@
|
||||
<expression>&Период.ДатаНачала</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаОкончания</name>
|
||||
<name>КонецПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
</value>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаНачала</name>
|
||||
<name>НачалоПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -83,7 +83,7 @@
|
||||
<expression>&Период.ДатаНачала</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаОкончания</name>
|
||||
<name>КонецПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
</value>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаНачала</name>
|
||||
<name>НачалоПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -80,7 +80,7 @@
|
||||
<expression>&Период.ДатаНачала</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаОкончания</name>
|
||||
<name>КонецПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
|
||||
Reference in New Issue
Block a user