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

23.08.22

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

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

Скачать исходный код

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

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

 

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

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

 

Настройки

 

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

 

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

 

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

Развитие

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

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

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

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

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

См. также.

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

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

10000 руб.

02.09.2020    135466    744    391    

777

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

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

18000 руб.

06.10.2023    10692    25    6    

55

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

5400 руб.

17.05.2024    7649    20    12    

51

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

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

10000 руб.

10.11.2023    6616    18    2    

44

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

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

3600 руб.

14.01.2013    180840    1101    0    

874

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15710    3    12    

38

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

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

5000 руб.

07.02.2018    100753    241    97    

300

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

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

2400 руб.

24.09.2019    24229    17    15    

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

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

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

какой модуль из какого объекта тянется - было бы вообще огонь!
gortol; Alish009; a_plastinin; +3 Ответить
2. quazare 3706 23.08.22 14:46 Сейчас в теме
(1) интересно вы про ЕДТ написали - это как построить "отношения метаданных", но без реквизитов. а "цепляться" за что?)
3. malikov_pro 1307 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 1082 23.08.22 20:16 Сейчас в теме
Прекрасное решение! Для документирования и исследования - самое то!

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

Если вывод заменить в поле HTML, то можно добавить функциональности: панорамирование, зуммирование и т.д.
a_plastinin; Disorder777; Serg O.; +3 Ответить
5. Serg O. 270 24.08.22 07:47 Сейчас в теме
Хороший доклад был от Андрея Овсянкина
."Донесение здравого смысла до заказчика"
Infostart Event2021
в том числе там и про PlantUML было
https://youtu.be/Cr6R3LXKw9o
twiny; a_plastinin; +2 Ответить
6. malikov_pro 1307 24.08.22 10:58 Сейчас в теме
(4) "Предполагается выложить проект на github?" - выложено, ссылка явно в статье не дана https://github.com/plastinin/diagramobject
"о можно добавить функциональности: панорамирование, зуммирование и т.д." - в какой статье описано как сделать?
twiny; 300_po_vstrechke; a_plastinin; +3 Ответить
9. kalyaka 1082 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 1082 24.08.22 22:14 Сейчас в теме
(9)Это еще не все, на элементы графической схемы можно навешать свои обработчики, например по клику.
PS: Да, вставка примера кода с тегами html - та еще задачка :)
7. 300_po_vstrechke 1693 24.08.22 16:09 Сейчас в теме
Плюсую предыдущему оратору, где есть подобное описание?
Ещё бы для неуправляемых форм...
mell0rn; a_plastinin; +2 Ответить
8. a_plastinin 264 24.08.22 17:39 Сейчас в теме
(7)
Плюсую предыдущему оратору, где есть подобное описание.


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


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

Можно попросить вас зарегистрировать ошибку в Issues? Идеально если приложите сгенерированный код для отладки.
18. Lemmonbri 124 25.08.22 11:58 Сейчас в теме
(14) Зарегистрировал, развлекайтесь :)
19. a_plastinin 264 25.08.22 11:58 Сейчас в теме
15. Lancelot-2M 115 25.08.22 11:29 Сейчас в теме
Делал я такую штуку (или подобную) на graphviz. Эта красивее и лучше, если работает без ошибок.
Добавить бы статистику по количеству объектов и связей, 2 ползунка - фильтра по количеству объектов и связей - и годный stand-alone инструмент будет. Я б скачал)))
16. a_plastinin 264 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 124 28.10.22 15:55 Сейчас в теме
Я так и не понял как свои иконки сделать, а именно: как png перевести в спрайты. Прочитал доки на plantuml, но так и не разобрался. Хотел добавить значки форм и реализовать диаграммку форм. Если по человечески объясните - буду благодарен.
25. a_plastinin 264 28.10.22 15:59 Сейчас в теме
(24) привет!

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

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


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

- красный квадрат
* черная точка
+ зеленая точка
35. Serg O. 270 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. 270 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/"
38. Sergey03 10.04.24 15:15 Сейчас в теме
Добрый день, в настройках указал сервер "plantuml.com"
- ресурс "/plantuml/png/". Возвращает код состояния 301,
Если сервер "www.plantuml.com"
- ресурс "/plantuml/png/". Возвращает код состояния 400, смотрите скрин. Подскажите как диагностировать в чем проблема.
Прикрепленные файлы:
39. H2k 22.05.24 13:47 Сейчас в теме
Файлы библиотек проекта недоступны через ссылку https://raw.githubusercontent.com/plastinin/1ce-icons-for-plantuml/extended/dist/
Вариант - развернуть проект на доступном для сервиса plantuml.com сайте, или закрутить все внутри своей инфраструктуры, подняв plantuml.com в докер-контейнере (выше была ссылка на мануал)
Оставьте свое сообщение