Как быстро перейти к описанию открываемой формы в дереве метаданных из модуля 1С:Предприятия?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке и отладке конфигураций в 1С:Предприятии, особенно при работе с большим объемом кода, часто возникает необходимость быстро найти определение открываемой формы в дереве метаданных прямо из просматриваемого модуля. Мы сталкиваемся с ситуацией, когда в коде модуля видим вызов функции, например, ОткрытьФорму(), с указанием имени формы в виде строки: "Справочник.ШтатноеРасписание.ФормаОбъекта". Наша задача — не просто открыть эту форму в режиме предприятия, а перейти к ее описанию в дереве метаданных конфигуратора. Разберем, какие инструменты и подходы помогут нам в этой задаче.

Начнем с анализа встроенных средств классического конфигуратора 1С:Предприятия, затем перейдем к возможностям сторонних инструментов и интегрированной среды разработки 1C:Enterprise Development Tools (EDT), чтобы понять, как решить эту проблему максимально эффективно.

Встроенные средства классического конфигуратора 1С:Предприятия

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

  1. Горячая клавиша F12 (Перейти к определению)

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

    Однако, когда речь идет о переходе к форме, указанной строкой (например, "Справочник.ШтатноеРасписание.ФормаОбъекта"), F12 не всегда срабатывает корректно. Как отмечают опытные разработчики, F12 работает для модулей и для описания объектов, но «для форм не всегда». Это означает, что если мы установим курсор на строке с именем формы, как в нашем примере, F12, скорее всего, не выполнит желаемого действия. Это связано с тем, что конфигуратор не всегда распознает строковое представление имени формы как прямую ссылку на объект конфигурации для перехода.

    Если F12 все же сработала и мы перешли к определению процедуры или функции в другом модуле (например, в общем модуле или модуле объекта), для возврата к исходному месту в коде, откуда был сделан переход, мы можем использовать комбинацию Ctrl + "-" (минус на цифровом блоке клавиатуры).

  2. Горячая клавиша Ctrl + T

    Комбинация клавиш Ctrl + T позволяет найти открытый объект в дереве конфигурации. Это может быть полезно для общей навигации по метаданным, но не решает нашей конкретной задачи. Если мы уже открыли форму или модуль, Ctrl + T поможет нам быстро найти этот элемент в дереве конфигурации. Однако, наша цель — перейти к форме по строковому имени, не открывая ее предварительно и не зная ее точного расположения в дереве. Таким образом, Ctrl + T — это вспомогательный инструмент, а не прямое решение.

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

Сторонние инструменты для повышения продуктивности

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

  1. Снегопат

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

    • Процесс работы: Когда мы используем Снегопат для перехода к форме по имени из строки, сначала открывается "Навигатор по метаданным" (внутренний инструмент Снегопата или аналогичный). После этого требуется дополнительный клик в этом навигаторе, чтобы завершить переход.
    • Результат перехода: Вместо того чтобы сразу показать нам описание формы в дереве метаданных, Снегопат открывает саму форму в редакторе (в режиме редактирования формы), а не ее расположение в дереве конфигурации.

    Хотя это «не совсем то, что нужно», это все же работающее решение. Оно позволяет быстро получить доступ к форме для ее модификации, но не дает прямого указания на местоположение в иерархии метаданных. На текущий момент Снегопат находится в стадии глубокой беты при переходе на x64 версию, что может влиять на стабильность и доступность некоторых функций.

  2. TurboConf

    TurboConf – еще одно мощное платное расширение для конфигуратора 1С, известное своей гибкостью и активной поддержкой со стороны автора. Мы провели уточнение у разработчика TurboConf относительно нашей задачи.

    Прямой возможности перейти к описанию формы по строковому имени в дереве метаданных через одну горячую клавишу в TurboConf напрямую нет. Однако предлагается обходной путь через промежуточный объект, который называется "Навигатор по метаданным" (возможно, это отдельный инструмент внутри TurboConf или его аналог). Мы можем попробовать следующий алгоритм:

    1. Выделяем фрагмент кода с именем формы, например, "Справочник.ШтатноеРасписание.ФормаОбъекта".
    2. Открываем "Навигатор по метаданным" (предполагаем, что у него есть своя горячая клавиша или пункт меню).
    3. Копируем выделенный фрагмент в этот навигатор.
    4. Затем инициируем переход к объекту внутри "Навигатора по метаданным".

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

