Навигация по модулям

При разработке больших конфигураций важное значение имеет возможность быстро перемещаться по телу модуля, находить нужные процедуры, анализировать цепочки вызываемых процедур вверх или вниз от того места, где вы находитесь, планировать доработки модулей и так далее. Для этого в 1C:EDT существует несколько инструментов, которые вы можете использовать удобным вам образом.

Переходы по структуре модуля

Панель Схема показывает вам структуру модуля, открытого в редакторе встроенного языка.

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

Если в модуле присутствуют области, выделенные инструкциями препроцессора, то они также показываются в схеме, группируя входящие в них процедуры.

Список процедур стандартно отсортирован в том порядке, в котором они находятся в модуле. Однако вы можете отсортировать его в алфавитном порядке для быстрого визуального поиска нужных процедур.

Таким образом, если вы находитесь внутри длинной процедуры, панель Схема показывает вам ее имя. А если вам нужна другая процедура из этого же модуля, вы можете перейти к ней одним кликом в этой панели.

Быстрый переход к известной процедуре

Если вы знаете, как называется нужная вам процедура, и не хотите отрываться от редактирования модуля, листать список процедур в панели Схема, то можете воспользоваться быстрой схемой модуля.

Чтобы открыть быструю схему, нажмите Ctrl+O. Будут показаны все процедуры и функции модуля таким же образом, как они показываются в панели Схема.

Начните вводить имя процедуры/функции, и подходящие элементы сразу будут показаны в схеме.

Стрелками вверх и вниз вы можете выбрать нужный элемент и нажать Enter. Курсор редактора будет установлен на объявление выбранной процедуры/функции.

Переход к связанным процедурам

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

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

С помощью кнопок в командной панели вы можете переключить направление построения иерархии, чтобы увидеть вызываемую иерархию. Дважды кликнув на процедуре, вы откроете ее в редакторе встроенного языка.

Иерархия вызовов показывает только программные вызовы, выполняемые из других модулей. Но многие процедуры являются обработчиками тех или иных событий и вызываются непосредственно платформой в те или иные моменты функционирования прикладного решения.

В этом случае вы можете использовать другую команду контекстного меню — Find References.

Она откроет панель Поиск и покажет в ней похожую структуру вызывающих процедур.

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

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

Если на событие существуют подписки, они будут показаны в ветке этого события. Дважды кликнув на подписке, вы откроете ее процедуру в редакторе встроенного языка. А если после этого нажмете в командной панели Навигатор, то дерево объектов конфигурации покажет вам тот объект, который является владельцем этой процедуры.

Планирование доработок

Очень редко бывает так, что алгоритмы пишутся "за один присест". Чаще всего работа идет этапами, и важно не забыть, что осталось сделать и что планируется. В этом вам помогут задачи, которые вы можете увидеть в одноименной панели.

Часть задач 1C:EDT формирует автоматически по комментариям // TODO, // FIXME и // XXX, которые содержатся в тексте модулей. Дважды кликнув на задаче, вы перейдете к строке модуля, которая содержит этот комментарий.

Но кроме этого вы самостоятельно можете помечать строки модулей задачами, нажимая Добавить задачу... в контекстном меню панели меток редактора встроенного языка.

Сложный анализ модулей

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

Закладки можно расставлять самостоятельно, помечая ими важные для вас строки модуля. Например, откуда вы начали анализ вложенных процедур или где у вас возник вопрос в процессе отладки.

Чтобы установить закладку, нажмите Добавить закладку... в контекстном меню панели меток редактора встроенного языка. Чтобы быстро перейти к отмеченной строке модуля, дважды кликните на закладке в панели Закладки.