Каждый разработчик 1С регулярно сталкивается с задачей, когда в работающем интерфейсе программы (в режиме «1С:Предприятие») нужно быстро найти конкретную кнопку, понять, к какому объекту конфигурации она относится, и открыть исполняемый код, который запускается при её нажатии. В крупных и незнакомых конфигурациях визуальный поиск формы в дереве метаданных может занимать слишком много времени. В этой статье мы подробно разберем несколько эффективных методов быстрого поиска кнопок и их обработчиков в конфигураторе — от простейших штатных механизмов платформы до продвинутых инструментов отладки.
Рассмотрим самый быстрый способ узнать имя управляемой формы, на которой расположена интересующая нас кнопка. Начиная с современных версий платформы 1С:Предприятие 8.3, на замену привычному меню «Все функции» пришел режим «Информация для технического специалиста».
Если этот режим у вас не активен, его необходимо сначала включить. Для этого перейдем в Главное меню программы, выберем пункт «Настройки», далее перейдем в «Параметры» и установим флажок «Режим технического специалиста». После этого выполним следующие шаги:
Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаУправляемая.Теперь, зная точное имя формы, мы можем легко найти её в конфигураторе. Для этого достаточно открыть конфигуратор, нажать комбинацию клавиш Ctrl + T или воспользоваться строкой поиска над деревом метаданных, ввести туда имя объекта и мгновенно позиционироваться на нужной форме.
Бывают ситуации, когда форма открыта, кнопка перед нами, но мы не знаем, какой именно код выполняется при её нажатии. В этом случае на помощь приходит штатный механизм отладчика. Разберем по шагам, как «поймать» исполняемый код «на лету»:
F5).Важное примечание: Этот способ идеально работает для большинства кнопок, однако в базах с интенсивным фоновым обменом или частым срабатыванием обработчиков ожидания (таймеров) отладчик может случайно остановиться на коде фонового задания или системной процедуры. В таком случае просто продолжим выполнение (клавиша F5) и попробуем нажать кнопку еще раз.
Проанализируем еще один классический способ поиска исполняемого кода — замер производительности. Этот вариант особенно хорош, когда нажатие кнопки запускает сложную цепочку процедур и функций в разных общих модулях, и нам нужно увидеть полную картину вызовов.
Выполним следующие действия:
Отсортировав таблицу по колонке «Количество вызовов» или «Число строк», мы легко определим стартовую процедуру модуля управляемой формы, с которой началось выполнение алгоритма при нажатии кнопки.
Часто начинающие разработчики сталкиваются с трудностью: они открывают форму в редакторе конфигуратора, но нужной кнопки на ней физически нет. Выясним причину этой проблемы. Дело в том, что элементы интерфейса могут создаваться программно в момент открытия формы.
В этом случае кнопка добавляется динамически в процедуре ПриСозданииНаСервере. Посмотрим на типичный пример кода, который создает такую кнопку на форме:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Создаем новую команду формы
НоваяКоманда = Команды.Добавить("ВыгрузитьВФайл");
НоваяКоманда.Действие = "ОбработчикВыгрузки";
НоваяКоманда.Заголовок = "Выгрузить в XML";
// Добавляем саму кнопку на командную панель формы
НоваяКнопка = Элементы.Добавить("КнопкаВыгрузки", Тип("КнопкаФормы"), Элементы.КоманднаяПанельФормы);
НовыйЭлемент.ИмяКоманды = "ВыгрузитьВФайл";
КонецПроцедуры
Если вы подозреваете, что кнопка создается динамически, выполните глобальный текстовый поиск по конфигурации (сочетание клавиш Ctrl + Shift + F). В строке поиска укажите заголовок кнопки в кавычках или имя команды, которое вы увидели на форме, ограничив область поиска только управляемыми формами и общими модулями.
Для профессиональной и быстрой работы с управляемыми формами опытные специалисты часто используют внешние инструменты, такие как комплекс «Инструменты разработчика» (ИР) и менеджер буфера обмена «ClipAngel».
Рассмотрим, как за несколько секунд открыть модуль формы с помощью этих инструментов:
Ctrl + Alt + E для вызова глобального меню разработчика ИР.Alt + V для вызова программы ClipAngel. При зажатой клавише Alt кликаем по скопированной гиперссылке. Конфигуратор автоматически откроет модуль требуемой формы прямо на нужном месте.Использование таких альтернативных инструментов позволяет существенно экономить рабочее время при отладке крупных систем и конфигураций ERP-класса.