mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-13 15:03:20 +03:00
Инкремент A кампании mxl-roundtrip. Блочная форма DSL не выражала больше половины корпуса: у 34% макетов ERP есть строки вне именованных областей, у 21% нет ни одной области типа Rows. Декомпилятор такие строки терял, а на макетах целиком из Rectangle отдавал areas: [] — компилятор отвечал "Required field 'areas' is missing". На пилоте из 40 макетов это 10 отказов из 26. Что сделано: - имя у блока стало необязательным. Блок без имени — просто кусок сетки; именованную область он не создаёт. Отдельный «плоский режим» не нужен: макет без выразимых блоков это один безымянный блок; - namedAreas — именованные области координатами, для всего, что блоком не ложится (не-Rows и пересекающиеся). Тип области НЕ указывается: он выводится из заданных осей, ровно как в ТабличныйДокумент.Область() — только строки дают полосу строк, только колонки полосу колонок, обе оси прямоугольник. Так нельзя написать противоречие вроде type: Rows с колоночными координатами; - диапазон записывается уже существующей грамматикой DSL (как ключи columnWidths): число или "N-M". Список через запятую запрещён — область непрерывна, платформа разрывную не хранит; - прощающим вводом принимается платформенный адрес "R1C1:R2C2" и правило «0 значит 1»; в документацию не вынесено; - декомпилятор перестал пропускать области не-Rows (там стоял безусловный continue) и режет сетку на блоки детерминированно: непересекающиеся Rows задают границы, дыры становятся безымянными блоками, остальное уходит в namedAreas. Отдельно: именованные элементы теперь эмитятся отсортированными по имени. Платформа хранит их именно так — на выборке 541 макета с несколькими элементами иного порядка нет ни разу. Сортировка ординальная и регистронезависимая; Sort-Object по умолчанию сортирует по текущей культуре и на кириллице дал бы другой порядок. Отсюда дрейф 13 снэпшотов — чистая перестановка, диффы симметричны, число элементов не изменилось. На пилоте отказы areas: [] закрыты полностью (10 → 0), цикл переживают 24 макета вместо 14. Оставшиеся 16 отказов — колоночные раскладки, это инкремент B. Правка на ps1, зазеркалена в py; вывод портов и в компиляции, и в декомпиляции совпадает байт в байт. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
127 lines
2.8 KiB
XML
127 lines
2.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<languageSettings>
|
|
<currentLanguage>ru</currentLanguage>
|
|
<defaultLanguage>ru</defaultLanguage>
|
|
<languageInfo>
|
|
<id>ru</id>
|
|
<code>Русский</code>
|
|
<description>Русский</description>
|
|
</languageInfo>
|
|
</languageSettings>
|
|
<columns>
|
|
<size>3</size>
|
|
</columns>
|
|
<rowsItem>
|
|
<index>0</index>
|
|
<row>
|
|
<c>
|
|
<i>0</i>
|
|
<c>
|
|
<f>2</f>
|
|
<tl>
|
|
<v8:item>
|
|
<v8:lang>ru</v8:lang>
|
|
<v8:content>Отчёт</v8:content>
|
|
</v8:item>
|
|
</tl>
|
|
</c>
|
|
</c>
|
|
</row>
|
|
</rowsItem>
|
|
<rowsItem>
|
|
<index>1</index>
|
|
<row>
|
|
<empty>true</empty>
|
|
</row>
|
|
</rowsItem>
|
|
<rowsItem>
|
|
<index>2</index>
|
|
<row>
|
|
<empty>true</empty>
|
|
</row>
|
|
</rowsItem>
|
|
<rowsItem>
|
|
<index>3</index>
|
|
<row>
|
|
<c>
|
|
<i>0</i>
|
|
<c>
|
|
<f>4</f>
|
|
<parameter>Код</parameter>
|
|
</c>
|
|
</c>
|
|
<c>
|
|
<i>1</i>
|
|
<c>
|
|
<f>4</f>
|
|
<parameter>Имя</parameter>
|
|
</c>
|
|
</c>
|
|
<c>
|
|
<i>2</i>
|
|
<c>
|
|
<f>4</f>
|
|
<parameter>Значение</parameter>
|
|
</c>
|
|
</c>
|
|
</row>
|
|
</rowsItem>
|
|
<templateMode>true</templateMode>
|
|
<defaultFormatIndex>1</defaultFormatIndex>
|
|
<height>4</height>
|
|
<vgRows>4</vgRows>
|
|
<merge>
|
|
<r>0</r>
|
|
<c>0</c>
|
|
<w>2</w>
|
|
</merge>
|
|
<namedItem xsi:type="NamedItemCells">
|
|
<name>Данные</name>
|
|
<area>
|
|
<type>Rows</type>
|
|
<beginRow>3</beginRow>
|
|
<endRow>3</endRow>
|
|
<beginColumn>-1</beginColumn>
|
|
<endColumn>-1</endColumn>
|
|
</area>
|
|
</namedItem>
|
|
<namedItem xsi:type="NamedItemCells">
|
|
<name>Заголовок</name>
|
|
<area>
|
|
<type>Rows</type>
|
|
<beginRow>0</beginRow>
|
|
<endRow>2</endRow>
|
|
<beginColumn>-1</beginColumn>
|
|
<endColumn>-1</endColumn>
|
|
</area>
|
|
</namedItem>
|
|
<line width="1" gap="false">
|
|
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
|
</line>
|
|
<font faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
|
|
<font faceName="Arial" height="12" bold="true" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
|
|
<format>
|
|
<width>10</width>
|
|
</format>
|
|
<format>
|
|
<font>1</font>
|
|
<horizontalAlignment>Center</horizontalAlignment>
|
|
<fillType>Text</fillType>
|
|
</format>
|
|
<format>
|
|
<font>0</font>
|
|
<leftBorder>0</leftBorder>
|
|
<topBorder>0</topBorder>
|
|
<rightBorder>0</rightBorder>
|
|
<bottomBorder>0</bottomBorder>
|
|
</format>
|
|
<format>
|
|
<font>0</font>
|
|
<leftBorder>0</leftBorder>
|
|
<topBorder>0</topBorder>
|
|
<rightBorder>0</rightBorder>
|
|
<bottomBorder>0</bottomBorder>
|
|
<fillType>Parameter</fillType>
|
|
</format>
|
|
</document> |