Генерация UML диаграмм на основании текстового описания

10.09.21

Разработка - Работа с интерфейсом

Обработка, демонстрирующая возможности вывода изображения UML диаграммы, сгенерированной сторонним сервисом на основании текстового описания.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка по генерации UML диаграмм на основании текстового описания:
.epf 8,76Kb
14
14 Скачать (1 SM) Купить за 1 850 руб.

В 1С нет встроенных возможностей работы с UML диаграммами. Но можно обогатить функциональность отчетов или форм, если использовать возможности сторонних сервисов, например таких как https://plantuml.com, которые позволяют сгенерировать изображение требуемой UML диаграммы на основании ее текстового описания.


Суть предлагаемого метода, демонстрируемого обработкой

1) Формируем/(составляем вручную) текстовое описание требуемой диаграммы

Пример простейшей диаграммы

2) Сжимаем (deflate) текст описания диаграммы (аналог zip, но не для файла, а для строки)

3) Конвертируем данные полученные на предыдущем этапе при помощи преобразования очень похожего на Base64, но немного отличающегося в силу исторических причин. Подробнее про формат тут

4) Формируем http запрос по адресу сервера, генерирующего изображения. В качестве адреса подставляем требуемый ресурс ( в зависимости от того в каком формате нам нужно изображение, например для PNG - http://www.plantuml.com/plantuml/png/). В конце адреса добавляем закодированный текст, полученный на этапе 3.


5) Получаем ответ от сервера. В случае положительного ответа он содержит виде двоичных данных сгенерированное изображение.
 

Примеры диаграмм, формируемых обработкой:

 

 

