bdd2

Визуальное отображение структуры программного модуля 1С 8.*

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

Довольно часто возникает необходимость анализа незнакомого программного модуля (речь идет об 1С 8.*) и чтобы разобраться в его структуре, нужно потратить некоторое время, которого как всегда не хватает. Обработка позволяет быстрее разобраться в структуре модуля, формируя дерево вызовов процедур и функций модуля.

Просто скопируйте текст модуля в обработку и нажмите "Сформировать" - через несколько секунд структура модуля предстанет перед Вашим взором! При нажатии на строки дерева происходит позиционирование на соответствующей строке текста модуля.

Для корректной работы необходимо развернуть все группировки модуля (меню Текст - Группировка - Развернуть все группы).

Алгоритм устойчив к зацикливанию при перекрестных и рекурсивных вызовах.

Обработка конечно же не учитывает всех возможных стилей написания текста модулей (по английски например), но на типовых и им подобных по стилю написания работает. В процессе разбора текста могут возникать ошибки с сообщением номера строки (в обработке доступен переход к строке текста), в этом случае прямо в окне обработки закомментируйте или поправьте текст модуля (обычно необходимые правки очевидны) и перезапустите формирование структуры .

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

Наименование Файл Версия Размер
Анализ структуры модуля
.epf 9,22Kb
22.01.13
142
.epf 9,22Kb 142 Скачать

См. также

Добавить вознаграждение
Комментарии
0. Сергей (TSSV) 812 26.04.12 07:37 Сейчас в теме
Довольно часто возникает необходимость анализа незнакомого программного модуля (речь идет об 1С 8.*) и чтобы разобраться в его структуре, нужно потратить некоторое время, которого как всегда не хватает. Обработка позволяет быстрее разобраться в структуре модуля, формируя дерево вызовов процедур и функций модуля.

Перейти к публикации

1. djvu (djvu) 121 26.04.12 09:14 Сейчас в теме
{Форма.Форма.Форма(188)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
Если СтрТзВызовов.НомерСтроки < НомСтрКон И СтрТзВызовов.НомерСтроки > НомСтрНач Тогда
2. Герман (German) 919 26.04.12 09:22 Сейчас в теме
3. sergey_ts@list.ru (TSSV) 26.04.12 12:23 Сейчас в теме
(1) djvu, такая ошибка возникает, когда в тексте модуля есть нераскрытые группы. Выделите текст модуля, меню Текст - Группировка - Развернуть все группы. Сейчас исправлю...
4. Евгений Сосна (pumbaE) 510 26.04.12 12:26 Сейчас в теме
Procedure Тест()
EndProcedure
Не отработает.
Процедура 
       Тест()
КонецПроцедуры

Не отработает.

(2) а как отреагирует на такой код?
Procedure BeforeWrite(Cancellation)
	
	If DataExchange.Load Then 
		Return;
	EndIf;
	
	
EndProcedure

Procedure OnWrite()
	
	If DataExchange.Load Then
		Return;
	EndIf;
	
	If ValueIsFilled(Parent) Then
		MainObject = Parent.GetObject();
		LockDataForEdit(MainObject.Ref);
		MainObject.Write();
	EndIf;
	
EndProcedure
...Показать Скрыть

(2) еще:
Процедура ВвестиТекст(Перем1) 
	//ааа
КонецПроцедуры

Процедура ВвестиТекстНажатие(Элемент, Элемент2,  //// (Версия №) Начало Добавил сюда еще один параметр
	Элемент3
	//Комметарий
	)
	ВвестиТекст(Текст1С);
КонецПроцедуры
...Показать Скрыть
Для ВвестиТекстНажатие будет 3 параметра и третий будет Элемент3 ?
(2) Не увидел у вас определения контекста компиляции НаКлиенте, НаСервере ...
5. sergey_ts@list.ru (TSSV) 26.04.12 12:37 Сейчас в теме
(2) German, Спасибо! Вещь похожая, но не совсем. Насколько я понял, в приведенном инструменте анализируется каждая процедура/функция отдельно, а в моей разработке строится единое дерево вызовов модуля в целом. На первом уровне находятся не вызываемые в модуле процедуры/функции и дальше вглубь все остальные. Таким образом можно сразу найти "точки входа" и от них уже разбирать модуль "вглубь". Оценил качество проработки деталей - есть к чему стремиться )
6. sergey_ts@list.ru (TSSV) 26.04.12 12:40 Сейчас в теме
(4) pumbaE, Согласен, но код открытый! Для типовых и им подобных по стилю срабатывает - я сам пользуюсь :)
7. Герман (German) 919 26.04.12 12:41 Сейчас в теме
(5) нет анализируется весь модуль, упор на взаимосвязь процедур
8. sergey_ts@list.ru (TSSV) 26.04.12 12:44 Сейчас в теме
(7) German, Но единого дерева нету на картинке - на первом уровне все процедуры списком , как и в исходном модуле, а внутри что вызывает и откуда вызывается...
9. Александр Степанов (stal76) 354 26.04.12 13:43 Сейчас в теме
10. sergey_ts@list.ru (TSSV) 26.04.12 18:11 Сейчас в теме
(9) stal76, впечатляет! Но чтобы начать ей пользоваться, нужно пройти курс обучения наверное... "Просто скопируйте текст модуля в обработку и нажмите "Сформировать" - через несколько секунд структура модуля предстанет перед Вашим взором." - это все руководство пользователя ))
11. alevi (1Cynep4eJIoBek) 28.04.12 11:27 Сейчас в теме
поюзай плаг для тоталкома, он раскрывает конфигу как архив, откуда можно вытянуть модули )) попробуй сделать, обработку не копипастом, а просто при указании cf-ки, скачать не могу у меня денег на счету нет ((( так бы протестил подсказал, вобще вещь нужная! +
12. Анатолий Бритько (headMade) 130 02.05.12 22:56 Сейчас в теме
(11) alevi,
а где можно взять этот плагин для Total Comm?
13. Дмитрий Павлик (DimaP) 55 04.05.12 09:39 Сейчас в теме
Подожду, когда рюшечки появятся )))
14. Валентин Бомбин (so-quest) 121 04.05.12 15:20 Сейчас в теме
Странная штука. Не понятно зачем нужна. Анализа модуля толком нет. Но плюс все же дам. Ибо всяко лучше печатной формы счета-фактуры


Функция А() экспорт
Выполнить("Б");
КонецФункции


Функция Б() экспорт
Выполнить("С");
КонецФункции


Функция С() экспорт
Выполнить("А");
КонецФункции

Ну и над таким стоит подумать. Хотя бы просто сообщать что в тексте функции есть "Выполнить"
15. Дмитрий Леонов (Psylocibine) 20.05.12 22:51 Сейчас в теме
Думаю, может быть полезно при освоении нетиповых, плюс.
16. andpyxa (andpyxa) 29.08.13 13:32 Сейчас в теме
Отказывается показывать процедуру ОбработкаПроведения из модуля документа,проверял на нескольких типовых ?