Диаграмма объектов 1С 🏗 на Plant UML

23.08.22

Разработка - Инструментарий разработчика

Внешняя обработка, которая генерирует диаграмму объектов 1С 🏗 на языке PlantUML. Использует библиотеку для построения диаграммы объектов в нотациях метаданных 1С.

Скачать файлы

Наименование Файл Версия Размер
Диаграмма объектов 1С 🏗 на Plant UML:
.zip 20,80Kb
101
.zip 20,80Kb 101 Скачать

Логика работы

 

Области применения

  • ТЗ, ЧТЗ, ФТ и прочая проектная документация
  • Active Design Review
  • Как пример работы с PlantUML

 

Настройки

 

Настройка Назначение Значение по умолчанию
Сервер рендеринга Можно задать альтернативный сервер генерации изображений (например можно использовать не только публичные сервера, но и собственные внутри локальной сети) www.plantuml.com
Ресурс сервера Определяет тип изображения /plantuml/png/
Таймаут Таймаут для HTTP соединения 180
Формировать реквизитный состав объекта Генерировать код для реквизитного состава объектов: стандартные реквизиты, реквизиты, табличные части Ложь
Формировать детальные отношения на уровне реквизитов состав объекта Настройка активна при включенном признаке Формировать реквизитный состав объекта. При включенном признаке отрисовка связей будет осуществляться на уровне реквизитов. При выключенном отрисовка связей будет на уровне объектов Ложь

 

Разбор инструмента и библиотеки

 

Благодарность со ссылками на инструменты использующиеся в проекте

Развитие

Разработка: 1С: EDT

Руководство контрибьторапозаимствуем у проекта Let's code

Бэклог задачIssues

Обработка универсальна, может быть запущена в любой конфигурации. Разработка проекта EDT велась на платформе 8.3.20

Диаграмма объектов Plant UML

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122091    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7281    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3521    11    1    

34

SALE! 30%

PowerTools

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177733    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99343    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18106    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28104    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23599    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Serg O. 224 23.08.22 13:20 Сейчас в теме
Супер! БОЛЬШОЕ спасибо автору!

как раз что-то подобное хотел
в EDT есть что-то подобное ... построение схемы метаданных и их отношений
(но без реквизитов)

неплохо бы ещё общие модули как-то подтянуть...
(и экспортные процедуры и функции вместо реквизитов)

какой модуль из какого объекта тянется - было бы вообще огонь!
gortol; Alish009; a_plastinin; +3 Ответить
2. quazare 3586 23.08.22 14:46 Сейчас в теме
(1) интересно вы про ЕДТ написали - это как построить "отношения метаданных", но без реквизитов. а "цепляться" за что?)
3. malikov_pro 1292 23.08.22 19:49 Сейчас в теме
Посмотрел, полезно, сам пользуюсь без доп. модулей. Позволяет концентрироваться на объектах и связях на не линиях.

Если не хочется отдавать свои схемы наружу, а запускать jar локально не получается, то вариант развернуть в docker.
https://github.com/plantuml/plantuml-server

По удобству/быстроте в IDE реализация лучше в PyCharm (по ощущениям кеширует jar).

(2) "а "цепляться" за что?"
два варианта указания ссылок
Товар --РасходнаяНакладная
и
Товар --РасходнаяНакладная::Номенклаутра


(1) "неплохо бы ещё общие модули как-то подтянуть"
Наверно через распаковку поиском по файлам *.bsl, на сколько помню называется семантическое дерево, в https://1c-syntax.github.io/bsl-language-server/ активно используется.

(0)
Как храните и версионируете?
Сам использовал в составе redmine, модуль старый (не поддерживается автором), diff из коробки, как подключить доп. модули без обращения к внешним ресурсам отдельный вопрос. Есть поддержка в gitlab, но ломается при использовании кирилицы.

Возможно полезно будет описать как подключать ваш репо через git submodule, для того чтобы сообщество начало использовать нужна простая инструкция https://git-scm.com/book/ru/v2/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0­%B5%D0%BD%D1%82%D1%8B-Git-%D0%9F%D0%BE%D0%B4%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B8
a_plastinin; Serg O.; +2 Ответить
4. kalyaka 1053 23.08.22 20:16 Сейчас в теме
Прекрасное решение! Для документирования и исследования - самое то!

Предполагается выложить проект на github?

