fix(mxl-compile): не эмитить fillType=Text, UUID для идентификатора раскладки

Две правки по корпусу и по 1С-сертификации.

fillType=Text платформа практически не пишет: на выборке корпуса 344 981 текстовая
ячейка из 348 023 (99,1%) ссылается на формат БЕЗ fillType — наличие <tl> и так
означает текст. Parameter и Template платформа пишет, их оставляем. Правило то же,
что и везде: эмитим то, что эмитит платформа, а не то, что верно в рантайме.

Идентификатор колоночной раскладки платформа хранит как UUID и другой не принимает —
макет с <id>узкая</id> она отвергала целиком. Имя, похожее на UUID (то есть пришедшее
декомпиляцией), проходит насквозь, иначе поехал бы раундтрип; читаемое имя автора
превращается в UUID ДЕТЕРМИНИРОВАННО, из хэша имени, чтобы повторная компиляция
давала тот же файл. Оба порта дают одинаковый хэш.

Дефект с идентификатором нашла 1С-сертификация: ни юнит-кейсы, ни раундтрип по
корпусу его не видели — там идентификаторы приходят из исходных макетов и уже
являются UUID.

Дрейф 33 снэпшотов разобран построчно, посторонних строк нет: 116 сменившихся
индексов формата, 49 удалённых fillType, 43 перестановки свойств внутри палитры,
16 границ <format> (палитра стала короче).

Проверено: тесты 53/53 на обоих рантаймах, verify-snapshots 23/23.