Использование 1C:Enterprise Development Tools (EDT)

1C:Enterprise Development Tools (EDT) — это современная интегрированная среда разработки от 1С, основанная на платформе Eclipse. Она предлагает значительно более широкие возможности для навигации по коду и метаданным по сравнению с классическим конфигуратором.

Хотя EDT не упоминалась в контексте прямого решения нашей задачи с помощью одной горячей клавиши, ее функционал в целом направлен на повышение удобства работы разработчика и предоставляет мощные инструменты для навигации:

  1. Панель "Навигатор"

    В 1C:EDT мы можем очень быстро найти нужный объект в дереве конфигурации, используя встроенную строку поиска в панели "Навигатор". Поиск осуществляется не только по именам объектов, но также по их синонимам и представлениям. Это значительно упрощает поиск, даже если мы не помним точное название. Мы можем просто начать вводить часть имени формы (например, "ШтатноеРасписание.ФормаОбъекта"), и система мгновенно отфильтрует список, позволяя нам перейти к нужному элементу.

  2. Переход к объявлению (F3)

    В EDT мы используем клавишу F3 для перехода к определению процедуры или функции. Оно автоматически открывается в редакторе встроенного языка, позволяя нам немедленно начать анализ или модификацию. Для удобного возврата назад после такого перехода мы можем использовать кнопку "Назад" в командной панели EDT, что аналогично функции Ctrl + "-" в классическом конфигураторе.

  3. Быстрая схема модуля (Ctrl + O)

    Комбинация Ctrl + O в EDT открывает быструю схему модуля. Это диалоговое окно отображает все процедуры и функции, содержащиеся в текущем модуле. Мы можем начать вводить имя нужного элемента, чтобы отфильтровать список и быстро перейти к нему. Повторное нажатие Ctrl + O покажет ветку событий, что также является очень удобной функцией для навигации по структуре модуля.

  4. Снимки метаданных

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

Таким образом, хотя EDT и не дает прямого "горячего решения" для нашей задачи, ее общие возможности по навигации и поиску значительно превосходят классический конфигуратор, делая работу с большими конфигурациями гораздо более продуктивной.

Другие полезные горячие клавиши для работы с формами

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

  1. Переключение между вкладками формы и модуля

    В конфигураторе для управляемых форм мы можем быстро переключаться между вкладками "Форма" и "Модуль" с помощью комбинаций Alt + 1 (для формы) и Alt + 2 (для модуля). Это очень удобно, когда мы активно работаем как с визуальным представлением формы, так и с ее кодом. Для обычных форм используются комбинации Ctrl + PageDown и Ctrl + PageUp.

Обзор и выводы

Давайте подведем итоги по нашим изысканиям. Наша основная задача заключалась в поиске горячей клавиши, которая позволяла бы нам из строки кода, содержащей имя формы (например, "Справочник.ШтатноеРасписание.ФормаОбъекта"), перейти непосредственно к ее описанию в дереве метаданных конфигурации.

Мы выяснили, что в классическом конфигураторе 1С:Предприятия прямого и идеального решения этой задачи нет. Встроенные горячие клавиши, такие как F12 и Ctrl + T, имеют свои ограничения и не предназначены для такого специфического сценария использования.

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

Наконец, 1C:Enterprise Development Tools (EDT), хотя и не имеет одной волшебной горячей клавиши для нашей конкретной задачи, предоставляет мощный набор инструментов для поиска и навигации по метаданным, который в целом значительно повышает продуктивность разработчика. Если вы активно работаете с большими конфигурациями, переход на EDT может стать комплексным решением для многих задач по навигации и разработке.

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

← На главную