Если вывод заменить в поле HTML, то можно добавить функциональности: панорамирование, зуммирование и т.д.
a_plastinin; Disorder777; Serg O.; +3 Ответить
5. Serg O. 224 24.08.22 07:47 Сейчас в теме
Хороший доклад был от Андрея Овсянкина
."Донесение здравого смысла до заказчика"
Infostart Event2021
в том числе там и про PlantUML было
https://youtu.be/Cr6R3LXKw9o
twiny; a_plastinin; +2 Ответить
6. malikov_pro 1292 24.08.22 10:58 Сейчас в теме
(4) "Предполагается выложить проект на github?" - выложено, ссылка явно в статье не дана https://github.com/plastinin/diagramobject
"о можно добавить функциональности: панорамирование, зуммирование и т.д." - в какой статье описано как сделать?
twiny; 300_po_vstrechke; a_plastinin; +3 Ответить
9. kalyaka 1053 24.08.22 21:33 Сейчас в теме
(6)
панорамирование, зуммирование и т.д.
В поле HTML открываются практически безграничные возможности по работе с отображением. В данном случае можно использовать библиотеку js, например одну из популярных svg-pan-zoom. Решение следующее: на форме размещаем Поле HTML документа. Для поля формируем html, где подключаем нашу библиотеку в разделе
<sc ript src=""" + ПутьКФайлуJS + """></sc ript>
внутри заголовка <head>, встраиваем картинку в какой-нибудь контейнер
	|<div id = 'container'>
	|" + svg + "
	|</div> 
в формате svg. Особенность этого формата в том, что он векторный и описывается в тексте декларативно, как html. Далее внутри <body> в конце располагаем скрипт по инициализации. В скрипте вешаем функцию инициализации на событие onload. В функции делаем следующие вещи: находим нашу картинку, устанавливаем атрибут id, который затем мы передадим в функцию библиотеки для подключения.
Ниже приведен рабочий пример кода, который я использовал в своем инструменте анализа зависимостей параметров и элементов формы (предмет следующей моей публикации):
	"<ht ml>
	|<head>
	|	<st yle>svg {width: 100%; height: 100%;}</style>
	|	<sc ript src=""" + АдресСкриптаJS + """></sc ript>
	|</head>
	|<body>
	|<div id = 'container'>
	|" + svg + "
	|</div> 
	|<sc ript>
	|	// Don't use window.onLoad like this in production, because it can only listen to one function.
	|	window.on load = function () {
	|		const svg = document.querySelector('svg');
	|		svg.setAttribute('id', 'graphviz');
	|		svgPanZoom('#graphviz', {
	|			zoomEnabled: true,
	|			controlIconsEnabled: true,
	|			fit: true,
	|			center: true,
	|		});
	|	};
	|	</sc ript>
	|</body>
	|</html>";
Показать

Подключение библиотеки следующее: 1. скачать из последнего релиза файл svg-pan-zoom.js, 2. поместить в текстовый макет обработки, 3. в форме при создании извлечь из макета и поместить в хранилище, 4. при открытии извлечь из хранилища и записать во временный файл на клиенте, а путь использовать для подключения к html
10. kalyaka 1053 24.08.22 22:14 Сейчас в теме
(9)Это еще не все, на элементы графической схемы можно навешать свои обработчики, например по клику.
PS: Да, вставка примера кода с тегами html - та еще задачка :)
7. 300_po_vstrechke 1498 24.08.22 16:09 Сейчас в теме
Плюсую предыдущему оратору, где есть подобное описание?
Ещё бы для неуправляемых форм...
mell0rn; a_plastinin; +2 Ответить
8. a_plastinin 259 24.08.22 17:39 Сейчас в теме
(7)
Плюсую предыдущему оратору, где есть подобное описание.


А что бы вы хотели видеть в "подобном" описании?
11. malikov_pro 1292 25.08.22 08:18 Сейчас в теме
(10) Добавлю что можно формировать не только PNG но и SVG.
Нотация поддерживает ссылки https://plantuml.com/ru/link, на http://www.plantuml.com/plantuml/uml и в PyCharm они работают.
12. malikov_pro 1292 25.08.22 08:22 Сейчас в теме
(8) предположу что опечатка, имелось ввиду "подробное", проблема в отсутствии умений у коллег применять схемы для решения задач. Сформировать схему обработкой классно, но как её отформатировать для решения прикладной задачи не всегда понятно и не хватает знания семантики и применимости диаграмм. Недавно проходил "Заблуждения о роли BPMN при автоматизации бизнес-процессов и цифровой трансформации" одной из основных мыслей было "Применяйте BPMN для описания БП, для остального используйте другие нотации".
a_plastinin; mell0rn; +2 Ответить
13. Lemmonbri 116 25.08.22 09:54 Сейчас в теме
Нашел несколько ошибок. Открываю обработку в предприятии. Выбираю документ заказ клиента и все регистры сведений и получаю ошибку на первом скрине (с регистрами накоплений все работает нормально). Второй момент. Если я так сделаю с регистрами накоплений, то картинка некорректно отображается (обрезается) 2 скрин. Приходится копировать код, идти на сайт, там формировать картинку и в SVG она отображается корректно (сразу SVG в 1С отображать же можно). Так же третий момент. Формирование по всем регистрам накоплений с реквизитами и связями не представляется возможным, сервер обработки изображений просто forbidden возвращает.
Прикрепленные файлы:
14. a_plastinin 259 25.08.22 10:38 Сейчас в теме
(13)
о картинка не


Привет, спасибо за фидбек.

Можно попросить вас зарегистрировать ошибку в Issues? Идеально если приложите сгенерированный код для отладки.
18. Lemmonbri 116 25.08.22 11:58 Сейчас в теме
(14) Зарегистрировал, развлекайтесь :)
19. a_plastinin 259 25.08.22 11:58 Сейчас в теме
15. Lancelot-2M 115 25.08.22 11:29 Сейчас в теме
Делал я такую штуку (или подобную) на graphviz. Эта красивее и лучше, если работает без ошибок.
Добавить бы статистику по количеству объектов и связей, 2 ползунка - фильтра по количеству объектов и связей - и годный stand-alone инструмент будет. Я б скачал)))
16. a_plastinin 259 25.08.22 11:35 Сейчас в теме
(15) PlantUML как раз под капотом graphviz юзает.

Добавить бы статистику по количеству объектов и связей, 2 ползунка - фильтра по количеству объектов и связей - и годный stand-alone инструмент будет. Я б скачал)))


Да все это можно сделать. Не хотите стать контрибьютером?
20. Lancelot-2M 115 25.08.22 12:19 Сейчас в теме
(16)
Не хотите стать контрибьютером?

могу исходники поискать, почистить от чуждого контекста и передать вам, но не ранее чем через пару недель - у меня просто не будет выходных до этого)
17. Dimanchik00 25.08.22 11:56 Сейчас в теме
Подал челобитную:
предлагаю сделать опциональное включение типовых реквизитов в справочниках и документах при выводе в диаграмму
a_plastinin; +1 Ответить
21. twiny 15 26.08.22 10:49 Сейчас в теме
Коллеги, а вот такую ошибку дает постоянно:

Во время выполнения действия была потеряна связь с сервером.
Сейчас соединение восстановлено. При необходимости повторите вызванное ранее действий.


Это на стороне сервиса проблемы или у меня?
kuznetsov1c; +1 Ответить
22. kuznetsov1c 17 02.09.22 10:03 Сейчас в теме
(21) Приветствую! Выбрал слишком много объектов
23. kuznetsov1c 17 02.09.22 10:24 Сейчас в теме
Разработка впечатляющая и интересная. Выражаю благодарность и уважение.

P.S. Хотелось бы иметь возможность отображения табличных частей на диаграмме
24. Lemmonbri 116 28.10.22 15:55 Сейчас в теме
Я так и не понял как свои иконки сделать, а именно: как png перевести в спрайты. Прочитал доки на plantuml, но так и не разобрался. Хотел добавить значки форм и реализовать диаграммку форм. Если по человечески объясните - буду благодарен.
25. a_plastinin 259 28.10.22 15:59 Сейчас в теме
(24) привет!

а глянь плиз https://www.youtube.com/watch?v=psK2fZUtbf4&t=467s
там постарался четко рассказать, если не получается, то пиши пожалуйста.
26. a_plastinin 259 28.10.22 16:05 Сейчас в теме
(24) правильная ссылка - https://www.youtube.com/watch?v=psK2fZUtbf4&t=4389s

01:13:09 - Готовим спрайты для пиктограмм объектов метаданных, ресурсов и измерений
27. Lemmonbri 116 28.10.22 16:51 Сейчас в теме
(26) вроде получилось, pull request создал, а там посмотрим
28. a_plastinin 259 01.11.22 17:07 Сейчас в теме
(27) привет! не вижу твоего пул-реквеста)
29. Lemmonbri 116 01.11.22 19:15 Сейчас в теме
(28) Я гитхабом раз в жизни пользовался, так что не уверен куда я ещё должен нажать)
Прикрепленные файлы:
30. a_plastinin 259 01.11.22 20:00 Сейчас в теме
(29) ааа, это я не туда смотрю)) пардон
32. Lemmonbri 116 02.11.22 07:56 Сейчас в теме
(30) Я там возможно опечатку сделал, сделайте merge :)
a_plastinin; +1 Ответить
31. Lemmonbri 116 02.11.22 07:52 Сейчас в теме
(30) Ну файлики он увидел, но картинки формы нет :(
33. Rafaraf 37 03.04.23 18:26 Сейчас в теме
подскажите как получить значок справочника или документа ? <$?????>


<$d> - это понятно dimension
<$r> - ресурс
-- Товары -- заголовок с линией
---- просто строка

- красный квадрат
* черная точка
+ зеленая точка
35. Serg O. 224 04.05.23 15:26 Сейчас в теме
(33) я нашел не совсем то, но похоже
_Справочник(Виды, ВидыНоменклатуры)

'>>> библиотека 1ce-icons-for-plantuml (ext)
!define v8_PUML https://raw.githubusercontent.com/plastinin/1ce-icons-for-plantuml/extended/dist/
!include v8_PUML/common.puml
!include v8_PUML/v8_AccRg.puml
!include v8_PUML/v8_Document.puml
!include v8_PUML/v8_Catalog.puml
!include v8_PUML/v8_InfoRg.puml
!include v8_PUML/v8_ChartsOfCharacteristicTypes.puml
!include v8_PUML/v8_DefinedTypes.puml
!include v8_PUML/v8_Enum.puml
'<<<

_РегистрСведений(ABCXYZКлассификацияКлиентов, "ABC/XYZ классификация клиентов") {
	 {static} Период
	 <$d> Партнер
	 <$d> ТипПараметраКлассификации
	 <$d> ТипКлассификации
	 <$r> Класс
	 <$r> ЗначениеПараметраКлассификации
       _Справочник(Виды,ВидыНоменклатуры)
}
Показать


добавляет слово object перед <знаком типа>
Прикрепленные файлы:
34. Serg O. 224 04.05.23 15:11 Сейчас в теме
обработка не видит Табличных частей ?
то есть любой документ, например Реализация...получается не связан с Номенклатурой ?!
это мне кажется недоработка ...
а табличных частей у документа (да и у справочников) может быть несколько !

вручную можно добавить в текст схемы - отдельную группу типа тчТоварыДокРеализация
и настроить связи вручную, но это крайне не удобно

'>>> 

'>>> библиотека 1ce-icons-for-plantuml (ext)
!define v8_PUML https://raw.githubusercontent.com/plastinin/1ce-icons-for-plantuml/extended/dist/
!include v8_PUML/common.puml
!include v8_PUML/v8_AccRg.puml
!include v8_PUML/v8_Document.puml
!include v8_PUML/v8_Catalog.puml
!include v8_PUML/v8_InfoRg.puml
!include v8_PUML/v8_ChartsOfCharacteristicTypes.puml
!include v8_PUML/v8_DefinedTypes.puml
!include v8_PUML/v8_Enum.puml
'<<<

_Справочник(Номенклатура, "Номенклатура")
_Документ(РеализацияТоваровУслуг, "Реализация товаров и услуг")
_ПВХ(тчТоварыДокРеализация, "Товары")
Номенклатура --> тчТоварыДокРеализация
тчТоварыДокРеализация  --> РеализацияТоваровУслуг
Показать


картинку для ТЧ - взял из ПВХ
Прикрепленные файлы:
36. SERGEJ64 26.02.24 08:47 Сейчас в теме
Не получается сформировать диаграмму на последней версии с гитхаба. Можно актуализировать инструкцию, пжл?
AntonKite; +1 Ответить
37. AntonKite 12.03.24 11:56 Сейчас в теме
Похоже, проблема тут, url https://raw.githubusercontent.com/plastinin/1ce-icons-for-plantuml/extended/dist/ возвращает ошибку: 400: Invalid request

В настройках нужно указать:
- сервер "plantuml.com"
- ресурс "/plantuml/png/"
Оставьте свое сообщение