mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-19 01:30:23 +03:00
Пустой текст платформа хранит только самозакрывающимся тегом: в корпусе ERP таких 1 224 460, а из 780 934 непустых блоков нет ни одного, где пусты все языки. Компилятор же на `text: ""` писал блок с пустым элементом языка — запись, которой в выгрузках не существует. Теперь любая пустая форма (строка, пустой объект, все языки пустыми) даёт один и тот же тег, а декомпилятор возвращает её канонической пустой строкой. Отсюда же росло расхождение портов. Свёртка текста на пустой карте языков возвращала null, если ДРУГОГО текста в макете нет вовсе: набор языков документа при этом пуст. Дальше py писал пропуск колонки, а ps1 наступал на разворачивание одноэлементного массива — список из одного $null превращался в $null, и строка целиком уходила в пустые. Проверено на 12 корпусных макетах: 1411 пустых текстов из 1411 вернулись на место, JSON портов совпадает.
19 lines
661 B
JSON
19 lines
661 B
JSON
{
|
|
"name": "Roundtrip — пустой текст ячейки возвращается как \"\"",
|
|
"preRun": [
|
|
{ "script": "mxl-compile/scripts/mxl-compile",
|
|
"input": {
|
|
"columns": 2,
|
|
"areas": [{ "rows": [
|
|
{ "cells": [{ "col": 1, "text": "" }] },
|
|
{ "cells": [{ "col": 1, "text": "Текст" }] }
|
|
]}]
|
|
},
|
|
"args": { "-JsonPath": "{inputFile}", "-OutputPath": "Template.xml" },
|
|
"cwd": "{workDir}" }
|
|
],
|
|
"params": { "templatePath": "Template.xml" },
|
|
"args_extra": ["-OutputPath", "{workDir}/back.json"],
|
|
"expect": { "files": ["back.json"], "stdoutContains": "[OK] Decompiled:" }
|
|
}
|