mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-30 22:15:54 +03:00
fix(form-validate): ConstantsSet и ReportObject без имени — допустимые типы
Проверка 12 предупреждала «unrecognized cfg prefix» на cfg:ConstantsSet и cfg:ReportObject — и на эталонных формах Конфигуратора тоже. В формах корпуса (УТ, ERP, БП, УНФ) голых cfg-типов ровно три: DynamicList 9161, ConstantsSet 207, ReportObject 20; PS-мастер знал только первый. Теперь допустимы все три, иное без имени объекта (вероятная опечатка) по-прежнему предупреждается. Py-порт принимал любой известный префикс без имени (голый cfg:CatalogRef — молча); выровнен по мастеру. Оба порта, v1.22. Кейсы bare-cfg-types и bare-cfg-type-typo. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d070d65cb2
commit
c9a551b815
@@ -1,4 +1,4 @@
|
||||
# form-validate v1.21 — Validate 1C managed form
|
||||
# form-validate v1.22 — Validate 1C managed form
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
[CmdletBinding(PositionalBinding=$false)]
|
||||
param(
|
||||
@@ -944,7 +944,9 @@ if (-not $stopped) {
|
||||
if ($tv -in $validClosedTypes) { continue }
|
||||
if ($tv -match '^cfg:(.+)$') {
|
||||
$cfgVal = $Matches[1]
|
||||
if ($cfgVal -eq "DynamicList") { continue }
|
||||
# Тип без имени объекта: динамический список, набор констант, любой отчёт — ровно те три,
|
||||
# что встречаются в формах корпуса (УТ, ERP, БП, УНФ); иное без имени — вероятная опечатка
|
||||
if ($cfgVal -cin @("DynamicList", "ConstantsSet", "ReportObject")) { continue }
|
||||
if ($cfgVal -match '^([^.]+)\.') {
|
||||
$pfx = $Matches[1]
|
||||
if ($pfx -in $validCfgPrefixes) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# form-validate v1.21 — Validate 1C managed form
|
||||
# form-validate v1.22 — Validate 1C managed form
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -900,7 +900,9 @@ def main():
|
||||
elif tv.startswith("cfg:"):
|
||||
suffix = tv[4:] # after "cfg:"
|
||||
prefix = suffix.split(".")[0]
|
||||
if prefix in VALID_CFG_PREFIXES or suffix == "DynamicList":
|
||||
# Тип без имени объекта: динамический список, набор констант, любой отчёт — ровно те три,
|
||||
# что встречаются в формах корпуса (УТ, ERP, БП, УНФ); иное без имени — вероятная опечатка
|
||||
if ("." in suffix and prefix in VALID_CFG_PREFIXES) or suffix in ("DynamicList", "ConstantsSet", "ReportObject"):
|
||||
# ExternalDataProcessorObject/ExternalReportObject valid only in EPF/ERF context
|
||||
if is_config_context and prefix in ('ExternalDataProcessorObject', 'ExternalReportObject'):
|
||||
report_error(f'12. Type "{tv}": External* type in configuration context (use DataProcessorObject/ReportObject instead)')
|
||||
|
||||
Reference in New Issue
Block a user