Снегопат

Обсуждение Снегопата
Текущее время: 22 ноя 2024, 23:21

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 12 дек 2012, 13:11 
Не в сети

Зарегистрирован: 16 ноя 2012, 14:11
Сообщения: 42
Всем привет.

Кто-нибудь испытывает потребность в скрипте, который бы показывал иерархию вызовов функции или процедуры? То есть из какой функции/процедуры была вызвана данная функция/процедура.
Мне, например, при разборке кода БСП офигеть, как нужна эта функция. Когда пытаешься понять, кто кого вызывал и в этой цепочке больше 3 методов - это уже сложно держать в уме. Вот, например, как в IntellijIdea (это IDE для java) сделано https://dl.dropbox.com/u/8057759/screens/2012-12-12%2014_02_16.png
Там, кстати, вообще 2 режиме: показ иерархии вызывающих методов и вызываемых. Самый используемый, конечно, показ вызывающих.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 дек 2012, 14:06 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
На инфостарте есть публикации автора stal76 и еще некоторых.
посмотри/поищи


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 дек 2012, 14:06 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
stal76 http://infostart.ru/public/77909/
http://www.stal76.ru/ak/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 дек 2012, 16:42 
Не в сети

Зарегистрирован: 20 дек 2011, 10:31
Сообщения: 588
Откуда: Украина, Запорожье
я уже приводил пример подключения внешней обработки на 1С и показа структуры модуля(в пределах пока одного модуля), думаю добавить туда иерархию вызовов можно без проблем. Проблема только в скорости, т.е. если посмотреть в процедуре ее вызовы можно и потом распарсить в глубь, то можно, а вот посмотреть откуда вызывается та или иная функция - необходимо считай запускать глобальный поиск, искать где присутствует вызов этой функции и потом строить дерево...
Может взять
artbear писал(а):
http://www.stal76.ru/ak/
и добавить загрузку в базу модулей и функций сразу из конфигуратора?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 дек 2012, 16:50 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
sosnae писал(а):
Может взять
artbear писал(а):
http://www.stal76.ru/ak/
и добавить загрузку в базу модулей и функций сразу из конфигуратора?

Отличная мысль.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 дек 2012, 23:44 
Не в сети

Зарегистрирован: 16 ноя 2012, 14:11
Сообщения: 42
Насколько я понял в http://www.stal76.ru/ak/ отчет по вызовам в пределах одного модуля есть. Но мне нужна именно структура вызовов по всей конфигурации.
У меня платформа 8.2.16.368 и на ней Анализ конфигураций 1.0.1.15 не заводится - 1с-ка не хочет грузить cf-файл из этой поставки( Я отписал автору насчет апдейта.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 дек 2012, 01:06 
Не в сети

Зарегистрирован: 20 дек 2011, 10:31
Сообщения: 588
Откуда: Украина, Запорожье
GrigoryPtashko писал(а):
отчет по вызовам в пределах одного модуля есть
там вроде эта информация в отчеты не выведенна, а в базе хранятся все вызовы.
GrigoryPtashko писал(а):
1с-ка не хочет грузить cf-файл из этой поставки
cf файл там нужен только для парсинга вызовов из интерфейсов, в принципе я и без него обхожусь.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 дек 2012, 11:46 
Не в сети

Зарегистрирован: 16 ноя 2012, 14:11
Сообщения: 42
2 sosnae
В общем натупил я вчера с АК. Всё завелось.
И всё-таки - это не то, что мне нужно. В АК можно посмотреть иерархию вызовов, но только на один уровень вверх/вниз. Мне хотелось, чтобы было, как на картинке в первом посте - вся иерархия вызовов.
Понятно, что для этого нужно писать отдельный движок. Который будет индексировать модуль и хранить граф вызовов. И инкрементально его апдейтить. Так это сделано в IntellijIdea. Она в начале индексирует код, это занимает немного времени. Потом просто поддерживает свои метаданные. Зато навигация там суперская.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 дек 2012, 11:59 
Не в сети

Зарегистрирован: 20 дек 2011, 10:31
Сообщения: 588
Откуда: Украина, Запорожье
По мне так еще необходима трассировка вызовов из замера производительности или как-то еще, простым парсингом мы ведь не получим, что из общего модуля вызывается "ЗаполнитьСчетаУчета" в 3 документах.

Ну на базе АК думаю можно делать такой функционал, даже для скрипта все равно где-то хранить необходимо результат первоначального парсинга, почему бы и не база на 1С...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 дек 2012, 14:40 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Я уже думал над этим. Собираюсь прикрутить sqlite к снегопату (маленькая база данных завсегда пригодится).
Идея такова - один раз распарсиваем все модули конфы, переводя их в некий промежуточный формат, удобный для поиска.
И укладываем все во внешнюю базу sqlite. Потом уже быстренько ищем по ней - кросс референции, параметры методов и тд и тп.
Надо только с этими итд итп более детально определится, чтобы промежуточный формат для поиска правильный сделать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB