Release 0.4.4: form_xml_to_html v0.2.3 — прототипы форм 1С.

Дерево элементов, ASCII-макет, DataPath · тип в полях, копирование в буфер.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mihailkudravcev
2026-08-12 15:08:22 +03:00
parent 82e2d34c9e
commit f6003e9ebf
5 changed files with 789 additions and 68 deletions
+35 -16
View File
@@ -1,13 +1,13 @@
# export_1c_help
**Версия:** см. [`VERSION`](VERSION) (текущая: **0.4.0**) · [CHANGELOG](CHANGELOG.md)
**Версия:** см. [`VERSION`](VERSION) (текущая: **0.4.4**) · [CHANGELOG](CHANGELOG.md)
**Лицензия:** [MIT](LICENSE)
Выгрузка встроенной справки **любой** конфигурации 1С (`**/Ext/Help/ru.html`) в Markdown и публикация в wiki git-репозитория (Gitea / GitLab: `*.wiki.git`).
Дополнительно: публикация произвольных Markdown-статей в wiki через `export_docs.py` (спецификация: [`SPEC_EXPORT_DOCS.md`](SPEC_EXPORT_DOCS.md)).
Также: HTML-прототипы управляемых форм — `form_xml_to_html.py` (v0.1.0, Michael BAG <mk@p7net.ru>).
Также: HTML/текстовые прототипы управляемых форм — `form_xml_to_html.py` (v0.2.3, Michael BAG <mk@p7net.ru>).
Зависимости: **Python 3.10+**, только стандартная библиотека.
@@ -227,29 +227,39 @@ python3 export_1c_help.py convert -c ../../crm3-26 -o ./out/wiki-md-crm3-26 --cl
## HTML-прототипы форм (`form_xml_to_html.py`)
Скрипт **v0.1.0**, автор **Michael BAG** <mk@p7net.ru>.
Скрипт **v0.2.3**, автор **Michael BAG** <mk@p7net.ru>.
Собирает интерактивный HTML по `Ext/Form.xml` (вкладки, группы, поля, фильтр).
Собирает интерактивный HTML и/или текстовое дерево/макет по `Ext/Form.xml`.
В `placeholder` полей: DataPath и тип данных.
```bash
cd tools/export_1c_help
# объект конфигурации
# HTML в каталог-структуру
python3 form_xml_to_html.py \
-b crm3-26 \
-o Справочник.Номенклатура \
-f ФормаЭлемента
-f ФормаЭлемента \
-p out/form-prototypes
# общая форма
# HTML в один файл + дерево элементов внутри страницы
python3 form_xml_to_html.py \
-b crm3-26.rhana \
-o Общие \
-f РК_ФормаНастроекРана
-f РК_ФормаНастроекРана \
-O /tmp/РК_ФормаНастроекРана.html \
-T
# параметры из JSON (форма всегда через -f)
# только консоль: дерево и ASCII-макет
python3 form_xml_to_html.py \
-c configs/form_prototype.crm3-26.json \
-f ФормаЭлемента
-c configs/form_prototype.crm3-26.rhana.json \
-f РК_ФормаНастроекРана \
-T -M
# текстовый файл без HTML
python3 form_xml_to_html.py \
-b crm3-26.rhana -o Общие -f РК_ФормаНастроекРана \
-T -M -t -O /tmp/form.txt
```
| Параметр | Описание |
@@ -257,14 +267,23 @@ python3 form_xml_to_html.py \
| `-b` / `--base` | имя/путь каталога конфигурации (или её `src/`) |
| `-o` / `--object` | `Справочник.Номенклатура`, `Документ.X`, … или `Общие` |
| `-f` / `--form` | имя формы |
| `-p` / `--out-path` | корень вывода (по умолчанию `out/form-prototypes`) |
| `-c` / `--config` | JSON с `base`, `object`, `out_path`, `search_roots` (без формы) |
| `-p` / `--out-path` | корень вывода HTML: `<out>/<конфа>/<тип>/<объект>/<форма>.html` |
| `-O` / `--out-file` | файл вывода, если нет `-p` (HTML или текст при `-t`) |
| `-T` / `--elements-tree` | дерево элементов |
| `-M` / `--text-maket` | текстовый макет «как в окне» |
| `-t` / `--text-only` | в `-O` только текст, без HTML |
| `-c` / `--config` | JSON с `base`, `object`, `out_path`/`out_file`, `search_roots` (без формы) |
Путь к XML собирается автоматически. HTML:
Правила вывода:
`out/<конфа>/<тип>/<объект>/<форма>.html`
- нет `-O` → `-T`/`-M` в **консоль**;
- есть `-O` (без `-t`) → **HTML** в файл, при `-T`/`-M` блоки добавляются на страницу;
- `-t` + `-O` → текстовый файл как в консоли;
- без `-p`/`-O` и без `-T`/`-M` — ошибка (нужен явный вывод).
например `out/form-prototypes/crm3-26/Справочники/Номенклатура/ФормаЭлемента.html`.
Пример HTML-пути при `-p`:
`out/form-prototypes/crm3-26/Справочники/Номенклатура/ФормаЭлемента.html`.
---