Снегопат https://snegopat.ru/forum/ |
|
Иерархия вызовов функций/процедур https://snegopat.ru/forum/viewtopic.php?f=3&t=317 |
Страница 1 из 2 |
Автор: | GrigoryPtashko [ 12 дек 2012, 13:11 ] |
Заголовок сообщения: | Иерархия вызовов функций/процедур |
Всем привет. Кто-нибудь испытывает потребность в скрипте, который бы показывал иерархию вызовов функции или процедуры? То есть из какой функции/процедуры была вызвана данная функция/процедура. Мне, например, при разборке кода БСП офигеть, как нужна эта функция. Когда пытаешься понять, кто кого вызывал и в этой цепочке больше 3 методов - это уже сложно держать в уме. Вот, например, как в IntellijIdea (это IDE для java) сделано https://dl.dropbox.com/u/8057759/screens/2012-12-12%2014_02_16.png Там, кстати, вообще 2 режиме: показ иерархии вызывающих методов и вызываемых. Самый используемый, конечно, показ вызывающих. |
Автор: | artbear [ 12 дек 2012, 14:06 ] |
Заголовок сообщения: | Re: Иерархия вызовов функций/процедур |
На инфостарте есть публикации автора stal76 и еще некоторых. посмотри/поищи |
Автор: | artbear [ 12 дек 2012, 14:06 ] |
Заголовок сообщения: | Re: Иерархия вызовов функций/процедур |
stal76 http://infostart.ru/public/77909/ http://www.stal76.ru/ak/ |
Автор: | sosnae [ 12 дек 2012, 16:42 ] |
Заголовок сообщения: | Re: Иерархия вызовов функций/процедур |
я уже приводил пример подключения внешней обработки на 1С и показа структуры модуля(в пределах пока одного модуля), думаю добавить туда иерархию вызовов можно без проблем. Проблема только в скорости, т.е. если посмотреть в процедуре ее вызовы можно и потом распарсить в глубь, то можно, а вот посмотреть откуда вызывается та или иная функция - необходимо считай запускать глобальный поиск, искать где присутствует вызов этой функции и потом строить дерево... Может взять artbear писал(а): http://www.stal76.ru/ak/ и добавить загрузку в базу модулей и функций сразу из конфигуратора?
|
Автор: | artbear [ 12 дек 2012, 16:50 ] |
Заголовок сообщения: | Re: Иерархия вызовов функций/процедур |
sosnae писал(а): Может взять artbear писал(а): http://www.stal76.ru/ak/ и добавить загрузку в базу модулей и функций сразу из конфигуратора?Отличная мысль. |
Автор: | GrigoryPtashko [ 12 дек 2012, 23:44 ] |
Заголовок сообщения: | Re: Иерархия вызовов функций/процедур |
Насколько я понял в http://www.stal76.ru/ak/ отчет по вызовам в пределах одного модуля есть. Но мне нужна именно структура вызовов по всей конфигурации. У меня платформа 8.2.16.368 и на ней Анализ конфигураций 1.0.1.15 не заводится - 1с-ка не хочет грузить cf-файл из этой поставки( Я отписал автору насчет апдейта. |
Автор: | sosnae [ 13 дек 2012, 01:06 ] |
Заголовок сообщения: | Re: Иерархия вызовов функций/процедур |
GrigoryPtashko писал(а): отчет по вызовам в пределах одного модуля есть там вроде эта информация в отчеты не выведенна, а в базе хранятся все вызовы. GrigoryPtashko писал(а): 1с-ка не хочет грузить cf-файл из этой поставки cf файл там нужен только для парсинга вызовов из интерфейсов, в принципе я и без него обхожусь.
|
Автор: | GrigoryPtashko [ 13 дек 2012, 11:46 ] |
Заголовок сообщения: | Re: Иерархия вызовов функций/процедур |
2 sosnae В общем натупил я вчера с АК. Всё завелось. И всё-таки - это не то, что мне нужно. В АК можно посмотреть иерархию вызовов, но только на один уровень вверх/вниз. Мне хотелось, чтобы было, как на картинке в первом посте - вся иерархия вызовов. Понятно, что для этого нужно писать отдельный движок. Который будет индексировать модуль и хранить граф вызовов. И инкрементально его апдейтить. Так это сделано в IntellijIdea. Она в начале индексирует код, это занимает немного времени. Потом просто поддерживает свои метаданные. Зато навигация там суперская. |
Автор: | sosnae [ 13 дек 2012, 11:59 ] |
Заголовок сообщения: | Re: Иерархия вызовов функций/процедур |
По мне так еще необходима трассировка вызовов из замера производительности или как-то еще, простым парсингом мы ведь не получим, что из общего модуля вызывается "ЗаполнитьСчетаУчета" в 3 документах. Ну на базе АК думаю можно делать такой функционал, даже для скрипта все равно где-то хранить необходимо результат первоначального парсинга, почему бы и не база на 1С... |
Автор: | orefkov [ 13 дек 2012, 14:40 ] |
Заголовок сообщения: | Re: Иерархия вызовов функций/процедур |
Я уже думал над этим. Собираюсь прикрутить sqlite к снегопату (маленькая база данных завсегда пригодится). Идея такова - один раз распарсиваем все модули конфы, переводя их в некий промежуточный формат, удобный для поиска. И укладываем все во внешнюю базу sqlite. Потом уже быстренько ищем по ней - кросс референции, параметры методов и тд и тп. Надо только с этими итд итп более детально определится, чтобы промежуточный формат для поиска правильный сделать. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |