Внешняя обработка для 1С:Предприятие. По вставленному тексту модуля она собирает процедуры и функции, находит вызовы между ними и строит визуальную схему в формате PlantUML; текст схемы уходит на сервер рендеринга, а полученная картинка PNG показывается на форме. Сейчас это ранняя версия v.0.01 (27.04.2024): рабочий вид блоков — class. Виды card и rectangle, сохранение и загрузка настроек, темы оформления и разбор выгруженной конфигурации запланированы и в этой версии не работают.
Реализовано в модуле формы:
- разбор текста модуля по строкам: имя процедуры или функции, число параметров, признак «Экспорт», строки начала и конца, текст, директива контекста (если её нет, подставляется
&НаСервере); - пометки обработчиков с сигнатурой
(Элемент)и(Команда)записываются в таблицу, на схеме отдельно не рисуются; - поиск вызовов процедур и функций этого же модуля и стрелка возврата для функции;
- схема PlantUML вида
class(заголовок, направление, тип линий, толщина и цвет стрелок вызова и возврата, расстояние между блоками, сокращение длинных строк, жирное выделение имён); - при включённом «Отображать контекст» блоки группируются в два прямоугольника:
&НаКлиентеи всё остальное как&НаСервере; - сжатие текста в формате PlantUML и запрос PNG (по умолчанию
www.plantuml.com, ресурс/plantuml/png/, таймаут 20 секунд).
Ограничения этой версии:
- несколько операторов в одной строке через
;не разделяются; параметры, записанные столбиком, не собираются; - комментарий
//отрезается до конца строки, в том числе внутри кавычек; - вызов другой функции в
Возвратне разбирается; из несколькихВозвратберётся первый без слова «Неопределено»; - экспортность, параметры и обработчики команд на схеме не подписываются;
- ответ HTTP не проверяется: при ошибке сервера картинка может не появиться;
- модуль объекта — отдельная библиотека строковых функций; построение схемы её не вызывает.
Запланировано и не сделано: вид блоков card (блоки набрасываются, стрелки в коде закомментированы) и rectangle (функция возвращает схему без изменений). Переключатель вида блоков на форме только для чтения, по умолчанию стоит class. У кнопок «Сохранить настройки» и «Загрузить настройки» нет обработчиков. Остальной список планов — в техническом задании ниже; комментарии «На будущее» в модуле формы описывают те же незакрытые задачи.
В репозитории нет готового .epf: это выгрузка внешней обработки «Построитель схемы модуля» в файлы (1cMShem.xml и каталог 1cMShem). Её нужно загрузить в конфигураторе 1С из этих файлов (или собрать из них .epf) и открыть в режиме «1С:Предприятие». Нужен доступ к серверу рендеринга.
- На вкладке «Основная» вставьте текст модуля в поле «Текст модуля». Пустое поле останавливает команду сообщением «Заполните текст модуля».
- Нажмите «Сформировать схему».
- Текст PlantUML появится в поле «Схема», картинка — в поле «Графическая схема».
- На вкладке «Настройки» до формирования можно задать заголовок схемы, отображение контекста, расстояние между блоками, сокращение строк (по умолчанию до 100 символов), жирное выделение процедур и функций, тип линий, направление, цвет и толщину стрелок, а также сервер, ресурс и таймаут. Значения по умолчанию выставляются при открытии формы.
Файл Тестовая схема.plantuml — пустая заготовка @startuml / @enduml, не пример результата.
MIT. Copyright (c) 2024-2026 Дмитрий Непобедимый / DmNep.
Построитель схемы модулей
Техзадание
-
Создать разработку, которая бы строила визуальную схему модуля 1с.
1.1. Язык программирования - 1c Enterprise
1.2. Построитель схемы - PlantUML
...
На будущее.
- Добавить возможность обработки выгруженной в файлы конфигурации. И построение дерева всей конфигурации.
- Несколько стилей отображения PlantUML
- Несколько тем оформления (светлая/тёмная)
- Настройка отображения контекста процедуры или функции