mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-04 18:50:23 +03:00
fix(meta-compile): LineNumberLength только объектам с хранением в БД
Раундтрип по обработкам и отчётам УТ (7568 объектов) показал 265 лишних строк: мы эмитили LineNumberLength каждой табличной части, а платформа пишет его только объектам, у которых есть таблица в базе. Проверено на двух конфигурациях независимо: у обработок 0 тегов из 235+257 табличных частей, у отчётов 0 из 106+8; у справочников, документов, ПВХ, планов обмена и бизнес-процессов тег стоит поголовно. Свойство задаёт разрядность физического номера строки в таблице БД — у обработок и отчётов таблиц нет, хранить нечего. Исключены DataProcessor и Report, а также ExternalDataProcessor и ExternalReport: внешние обработки той же природы, и при сборке EPF на формате 2.20 мы бы писали тег, которого платформа не пишет. Кейс format-220-props дополнен обработкой с табличной частью: у неё тега нет, у справочника в той же конфигурации LineNumberLength=9. Проверка: УТ tier-2 7543/7543 без расхождений (было 71 diff), сюита 76/76 на обоих портах, 1С-сертификация на 8.3.27 пройдена. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4b6c3faa1d
commit
dac265995e
@@ -2094,7 +2094,10 @@ function Emit-TabularSection {
|
||||
}
|
||||
# Формат 2.20 (8.3.27): длина номера строки ТЧ (5..9 → до 999 999 999 строк вместо 99 999).
|
||||
# Последним в Properties. Дефолт платформа берёт из режима совместимости на момент создания ТЧ.
|
||||
if ($script:isFormat220) {
|
||||
# ТОЛЬКО у объектов с хранением в БД: обработкам и отчётам платформа тег не пишет вовсе
|
||||
# (проверено на двух конфигурациях: 0 из 235+257 ТЧ обработок и 0 из 106+8 ТЧ отчётов).
|
||||
# Свойство задаёт разрядность физического номера строки в таблице — у обработок таблицы нет.
|
||||
if ($script:isFormat220 -and $objectType -notin @("DataProcessor", "Report", "ExternalDataProcessor", "ExternalReport")) {
|
||||
$lnl = if ($null -ne $tsLineNumberLength -and "$tsLineNumberLength" -ne '') { [int]$tsLineNumberLength } else { $script:lineNumberLengthDefault }
|
||||
X "$indent`t`t<LineNumberLength>$lnl</LineNumberLength>"
|
||||
}
|
||||
|
||||
@@ -2151,7 +2151,10 @@ def emit_tabular_section(indent, ts_name, columns, object_type, object_name, ts_
|
||||
X(f'{indent}\t\t<Use>{ts_use if ts_use else "ForItem"}</Use>')
|
||||
# Формат 2.20 (8.3.27): длина номера строки ТЧ (5..9 → до 999 999 999 строк вместо 99 999).
|
||||
# Последним в Properties. Дефолт платформа берёт из режима совместимости на момент создания ТЧ.
|
||||
if is_format_220:
|
||||
# ТОЛЬКО у объектов с хранением в БД: обработкам и отчётам платформа тег не пишет вовсе
|
||||
# (проверено на двух конфигурациях: 0 из 235+257 ТЧ обработок и 0 из 106+8 ТЧ отчётов).
|
||||
# Свойство задаёт разрядность физического номера строки в таблице — у обработок таблицы нет.
|
||||
if is_format_220 and object_type not in ('DataProcessor', 'Report', 'ExternalDataProcessor', 'ExternalReport'):
|
||||
lnl = int(ts_line_number_length) if ts_line_number_length not in (None, '') else line_number_length_default
|
||||
X(f'{indent}\t\t<LineNumberLength>{lnl}</LineNumberLength>')
|
||||
X(f'{indent}\t</Properties>')
|
||||
|
||||
Reference in New Issue
Block a user