Замечание на будущее: на корпусе эта правка снимает лишь 170 расхождений из 64 865
в категории формата ячейки. Основная причина другая — платформа даёт неоформленной
ячейке ссылку на формат по умолчанию, а компилятор заводит ей собственный формат
с <font>. Это отдельный заход, он сдвинет снэпшоты повторно.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-10 19:58:35 +03:00
co-authored by Claude Opus 5
parent 8302b17814
commit cbe7abdcbb
36 changed files with 119 additions and 189 deletions
@@ -19,7 +19,10 @@
"files": ["Template.xml"],
"fileContains": {
"file": "Template.xml",
"text": ["<id>узкая</id>", "<columnsID>узкая</columnsID>"]
"text": [
"<id>12320174-2b07-7806-1f7f-ec3834007fdb</id>",
"<columnsID>12320174-2b07-7806-1f7f-ec3834007fdb</columnsID>"
]
}
}
}
@@ -31,7 +31,7 @@
</columnsItem>
</columns>
<columns>
<id>узкая</id>
<id>12320174-2b07-7806-1f7f-ec3834007fdb</id>
<size>3</size>
<columnsItem>
<index>0</index>
@@ -96,7 +96,7 @@
<rowsItem>
<index>1</index>
<row>
<columnsID>узкая</columnsID>
<columnsID>12320174-2b07-7806-1f7f-ec3834007fdb</columnsID>
<c>
<i>0</i>
<c>
@@ -156,7 +156,6 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -54,7 +54,7 @@
<c>
<i>0</i>
<c>
<f>6</f>
<f>5</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -66,7 +66,7 @@
<c>
<i>1</i>
<c>
<f>6</f>
<f>5</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -78,7 +78,7 @@
<c>
<i>2</i>
<c>
<f>6</f>
<f>5</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -90,7 +90,7 @@
<c>
<i>3</i>
<c>
<f>6</f>
<f>5</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -102,7 +102,7 @@
<c>
<i>4</i>
<c>
<f>6</f>
<f>5</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -114,7 +114,7 @@
<c>
<i>5</i>
<c>
<f>6</f>
<f>5</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -162,12 +162,4 @@
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
<topBorder>0</topBorder>
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<fillType>Text</fillType>
</format>
</document>
@@ -107,7 +107,6 @@
<format>
<font>1</font>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -63,10 +63,8 @@
</format>
<format>
<font>2</font>
<fillType>Text</fillType>
</format>
<format>
<font>1</font>
<fillType>Text</fillType>
</format>
</document>
@@ -18,7 +18,7 @@
<c>
<i>0</i>
<c>
<f>3</f>
<f>2</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -30,7 +30,7 @@
<c>
<i>1</i>
<c>
<f>3</f>
<f>2</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -42,7 +42,7 @@
<c>
<i>2</i>
<c>
<f>3</f>
<f>2</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -54,7 +54,7 @@
<c>
<i>3</i>
<c>
<f>3</f>
<f>2</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -71,28 +71,28 @@
<c>
<i>0</i>
<c>
<f>5</f>
<f>4</f>
<parameter>Дата</parameter>
</c>
</c>
<c>
<i>1</i>
<c>
<f>6</f>
<f>5</f>
<parameter>Товар</parameter>
</c>
</c>
<c>
<i>2</i>
<c>
<f>7</f>
<f>6</f>
<parameter>Количество</parameter>
</c>
</c>
<c>
<i>3</i>
<c>
<f>7</f>
<f>6</f>
<parameter>Цена</parameter>
</c>
</c>
@@ -137,15 +137,6 @@
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
<topBorder>0</topBorder>
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
@@ -49,6 +49,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>
@@ -183,6 +183,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>
@@ -73,6 +73,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>
@@ -178,7 +178,6 @@
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -187,7 +186,6 @@
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -49,6 +49,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>
@@ -31,7 +31,7 @@
<c>
<i>0</i>
<c>
<f>5</f>
<f>4</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -43,7 +43,7 @@
<c>
<i>1</i>
<c>
<f>5</f>
<f>4</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -55,7 +55,7 @@
<c>
<i>2</i>
<c>
<f>5</f>
<f>4</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -67,7 +67,7 @@
<c>
<i>3</i>
<c>
<f>5</f>
<f>4</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -84,14 +84,14 @@
<c>
<i>0</i>
<c>
<f>6</f>
<f>5</f>
<parameter>НомерСтроки</parameter>
</c>
</c>
<c>
<i>1</i>
<c>
<f>6</f>
<f>5</f>
<parameter>Товар</parameter>
<detailParameter>Номенклатура</detailParameter>
</c>
@@ -99,14 +99,14 @@
<c>
<i>2</i>
<c>
<f>7</f>
<f>6</f>
<parameter>Количество</parameter>
</c>
</c>
<c>
<i>3</i>
<c>
<f>7</f>
<f>6</f>
<parameter>Сумма</parameter>
</c>
</c>
@@ -118,7 +118,7 @@
<c>
<i>2</i>
<c>
<f>8</f>
<f>7</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -130,7 +130,7 @@
<c>
<i>3</i>
<c>
<f>9</f>
<f>8</f>
<parameter>Всего</parameter>
</c>
</c>
@@ -209,14 +209,6 @@
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
<topBorder>0</topBorder>
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
@@ -238,7 +230,6 @@
<font>1</font>
<topBorder>0</topBorder>
<horizontalAlignment>Right</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>1</font>
@@ -148,7 +148,6 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -49,6 +49,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>
@@ -48,7 +48,7 @@
<c>
<i>0</i>
<c>
<f>4</f>
<f>3</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -60,7 +60,7 @@
<c>
<i>1</i>
<c>
<f>4</f>
<f>3</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -72,7 +72,7 @@
<c>
<i>2</i>
<c>
<f>4</f>
<f>3</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -84,7 +84,7 @@
<c>
<i>3</i>
<c>
<f>4</f>
<f>3</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -96,7 +96,7 @@
<c>
<i>4</i>
<c>
<f>4</f>
<f>3</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -113,35 +113,35 @@
<c>
<i>0</i>
<c>
<f>6</f>
<f>5</f>
<parameter>Номер</parameter>
</c>
</c>
<c>
<i>1</i>
<c>
<f>7</f>
<f>6</f>
<parameter>Описание</parameter>
</c>
</c>
<c>
<i>2</i>
<c>
<f>6</f>
<f>5</f>
<parameter>ЕдИзм</parameter>
</c>
</c>
<c>
<i>3</i>
<c>
<f>6</f>
<f>5</f>
<parameter>Количество</parameter>
</c>
</c>
<c>
<i>4</i>
<c>
<f>7</f>
<f>6</f>
<parameter>Сумма</parameter>
</c>
</c>
@@ -190,15 +190,6 @@
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
</format>
<format>
<font>1</font>
<leftBorder>0</leftBorder>
<topBorder>0</topBorder>
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
@@ -140,7 +140,6 @@
</format>
<format>
<font>1</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -561,7 +561,6 @@
</format>
<format>
<font>1</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -581,7 +580,6 @@
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -612,7 +610,6 @@
<format>
<font>1</font>
<horizontalAlignment>Right</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>1</font>
@@ -628,6 +625,5 @@
<format>
<font>3</font>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
</document>
@@ -152,7 +152,6 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -119,7 +119,6 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -132,6 +131,5 @@
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
</document>
@@ -73,6 +73,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>
@@ -60,7 +60,7 @@
<c>
<i>0</i>
<c>
<f>7</f>
<f>6</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -72,7 +72,7 @@
<c>
<i>1</i>
<c>
<f>7</f>
<f>6</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -84,7 +84,7 @@
<c>
<i>2</i>
<c>
<f>7</f>
<f>6</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -96,7 +96,7 @@
<c>
<i>3</i>
<c>
<f>7</f>
<f>6</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -108,7 +108,7 @@
<c>
<i>4</i>
<c>
<f>7</f>
<f>6</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -125,35 +125,35 @@
<c>
<i>0</i>
<c>
<f>9</f>
<f>8</f>
<parameter>НомерСтроки</parameter>
</c>
</c>
<c>
<i>1</i>
<c>
<f>10</f>
<f>9</f>
<parameter>Товар</parameter>
</c>
</c>
<c>
<i>2</i>
<c>
<f>11</f>
<f>10</f>
<parameter>Количество</parameter>
</c>
</c>
<c>
<i>3</i>
<c>
<f>11</f>
<f>10</f>
<parameter>Цена</parameter>
</c>
</c>
<c>
<i>4</i>
<c>
<f>11</f>
<f>10</f>
<parameter>Сумма</parameter>
</c>
</c>
@@ -165,7 +165,7 @@
<c>
<i>3</i>
<c>
<f>12</f>
<f>11</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -177,7 +177,7 @@
<c>
<i>4</i>
<c>
<f>13</f>
<f>12</f>
<parameter>Всего</parameter>
</c>
</c>
@@ -189,7 +189,7 @@
<c>
<i>0</i>
<c>
<f>14</f>
<f>13</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -305,12 +305,10 @@
<format>
<font>3</font>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>1</font>
<bottomBorder>0</bottomBorder>
<fillType>Text</fillType>
</format>
<format>
<font>5</font>
@@ -323,14 +321,6 @@
<rightBorder>1</rightBorder>
<bottomBorder>1</bottomBorder>
</format>
<format>
<font>1</font>
<leftBorder>1</leftBorder>
<topBorder>1</topBorder>
<rightBorder>1</rightBorder>
<bottomBorder>1</bottomBorder>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
@@ -369,7 +359,6 @@
<font>0</font>
<topBorder>0</topBorder>
<bottomBorder>0</bottomBorder>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -380,6 +369,5 @@
<format>
<font>4</font>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
</document>
@@ -131,7 +131,6 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -61,6 +61,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>
@@ -47,7 +47,7 @@
<c>
<i>1</i>
<c>
<f>4</f>
<f>2</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -59,7 +59,7 @@
<c>
<i>2</i>
<c>
<f>4</f>
<f>2</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -117,14 +117,5 @@
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
<topBorder>0</topBorder>
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<fillType>Text</fillType>
</format>
</document>
@@ -164,7 +164,6 @@
<font>1</font>
<topBorder>0</topBorder>
<horizontalAlignment>Right</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>1</font>
@@ -83,12 +83,10 @@
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>2</font>
<horizontalAlignment>Right</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -96,6 +94,5 @@
<topBorder>0</topBorder>
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<fillType>Text</fillType>
</format>
</document>
@@ -61,7 +61,6 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -73,6 +73,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>
@@ -187,7 +187,6 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -217,7 +216,6 @@
<font>1</font>
<topBorder>0</topBorder>
<horizontalAlignment>Right</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>1</font>
@@ -73,6 +73,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>
@@ -153,7 +153,6 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
@@ -30,7 +30,7 @@
<c>
<i>0</i>
<c>
<f>4</f>
<f>3</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -42,7 +42,7 @@
<c>
<i>1</i>
<c>
<f>4</f>
<f>3</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -54,7 +54,7 @@
<c>
<i>3</i>
<c>
<f>4</f>
<f>3</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -71,7 +71,7 @@
<c>
<i>1</i>
<c>
<f>6</f>
<f>4</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -83,7 +83,7 @@
<c>
<i>2</i>
<c>
<f>6</f>
<f>4</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -100,28 +100,28 @@
<c>
<i>0</i>
<c>
<f>7</f>
<f>5</f>
<parameter>Номер</parameter>
</c>
</c>
<c>
<i>1</i>
<c>
<f>7</f>
<f>5</f>
<parameter>Имя</parameter>
</c>
</c>
<c>
<i>2</i>
<c>
<f>7</f>
<f>5</f>
<parameter>Код</parameter>
</c>
</c>
<c>
<i>3</i>
<c>
<f>7</f>
<f>5</f>
<parameter>Сумма</parameter>
</c>
</c>
@@ -208,15 +208,6 @@
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
</format>
<format>
<font>1</font>
<leftBorder>0</leftBorder>
<topBorder>0</topBorder>
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
@@ -224,14 +215,6 @@
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
<topBorder>0</topBorder>
<rightBorder>0</rightBorder>
<bottomBorder>0</bottomBorder>
<fillType>Text</fillType>
</format>
<format>
<font>0</font>
<leftBorder>0</leftBorder>
@@ -206,7 +206,6 @@
<font>1</font>
<topBorder>0</topBorder>
<horizontalAlignment>Right</horizontalAlignment>
<fillType>Text</fillType>
</format>
<format>
<font>1</font>
@@ -73,6 +73,5 @@
</format>
<format>
<font>0</font>
<fillType>Text</fillType>
</format>
</document>