mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-18 01:00:24 +03:00
fix(mxl-compile,mxl-decompile): пустой текст ячейки и расхождение портов на нём
Пустой текст платформа хранит только самозакрывающимся тегом: в корпусе ERP таких 1 224 460, а из 780 934 непустых блоков нет ни одного, где пусты все языки. Компилятор же на `text: ""` писал блок с пустым элементом языка — запись, которой в выгрузках не существует. Теперь любая пустая форма (строка, пустой объект, все языки пустыми) даёт один и тот же тег, а декомпилятор возвращает её канонической пустой строкой. Отсюда же росло расхождение портов. Свёртка текста на пустой карте языков возвращала null, если ДРУГОГО текста в макете нет вовсе: набор языков документа при этом пуст. Дальше py писал пропуск колонки, а ps1 наступал на разворачивание одноэлементного массива — список из одного $null превращался в $null, и строка целиком уходила в пустые. Проверено на 12 корпусных макетах: 1411 пустых текстов из 1411 вернулись на место, JSON портов совпадает.
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "Пустой текст ячейки: строка, объект и все языки пустые",
|
||||
"input": {
|
||||
"columns": 2,
|
||||
"textLanguages": ["ru", "en"],
|
||||
"areas": [{
|
||||
"rows": [
|
||||
{ "cells": [{ "col": 1, "text": "" }] },
|
||||
{ "cells": [{ "col": 1, "text": {} }] },
|
||||
{ "cells": [{ "col": 1, "text": { "ru": "", "en": "" } }] },
|
||||
{ "cells": [{ "col": 1, "text": { "ru": "А", "en": "" } }] }
|
||||
]
|
||||
}]
|
||||
},
|
||||
"params": { "outputPath": "Template.xml" }
|
||||
}
|
||||
Reference in New Issue
Block a user