Как быстро найти кнопку и её программный обработчик в конфигураторе 1С:Предприятие

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

Каждый разработчик 1С регулярно сталкивается с задачей, когда в работающем интерфейсе программы (в режиме «1С:Предприятие») нужно быстро найти конкретную кнопку, понять, к какому объекту конфигурации она относится, и открыть исполняемый код, который запускается при её нажатии. В крупных и незнакомых конфигурациях визуальный поиск формы в дереве метаданных может занимать слишком много времени. В этой статье мы подробно разберем несколько эффективных методов быстрого поиска кнопок и их обработчиков в конфигураторе — от простейших штатных механизмов платформы до продвинутых инструментов отладки.

Метод 1. Использование режима «Информация для технического специалиста»

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

Если этот режим у вас не активен, его необходимо сначала включить. Для этого перейдем в Главное меню программы, выберем пункт «Настройки», далее перейдем в «Параметры» и установим флажок «Режим технического специалиста». После этого выполним следующие шаги:

  1. Откроем нужную форму с кнопкой в режиме «1С:Предприятие».
  2. В правом верхнем углу формы нажмем на кнопку главного меню формы (она выглядит как три вертикальные точки).
  3. В выпадающем списке выберем пункт «Информация для технического специалиста».
  4. Перед нами откроется окно с подробными метаданными текущей формы. Здесь мы увидим точный путь к объекту, например, Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаУправляемая.

Теперь, зная точное имя формы, мы можем легко найти её в конфигураторе. Для этого достаточно открыть конфигуратор, нажать комбинацию клавиш Ctrl + T или воспользоваться строкой поиска над деревом метаданных, ввести туда имя объекта и мгновенно позиционироваться на нужной форме.

Метод 2. Поиск обработчика через кнопку «Остановить» в режиме отладки

Бывают ситуации, когда форма открыта, кнопка перед нами, но мы не знаем, какой именно код выполняется при её нажатии. В этом случае на помощь приходит штатный механизм отладчика. Разберем по шагам, как «поймать» исполняемый код «на лету»:

  1. Запустим сеанс «1С:Предприятие» в режиме отладки из конфигуратора (клавиша F5).
  2. Откроем в пользовательском режиме ту форму, на которой находится целевая кнопка. Подготовимся к её нажатию.
  3. Переключимся назад в окно конфигуратора.
  4. На панели инструментов «Отладка» найдем и нажмем кнопку «Остановить» (она выглядит как синий значок паузы). С этого момента отладчик переходит в режим ожидания любого действия пользователя.
  5. Снова перейдем в окно «1С:Предприятие» и нажмем нашу кнопку на форме.
  6. Платформа мгновенно перехватит управление, приостановит работу интерфейса и перенесет нас в конфигуратор прямо на первую исполняемую строку кода внутри обработчика нажатия этой кнопки.

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

Метод 3. Трассировка с помощью замера производительности

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

Выполним следующие действия:

  1. В конфигураторе перейдем в меню «Отладка» и выберем пункт «Замер производительности» (или нажмем соответствующую кнопку на панели отладки). Замер начнется немедленно.
  2. Быстро перейдем в работающее приложение 1С и нажмем интересующую нас кнопку.
  3. Сразу после завершения операции вернемся в конфигуратор и повторно нажмем кнопку «Замер производительности» для его остановки.
  4. Перед нами откроется таблица с результатами замера, где будут перечислены абсолютно все строки кода, которые выполнились за это время.

Отсортировав таблицу по колонке «Количество вызовов» или «Число строк», мы легко определим стартовую процедуру модуля управляемой формы, с которой началось выполнение алгоритма при нажатии кнопки.

Метод 4. Как найти динамически создаваемые кнопки

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

В этом случае кнопка добавляется динамически в процедуре ПриСозданииНаСервере. Посмотрим на типичный пример кода, который создает такую кнопку на форме:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Создаем новую команду формы
    НоваяКоманда = Команды.Добавить("ВыгрузитьВФайл");
    НоваяКоманда.Действие = "ОбработчикВыгрузки";
    НоваяКоманда.Заголовок = "Выгрузить в XML";
    
    // Добавляем саму кнопку на командную панель формы
    НоваяКнопка = Элементы.Добавить("КнопкаВыгрузки", Тип("КнопкаФормы"), Элементы.КоманднаяПанельФормы);
    НовыйЭлемент.ИмяКоманды = "ВыгрузитьВФайл";
    
КонецПроцедуры

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

Метод 5. Использование внешних утилит и инструментов разработчика

Для профессиональной и быстрой работы с управляемыми формами опытные специалисты часто используют внешние инструменты, такие как комплекс «Инструменты разработчика» (ИР) и менеджер буфера обмена «ClipAngel».

Рассмотрим, как за несколько секунд открыть модуль формы с помощью этих инструментов:

  1. Находясь в нужной управляемой форме в режиме предприятия, нажимаем комбинацию клавиш Ctrl + Alt + E для вызова глобального меню разработчика ИР.
  2. В появившемся меню выбираем команду «Структура формы».
  3. В открывшейся форме структуры выполняем команду «Показать ссылку на модуль связанной формы» и копируем полученную ссылку в буфер обмена.
  4. Активизируем окно конфигуратора и нажимаем сочетание клавиш Alt + V для вызова программы ClipAngel. При зажатой клавише Alt кликаем по скопированной гиперссылке. Конфигуратор автоматически откроет модуль требуемой формы прямо на нужном месте.

Использование таких альтернативных инструментов позволяет существенно экономить рабочее время при отладке крупных систем и конфигураций ERP-класса.

← На главную