Более сложный пример, демонстрирующий схему проведения документов в ЕРП 2.5 ( составлена по мотивам //infostart.ru/public/1185321/):

 

 

В настройках обработки можно задать альтернативный сервер генерации изображений ( например можно использовать не только публичные сервера, но и собственные внутри локальной сети), а также ресурс ( определяет тип изображения) и таймаут по умолчанию (обычно генерация даже больших схем укладывается в 1-2 сек)

P.S. Обработка разрабатывалась и тестировалась на платформах 8.3.16.1148 - 8.3.20.1479.

UML plantUML

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62998    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    18866    26    6    

41

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10239    7    7    

10

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    16887    mrXoxot    43    

121

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    7423    smielka    37    

100

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    14825    919    elcoan    47    

117

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:Комплексная автоматизация 2.х Абонемент ($m)

Генерация диаграммы объектов метаданных для типовой конфигурации "Система проектирования прикладных решений" по справочнику ОбъектыМетаданных. Внешняя обработка, без изменения типовой конфигурации и установки дополнительных компонент.

1 стартмани

15.12.2023    3264    25    xman    9    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1324 10.09.21 12:35 Сейчас в теме
Тема интересна, прикладных примеров анализа структуры или последовательности вызовов в конфигурации не хватает.

Так же полезно будет осветить вариант локального разворачивания на текущей машине или на VM.
3. xnd 94 10.09.21 13:06 Сейчас в теме
(1) Не совсем понятно что подразумевается под прикладными примерами анализа структуры или последовательности - можете пояснить?
По поводу локального разворачивания - не стали заморачиваться с этим - т.к. мы используем UML диаграммы для совместной работы и нужен тогда общий сервер, доступный всем. Поэтому пошли на использование публичных серверов. Правда в продакшене используем не plantuml.com, а https://kroki.io - у него поддержка типов диаграмм в разы больше
2. cprit 901 10.09.21 13:00 Сейчас в теме
Прикольная тема. Не думали сделать такую обработку, которая будет работать полностью локально? Без внешних сервисов. Вроде есть библиотеки для поля HTML, которые такое умеют
4. xnd 94 10.09.21 13:13 Сейчас в теме
(2) Если нужно локально, то придется скачивать Java и запускать на исполнение jar файл, отвечающий за рендеринг.
В корп. средах обычно ставят где то сервер и все по сетке обращаются к нему.
Но опять же повторюсь - наши схемы не содержат ничего секретного, поэтому пользуемся публичными серверами.
5. cprit 901 10.09.21 13:14 Сейчас в теме
6. RustIG 1747 10.09.21 13:44 Сейчас в теме
в этом что-то есть полезное....
SerVer1C; +1 Ответить
7. adn1974 10.09.21 15:09 Сейчас в теме
Интересная тема.
Сейчас многие топят за визуализацию.
Для каких конкретных целей планируете использовать?
12. xnd 94 11.10.21 18:16 Сейчас в теме
(7)(1)
Выпустили инструмент, активно использующий UML диаграммы https://infostart.ru/public/1527549/
8. Идальго 234 10.09.21 21:37 Сейчас в теме
Погодите, а чем просто использование PlantUML не устраивает? Это же довольно старый инструмент. Там отличный плагин есть кстати для VS code.
9. xnd 94 12.09.21 14:55 Сейчас в теме
(8)
так это же и оно и есть, только в среде 1с.
Например с помощью этого есть возможность улучшить информативность отчёта о движениях документов. Есть задумки выложить более функциональный инструмент для аналитиков, в котором будут использоваться вышеописанные возможности по отрисовки в 1с uml диаграмм.
10. malikov_pro 1324 23.09.21 05:59 Сейчас в теме
(3) для диаграмм есть направление в зависимости от типа данных http://blog.atkcg.ru/vybor-vizualizacii-kak-v-diagramme-ne-skryt-vazhnoe/, возможно для каждого вида диаграмм есть подход по построению.

Порядка преобразования кода/структуры данных в диаграмму на русском языке не нашел (возможно плохо искал).
Понятно что статья больше про использование сервиса а не про UML.
Сам диаграмму последовательности рисовал в Visual Paradigm для объяснения рефакторинга кода.

За наводку на kroki.io благодарю, взял из пример JSON, через https://jsoneditoronline.org добавил текст диаграммы и через POST https://kroki.io/plantuml/svg получил требуемый результат, проще чем собирать строку для http://www.plantuml.com.

Использование возможно через плагин, но указание локального сервиса в доке нет https://marketplace.visualstudio.com/items?itemName=asciidoctor.asciidoctor-vscode#how-to-install

В копилку, для plantuml есть
темы https://bschwarz.github.io/puml-themes/gallery.html
расширенный синтаксис с C4 https://github.com/plantuml-stdlib/C4-PlantUML
11. xnd 94 23.09.21 17:58 Сейчас в теме
(10) мы используем автоматическую генерацию диаграмм в одном из наших решений не для кода, а для отражения движений документа ( один из множества примеров - схема проводок БУ)
И да темы делают схемы веселее, их тоже применяем.

13. DELOVOYDOM 12.03.24 01:36 Сейчас в теме
(11) Как дела в 23 году? что то напилить удалось? Не так много кто работает в этой области, многие начинают и потом бросают от чего то. Решения громоздкими становятся и мало востребованными начальством
14. xnd 94 12.03.24 09:21 Сейчас в теме
(13) Если мы говорим про UML схемы, то в основном используем для базы знаний в obsidian( например автогенерация json, описывающих метаданные с поддержкой гиперссылок)
Прикрепленные файлы:
15. xnd 94 12.03.24 09:28 Сейчас в теме
(13) а если про вывод диаграмм в самой 1С, то думаем об отказе от UML и переходе на фреймворк, позволяющий интерактивное изменение полученного результата плюс возможность создавать свои элементы оформления.
Пример возможностей движка:
https://g6.antv.antgroup.com/en/examples
Ниже на скрине пока что примитивнейшая диаграмма в 1С, но зато любой элемент можно подвинуть мышкой
Прикрепленные файлы:
Viktor_Ermakov; +1 Ответить
16. Viktor_Ermakov 369 03.05.24 10:11 Сейчас в теме
(15)
Пример возможностей движка:
https://g6.antv.antgroup.com/en/ex

Спасибо большое за наводку на фреймворк.
Очень хорошая идея его использовать!
Единственная просьба посмотреть бы пример, как Вы исходный код импортировали в 1С.
Спасибо!
17. xnd 94 03.05.24 10:40 Сейчас в теме
(16) варианта 2
1 - непосредственное вставка текста js библиотеки в текст html - но тогда неудобно отлаживать html файл - уж больно много он весит

2 - положить js библиотеку во временный каталог и в тексте html сослаться на него

например
фрагмент html
<sc ript src="file:///C:\Users\Александр\AppData\Local\Temp\\g6.min.js"></sc ript>

фрагмент модуля для работы с библиотекой

#Область ПрограммныйИнтерфейс
// Возвращает текст для включения в страницу
// 
// 
// Возвращаемое значение:
//  Строка  - текст с тегами script для включения в html страницу
Функция ТекстПодключенияВHTML() Экспорт
	ШаблонБлока =  "<sc ript src=""file:///%1""></sc ript>";
	Возврат СтрШаблон(ШаблонБлока, ПутьКБиблиотеке());
КонецФункции

// Проверить и установить библиотеку G6.
Процедура ПроверитьиУстановитьБиблиотеку() Экспорт
	ПутьКБиблиотеке = ПутьКБиблиотеке();
	Файл = Новый Файл(ПутьКБиблиотеке); 
    Если Файл.Существует() Тогда
    	Возврат;
    КонецЕсли;
    ТекстовыйФайл = Новый ТекстовыйДокумент;
    ТекстБиблиотеки = граф_МакетыВызовСервера.ТекстМакета("граф_БиблиотекаG6Версия4");
    ТекстовыйФайл.УстановитьТекст(ТекстБиблиотеки);
	ТекстовыйФайл.Записать(ПутьКБиблиотеке, КодировкаТекста.UTF8);
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции
Функция ПутьКБиблиотеке()
	РазделительПути = ПолучитьРазделительПутиКлиента();
	ШаблонПути =  "%1%2g6.min.js";
	Возврат СтрШаблон(ШаблонПути, КаталогВременныхФайлов(), РазделительПути);
КонецФункции

#КонецОбласти
Показать
19. Viktor_Ermakov 369 03.05.24 13:02 Сейчас в теме
(17)Спасибо большое, все понятно, я так и предполагал хранить в макете, получать его и во временный каталог.
Скажите а где именно исходники для макета качали, сорсы с проекта гитхаба?
18. xnd 94 03.05.24 10:43 Сейчас в теме
(16) движок сайта портит ответ - разбивает script на sc и ript
20. Viktor_Ermakov 369 03.05.24 13:03 Сейчас в теме
(18) ну локально даже лучше, не везде есть доступ к инету, или много у кого запрет доступа к различным сайтам. А так все локально.
21. xnd 94 03.05.24 13:17 Сейчас в теме
(19) исходники https://github.com/antvis/G6
для своего проекта беру тут https://gw.alipayobjects.com/os/lib/antv/g6/4.3.11/dist/g6.min.js
( для минимизации объема)
подсмотрел в https://g6.antv.antgroup.com/en/manual/getting-started
Viktor_Ermakov; +1 Ответить
23. Viktor_Ermakov 369 03.05.24 13:55 Сейчас в теме
(21) Спасибо большое, доберусь тоже сделаю что нить.
22. xnd 94 03.05.24 13:21 Сейчас в теме
(19) нужную версию можно взять еще тут
https://www.npmjs.com/package/@antv/g6
например
https://www.npmjs.com/package/@antv/g6/v/4.8.24?activeTab=code
в каталоге Dist
24. Светлый ум 416 28.10.24 09:37 Сейчас в теме
Отличный пример диаграммы процесса +1
25. xnd 94 01.11.24 09:55 Сейчас в теме
(24) если интересно - вот с исходниками https://www.plantuml.com/plantuml/uml/JCan2W9130NGVauH3o2iWhsjnmZPZnisancIpFq5gst­VUsTnrEhMRdMWWmIn3EptiShKqV9KdnpSwHjZpOyV22rs0JqlwMD7Oj9Zsou­QxETVN-tG7IGQOiZMn3ZpLvlLxJPnHE7xVOeZSr6mR5VX4WdKzm0kIk82QcfNmLLLLK­YrgQ4eY4We5QWO0-41kXWxsSHcymepRzJpdHbdTcStzZXnBsnlPkTyvpi_SyxCX2fgg0Qatki_LA­f6QgB6_Fcg4ZKXVapLYNwYPXZIFKoeqFUFUBRQf-ZtYAXQvUS9oqBkjOhLgKfqLx_GBzM-9nnVlLQj4jrfgH79orF-JA6ANqxKLB_WQRlyz56D-Cqnm_JuAIQUEDSGwvUwno_s0FE1XmwPwCmfLacDt7ZHA1PK2UbUGuqRnFGR3­R519YPPc0NiZvoLn9WJ6HXPiPdUrNqIjbzaJizG8FtC6d54mDHz5OCG2y_Om­29FvdNpfY4tL9_vVQm-gvI9dAYupAvomdCJxtH8VH8AFUlaGPu3ZvK0h2B-ZqhvtP_yznVz17prKtvEyY3lLOnNq07FYDOfamynoEDp81wPyjIdPp3xY8Cw­j0byd1TuWq4X5RCOQ2TMQynSNgmEE9JWnW02G7uoZ6BmCNijaIpv2i-nppxugP43zO8jp7nFB5Xn2zXw80sVRiE16RKNuPMoy5HDLk7rIk-wIY2maadMEwWAyDWHg-5denfUAqkP7B1lJY4yx_ob6nAUZvpXAR-OUSd3ob2Upg1ZP0VRb5g5icfy2bbe_aL89lEwPshL2AbJA1WghX4_nwWR88v­quCeKuakfhIA35GnFeiRFhbuJ-GJfJ_C2B35_ZeYf0IQQ43J2wX7mh4TW-p6gE33w-2RsqKWMsCIMS_r4p8ubhqVwBr3CK7AMYWzcW6PnUCOIW-T8TqKDeAGIdUWkhAEAUejKdIzyr2Pmh4IF8zS61sfOx7Ynz3kyMzRlf3yix2­aomqq8ywCHUfobELX0Sp2d2SLU6yfdx99wRirnNMXVnIwFVVLU6VVuIuA3a9­USnMvGhD6kZGZ80UEUm1u31trOuDdYpKzls88zRod7dED4WbBaMRG9xnjtMZ­nv3NqZedoYlLElaQXUUr0fqqszpOCBBGk5fU22x9EtNjRR1UHIOix4Jmf7vP­CQM2gNxEZ-cbdIKltvePqmG7D9xrB9wZZBiYMxZBpYlCUoHmPvhg-0_f5dfgOg2zhGRuxowQ-ExAmkyfpFpHIX3n8ZvFmpCuVCAI8nDGYUP4xms-UplEO72F4t2zc0sjC4UChWXDEAAUbdM83444Z3CI0YK_HE6vdTCl-UOCSloo_5itbZHqyjR8n6CHKM2SeiyjySWgX2mc1pmn-u7aNVe0_gFKIGM6pAE5tf9wD8pZ_rxTjydjfgjkxMRqc7YF15zQtyyC3Etia­FOmcP7qyYwmo8-u1I1pnsiqml7mcD6pVEMnjWSkN-JhFPgdKUFDpyiTLyzEZcHgtLnZaHAa0Nug77EgklM7525VbogwluhRRLxdIQ­M-MAV9zU2ahyRq72EdYW6ovuoeiY8x_wyOxgzTk6HUtAlPtshpb-TqtkCkubzn4-lHMFZuxZUS6vwyTNz5skBsMrjhTzTMRPNbQ79HgoVSX5QlkNPccWBhf1Yunu­w9w8gGHayresJGPgNSVim9WkqMP9hVEO7aOi5EtSHFCxV7qxlx9yjQXpvwkr­eEkw5WZtmqKtQfRmEgyRmWYlTqSO6LYtcxZ5MvN_HzK2ww1qy_gY2NDAwzkn­sW2kwredB7YBjiLH59bLaWt6HhHivV3iSzSTvAFDZOLJ7Bw_WucYLhlJf4xx­Psh_O0engI6_-Gg3vVlOtPYm-qikbahlelEusEbIxZHlfr5bbMlz2auVk1ZlIdxiyYXZw3uvntrROYDHSP1K0­hAwHyNRETF9oDtQoqMHd7dAB--hrTBh-swkDHuBTm04-x3PsYBuqJXpv-7z1nthpW7eo48PY-M7S9rtXe87BIwlxmaYY0r7i7Owkp4RCTIHyGr1nfpSGjk_PyOztewrVn8x92­rXYIpbiHpt5iJZbJeWbTfcUuX_x4Y9w4Sa6G7Ny_UUdUxVYH1p6p9z9CkGNV­TM_Pq9CSR7_WsCSoYyQxm1haFcVS3rOSWW_php_9p7USswobv98d0CybAIjs­yFOVOQsEv2QX79-VFvF0F7xe8Nxd0potBEAYfUzZcMt_4J_-FmFm00
Оставьте свое сообщение