gifts2017

Граф вызовов для модулей 1С. Оптимизация числа серверных вызовов в управляемых формах 8.2.

Опубликовал Александр Степанов (stal76) в раздел Программирование - Практика программирования

Реализована обработка для построения графов вызовов модулей 1С 8.1/8.2. На основе этой обработки предлагается метод оптимизации числа серверных вызовов в управляемых формах 8.2.

Обработка позволяет по тексту модуля 1С 8.1/8.2 построить граф вызовов. В отличии от аналогичного отчета в Анализе конфигураций, обработка обладает большим числом настроек и не требует загрузки всех текстов модулей в специальную базу. Граф вызовов модуля позволяет:

  • Произвести оптимизацию числа серверных вызовов из управляемых форм 8.2.
  • Проследить цепочку вызовов, идущих из выбранной процедуры или наоборот, приводящих к процедуре.
  • Оценить степень запутанности программного кода и пр.

Обработка реализована для 8.1 и 8.2 в управляемом и обычном режиме.

Подробное описание возможностей обработки доступно здесь: http://www.stal76.ru/callgraph

Также, предлагается метод поиска клиентских обработчиков событий в управляемых формах, которые могут порождать лишние вызовы на сервер - http://www.stal76.ru/form82

 

Обновлено 19.06.2013. Обработка была доработана Pavl0, добавлена возможность использования программы построения графов Yed -http://infostart.ru/public/190199/

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

Наименование Файл Версия Размер Кол. Скачив.
CallGraph.zip
.zip 76,54Kb
19.06.13
380
.zip 76,54Kb 380 Скачать

См. также

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

Комментарии

1. Марк (webdiktor) 03.12.10 00:55
2. Александр Рытов (Арчибальд) 03.12.10 10:02
Имею к графам нежно-ностальгические ощущения. Так что плюс, конечно же.
3. Владимир Торгашов (tvn_job) 26.04.11 11:57
Для приложенного модуля выскакивает ошибка "Непредвиденное завершение цикла в строке 10044"
Прикрепленные файлы:
Процедура контроля остатков.txt
4. Владимир Торгашов (tvn_job) 26.04.11 12:09
Локализовал фрагмент, который не парсится.
Способ воспроизведения:

Нажимаю кнопку ввести текст, включаю опцию - обычный модуль.
Вставляю следующий текст и нажимаю кнопку Выполнить.
Выскакивает ошибка "Непредвиденное завершение цикла в строке 11".

Процедура ПроверитьОстатки(Выборка, Отказ, Заголовок, СтруктураПараметров)

Пока Выборка.Следующий() Цикл

ц_НачалоЦикла = 1;

Для Сч = ц_НачалоЦикла По 2 Цикл

КонецЦикла;

КонецЦикла;

КонецПроцедуры //ПроверитьОстатки
5. Александр Степанов (stal76) 26.04.11 12:49
(3) При копировании текста модуля исправьте имя переменной НачалоЦикла в строке 9958 на какое-нибудь другое. Ошибку в самой обработке постараюсь исправить в ближайшее время.
6. Илья (i132) 22.11.11 18:52
Большое спасибо за обработку.
Подскажите что делать чтобы выводились русские буквы?
7. Александр Степанов (stal76) 22.11.11 19:36
(6) Не совсем понятно где не выводятся русские буквы. На графе?
8. Илья (i132) 23.11.11 13:43
(7) да вместо букв на графе выводятся квадратики с символами по углам. Уже разобрался: лечится добавлением fontname="Arial" <= ГрафДобавитьПараметр(Параметры, "fontname", "Arial"); после Инфо.ИмяФункции.
(используется "Graphviz 2.28")

хотелось бы как-то более компактно предсавлять схему - например имя процедур разбивать по составным строчкам и потом еще перечислить параметры:

Граф
Добавить
Параметр
: Параметры
: Имя
: Свойство

Было бы здорово выделять не связанные блоки по вертикале - удобнее печататть, а еще чтобы можно было загрузить несколько модулей: Объета, Форм, общих модулей - после анализа текста модуля предлагалось добавтить текст формы или объекта или общего модуля
9. Александр Степанов (stal76) 24.11.11 12:31
(8) Были мысли перенести весь функционал этой обработки сюда http://infostart.ru/public/77909/ и уже там сделать возможность работы с несколькими модулями. Но пока этого делать не планирую.
10. Александр Никитин (ManyakRus) 12.12.12 10:55
Работает отлично :)
графы показались :)

Только графы рисуются не по порядку, все подряд (вызовы из функции),
если бы они рисовались по порядку - какая функция выполняется сначала слева, а какая потом правее (или цифрами), то было бы намного больше пользы, можно было бы изучать алгоритм по графам. Надеюсь что это можно доделать и тогда ещё круче будет :)
11. Александр Степанов (stal76) 12.12.12 11:39
(10) Для рисования графов используется программа Graphviz, она сама определяет в каком порядке размещать вершины графа, я задаю только топологию графа. Хотя может и есть способ передать каким-то образом порядок вершин, но я не нашел его.
12. Tsaregorodtsev (TSSV) 17.06.13 09:49
В свое время тоже разработал решение для анализа структуры вызвовов программного модуля, без использования дополнительного ПО: http://infostart.ru/public/126275/
13. Николай Гончаров (JohnConnor) 25.02.14 11:33
удобная вещь, спасибо автору
14. Алексей Сидоров (AlexiyI) 01.03.14 16:42
Сразу же после ввода текста модуля УФ нвчала выдавать предупреждения типа "Не найдено завершение процедуры ... тра-та-та...". Не обработана обрезка комментариев вконце строк типа "КонецПроцедуры //комментарий" и т.п.
Да, и еще на графе выводятся иероглифы (подсказка от i132 не сработала).
15. olga pt (pt_olga) 19.02.15 15:20
перестал работать сайт автора

автор, это уже навсегда??
16. Александр Кох (1с_Phil) 20.11.15 17:50
Не пойму как настроить, чтобы запустить? Нужны дополнительные файлы?
17. Александр Степанов (stal76) 21.11.15 00:56
(16) Во вложении справка по обработке.
Прикрепленные файлы:
callgraph.zip
1с_Phil; +1 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа