При разработке и отладке конфигураций в 1С:Предприятии, особенно при работе с большим объемом кода, часто возникает необходимость быстро найти определение открываемой формы в дереве метаданных прямо из просматриваемого модуля. Мы сталкиваемся с ситуацией, когда в коде модуля видим вызов функции, например, ОткрытьФорму(), с указанием имени формы в виде строки: "Справочник.ШтатноеРасписание.ФормаОбъекта". Наша задача — не просто открыть эту форму в режиме предприятия, а перейти к ее описанию в дереве метаданных конфигуратора. Разберем, какие инструменты и подходы помогут нам в этой задаче.
Начнем с анализа встроенных средств классического конфигуратора 1С:Предприятия, затем перейдем к возможностям сторонних инструментов и интегрированной среды разработки 1C:Enterprise Development Tools (EDT), чтобы понять, как решить эту проблему максимально эффективно.
В стандартном классическом конфигураторе 1С:Предприятия, к сожалению, отсутствуют прямые горячие клавиши для немедленного перехода к описанию формы в дереве метаданных по строке ее имени из модуля. Однако существуют некоторые возможности, которые могут быть полезны для навигации, хотя и не решают нашу задачу полностью.
Мы знаем, что горячая клавиша F12 является одним из наиболее часто используемых инструментов для навигации по коду. Она позволяет перейти к определению процедур, функций и объектов метаданных. Например, если курсор установлен на имени справочника, документа или общего модуля в коде, нажатие F12 обычно переводит нас к соответствующему объекту.
Однако, когда речь идет о переходе к форме, указанной строкой (например, "Справочник.ШтатноеРасписание.ФормаОбъекта"), F12 не всегда срабатывает корректно. Как отмечают опытные разработчики, F12 работает для модулей и для описания объектов, но «для форм не всегда». Это означает, что если мы установим курсор на строке с именем формы, как в нашем примере, F12, скорее всего, не выполнит желаемого действия. Это связано с тем, что конфигуратор не всегда распознает строковое представление имени формы как прямую ссылку на объект конфигурации для перехода.
Если F12 все же сработала и мы перешли к определению процедуры или функции в другом модуле (например, в общем модуле или модуле объекта), для возврата к исходному месту в коде, откуда был сделан переход, мы можем использовать комбинацию Ctrl + "-" (минус на цифровом блоке клавиатуры).
Комбинация клавиш Ctrl + T позволяет найти открытый объект в дереве конфигурации. Это может быть полезно для общей навигации по метаданным, но не решает нашей конкретной задачи. Если мы уже открыли форму или модуль, Ctrl + T поможет нам быстро найти этот элемент в дереве конфигурации. Однако, наша цель — перейти к форме по строковому имени, не открывая ее предварительно и не зная ее точного расположения в дереве. Таким образом, Ctrl + T — это вспомогательный инструмент, а не прямое решение.
Подводя итог по встроенным средствам, мы вынуждены констатировать, что классический конфигуратор 1С:Предприятия не предоставляет удобного и прямого механизма для решения нашей задачи. Программистам часто приходится прибегать к ручному поиску формы в дереве метаданных, что занимает время и снижает продуктивность.
Поскольку встроенные средства классического конфигуратора имеют свои ограничения, разработчики часто обращаются к сторонним инструментам, которые значительно расширяют функциональность среды разработки. В контексте нашей задачи, наиболее часто упоминаются Снегопат и TurboConf.
Снегопат – это популярное расширение для конфигуратора 1С, которое предлагает множество полезных функций, включая улучшенную навигацию. Мы выяснили, что Снегопат действительно может помочь в нашей задаче. Однако, как сообщают пользователи, его работа не всегда является идеальной:
Хотя это «не совсем то, что нужно», это все же работающее решение. Оно позволяет быстро получить доступ к форме для ее модификации, но не дает прямого указания на местоположение в иерархии метаданных. На текущий момент Снегопат находится в стадии глубокой беты при переходе на x64 версию, что может влиять на стабильность и доступность некоторых функций.
TurboConf – еще одно мощное платное расширение для конфигуратора 1С, известное своей гибкостью и активной поддержкой со стороны автора. Мы провели уточнение у разработчика TurboConf относительно нашей задачи.
Прямой возможности перейти к описанию формы по строковому имени в дереве метаданных через одну горячую клавишу в TurboConf напрямую нет. Однако предлагается обходной путь через промежуточный объект, который называется "Навигатор по метаданным" (возможно, это отдельный инструмент внутри TurboConf или его аналог). Мы можем попробовать следующий алгоритм:
"Справочник.ШтатноеРасписание.ФормаОбъекта".Этот подход также требует нескольких шагов, но предоставляет возможность более точного поиска и перехода. Для более детальной информации и проверки актуальности функций, всегда рекомендуем связаться с автором TurboConf или скачать демонстрационную версию, которая часто предоставляет месяц бесплатного использования.
1C:Enterprise Development Tools (EDT) — это современная интегрированная среда разработки от 1С, основанная на платформе Eclipse. Она предлагает значительно более широкие возможности для навигации по коду и метаданным по сравнению с классическим конфигуратором.
Хотя EDT не упоминалась в контексте прямого решения нашей задачи с помощью одной горячей клавиши, ее функционал в целом направлен на повышение удобства работы разработчика и предоставляет мощные инструменты для навигации:
В 1C:EDT мы можем очень быстро найти нужный объект в дереве конфигурации, используя встроенную строку поиска в панели "Навигатор". Поиск осуществляется не только по именам объектов, но также по их синонимам и представлениям. Это значительно упрощает поиск, даже если мы не помним точное название. Мы можем просто начать вводить часть имени формы (например, "ШтатноеРасписание.ФормаОбъекта"), и система мгновенно отфильтрует список, позволяя нам перейти к нужному элементу.
В EDT мы используем клавишу F3 для перехода к определению процедуры или функции. Оно автоматически открывается в редакторе встроенного языка, позволяя нам немедленно начать анализ или модификацию. Для удобного возврата назад после такого перехода мы можем использовать кнопку "Назад" в командной панели EDT, что аналогично функции Ctrl + "-" в классическом конфигураторе.
Комбинация Ctrl + O в EDT открывает быструю схему модуля. Это диалоговое окно отображает все процедуры и функции, содержащиеся в текущем модуле. Мы можем начать вводить имя нужного элемента, чтобы отфильтровать список и быстро перейти к нему. Повторное нажатие Ctrl + O покажет ветку событий, что также является очень удобной функцией для навигации по структуре модуля.
EDT использует механизм снимков метаданных. Этот механизм значительно ускоряет переключение между ветками репозитория в больших конфигурациях. За счет этого сокращается время загрузки вторичных данных проекта, что косвенно влияет на общую производительность работы и скорость навигации.
Таким образом, хотя EDT и не дает прямого "горячего решения" для нашей задачи, ее общие возможности по навигации и поиску значительно превосходят классический конфигуратор, делая работу с большими конфигурациями гораздо более продуктивной.
Помимо рассмотренных вариантов, существуют и другие полезные горячие клавиши, которые хотя и не решают нашей первоначальной задачи о переходе к форме по имени из кода, но значительно облегчают работу с формами в конфигураторе:
В конфигураторе для управляемых форм мы можем быстро переключаться между вкладками "Форма" и "Модуль" с помощью комбинаций Alt + 1 (для формы) и Alt + 2 (для модуля). Это очень удобно, когда мы активно работаем как с визуальным представлением формы, так и с ее кодом. Для обычных форм используются комбинации Ctrl + PageDown и Ctrl + PageUp.
Давайте подведем итоги по нашим изысканиям. Наша основная задача заключалась в поиске горячей клавиши, которая позволяла бы нам из строки кода, содержащей имя формы (например, "Справочник.ШтатноеРасписание.ФормаОбъекта"), перейти непосредственно к ее описанию в дереве метаданных конфигурации.
Мы выяснили, что в классическом конфигураторе 1С:Предприятия прямого и идеального решения этой задачи нет. Встроенные горячие клавиши, такие как F12 и Ctrl + T, имеют свои ограничения и не предназначены для такого специфического сценария использования.
Сторонние инструменты, такие как Снегопат и TurboConf, предлагают решения, которые, хотя и не являются идеальными "в один клик", значительно облегчают навигацию. Снегопат позволяет перейти к самой форме (открывает ее в редакторе), но требует дополнительного клика в навигаторе. TurboConf предлагает обходной путь через "Навигатор по метаданным", который также подразумевает несколько шагов, но может быть более точным.
Наконец, 1C:Enterprise Development Tools (EDT), хотя и не имеет одной волшебной горячей клавиши для нашей конкретной задачи, предоставляет мощный набор инструментов для поиска и навигации по метаданным, который в целом значительно повышает продуктивность разработчика. Если вы активно работаете с большими конфигурациями, переход на EDT может стать комплексным решением для многих задач по навигации и разработке.
Таким образом, разработчикам 1С приходится выбирать между использованием сторонних платных инструментов с некоторыми компромиссами или освоением более мощных, но и более сложных сред разработки, таких как EDT. В отсутствие идеального встроенного решения, каждый выбирает подход, наиболее соответствующий его потребностям и бюджету.