gifts2017

Граф вызовов для модулей 1С + GML (YeD)

Опубликовал Павел Заяш (Pavl0) в раздел Программирование - Инструментарий

Модификация обработки http://infostart.ru/public/78976/ для работы с форматом GML, используемой программой для работы с графами Yed

Однажды я столкнулся с задачей, где надо было разобраться в обработке, которая содержала более 15000 строк в модуле и основной форме. Удержать в голове такую структуру было невозможно, и я обратился к Инфостарту, где нашел замечательную обработку: http://infostart.ru/public/78976/. Она мне очень помогла, но у нее был один недостаток. Графы, которые строятся с помощью dot.exe это просто картинки, если объектов много, они становятся труднообозримыми.

Поэтому, я сделал альтернативный вывод результата в формат GML, который можно загрузить в редактор графов YeD. YeD позволяет редактировать, масштабировать и автоматически перестраиваеть граф по различным алгоритмам, что очень удобно для анализа.

В отличие от исходной обработки работает только в обычном приложении — поленился написать для управляемого.

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

Наименование Файл Версия Размер Кол. Скачив.
ГрафВызовов82_ОбычноеПриложение.epf
.epf 39,59Kb
05.08.15
106
.epf 39,59Kb 106 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Капустин (kapustinag) 08.06.13 10:03
Суперполезно для документирования и для изучения незнакомых разработок. Есть требования к номеру версии редактора Yed?
2. Борис Илов (ilov_boris) 08.06.13 18:05
3. Михаил Кузнецов (hotey) 12.06.13 04:12
Здорово! Спасибо.
Предыдущей упомянутой обработкой пользовался около года - незаменимая вещь. Оказывается можно и заменить. :)
4. юрий гулидов (gull22) 14.06.13 10:13
Открыл обработку. Выбрал действие "Настройка построения графов". В ответ получил сообщение: "Не удалось найти установленную версию graphviz!". Нажал "ОК", открылась обработка "Настройка построения графов". Указал рабочий каталог, во 2-м поле требуется выбрать файл dot.exe. Но его нет в каталоге программы. Я правильно понимаю, что надо переименовать командный файл yEd?
5. Павел Заяш (Pavl0) 14.06.13 10:36
Там кнопка есть для Yed специально, на скриншоте отмечена. Yed, естественно, надо поставить.
6. Владимир Чаклин (vec435) 17.06.13 09:34
"YeD позволяет редактировать, масштабировать и автоматически перестраиваеть граф по различным алгоритмам, что очень удобно для анализа" - то что доктор прописал
7. Павел Заяш (Pavl0) 17.06.13 09:48
Там есть еще пару удобных инструментов, типа показа в отдельном окне всех потомков/предков. Программа хорошая.
8. Tsaregorodtsev (TSSV) 17.06.13 09:48
В свое время тоже разработал решение для анализа структуры вызвовов программного модуля, без использования дополнительного ПО: http://infostart.ru/public/126275/
9. UncleVader (UncleVader) 22.06.13 17:20
Идет построение графа ....
Error: D:\Temp\GraphData\graph.txt:1676: syntax error near line 1676
context: N001 >>> - <<< > N173 [color="black",label=""]
dot: graph is too large for cairo-renderer bitmaps. Scaling by 0.545944 to fit
Произошла ошибка!
Для продолжения нажмите любую клавишу . . .

что это за ограничение?
модуль в студию не влезет :)
10. as asd (edzz) 22.06.13 22:12
То же самое! Куда копать?

Error: D:\Temp\GraphData\graph.txt:1676: syntax error near line 1676
context: N001 >>> - <<< > N173 [color="black",label=""]
dot: graph is too large for cairo-renderer bitmaps. Scaling by 0.545944 to fit
Произошла ошибка!
11. Сергей Черниенко (Chernik) 28.06.13 09:38
(9) UncleVader, (10) edzz,
Похоже на пробел в конструкции "->"
12. Сергей Черниенко (Chernik) 28.06.13 10:37
Автору огромное спасибо за наводку. YeD - инструментище!!!
Shurgent; +1 Ответить
13. Александр Капустин (kapustinag) 14.08.13 10:45
(0) Если "натравить" эту обработку на обработку, имеющую одну форму, она покажет вызовы процедур из модуля объекта и модуля формы вместе, или только по-отдельности?
14. Павел Заяш (Pavl0) 14.08.13 11:02
(13) kapustinag, Когда мне надо было анализировать вызовы между модулем и формой я делал так:
1) брал текст модуля;
2) Добавлял разделитель разделов
////////////////////////////////////////////////////////////­////////////////////
// ФОРМА
3) Вставлял ниже модуль формы
4) Выбирал тип отчета "По секциям"

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

Т.е. надо немного пошаманить, но это занимает буквально минуту.
15. Николай Гончаров (JohnConnor) 26.02.14 10:54
Работает!
в связки с YeD нереально помогает !!!
16. Dima Neumoichev (Ndochp) 15.10.15 13:10
К сожалению не отличает вызовы к методам от вызовов функций внутри модуля. Например, есть у меня "очистить" и часто чищу коллекции в коде. Все валит в одну кучу. Думаю логично было бы не считать вызовом функции из таблицы то, что стоит после точки.
17. Михаил Кузнецов (hotey) 30.06.16 02:42
Вот аналог, который в управляемых формах работает: https://github.com/SergeFocus/1C-Functin-to-yEd
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа