В процессе разработки и доработки конфигураций 1С часто возникает задача: выяснить, из каких точек системы вызывается конкретная экспортная процедура общего модуля и в каком контексте формируются передаваемые в неё параметры (например, Выборка или ТаблицаПроводок). Рассмотрим основные и продвинутые способы решения этой задачи.
Платформа 1С:Предприятие содержит специализированный инструмент контекстного поиска ссылок на методы. Этот метод позволяет найти вызовы без необходимости искать подстроки по всему коду.
ЗаполнитьТаблицуПроводок).Если поиск ссылок не дал результатов или нужно найти текстовое упоминание функции, воспользуемся глобальным поиском по текстам модулей.
ЗаполнитьТаблицуПроводок(. Если есть вероятность неявного вызова, укажем только имя процедуры: ЗаполнитьТаблицуПроводок.Наиболее точный метод узнать, какой именно алгоритм формирует входящие параметры (включая структуру Выборка), — это запуск режима отладки и отслеживание цепочки вызовов в реальном времени.
Выборка перед передачей в процедуру.Разберем ситуации, когда глобальный поиск по тексту конфигурации возвращает только само объявление процедуры, но логика в системе явно исполняется:
Выполнить() или Вычислить(): Код может вызывать процедуру динамически, где имя процедуры собирается из строк.ПодпискаНаСобытие. В этом случае текстового вызова в других модулях нет — имя процедуры задано в свойстве Обработчик подписки..epf/.erf файлов, либо снаружи через COM-соединение (COMConnector), HTTP- или Web-сервисы.Если точку останова не получается поймать вручную (например, при вызове из фонового задания или внешнего сервиса), применим программные методы фиксации контекста.
1. Фиксация стека вызовов через перехват ошибки в Журнал регистрации:
Добавим в начало исследуемой процедуры временно следующий код, который запишет полный путь вызова в Журнал регистрации без остановки работы пользователей:
Попытка
ВызватьИсключение "";
Исключение
ЗаписьЖурналаРегистрации("ОтладкаПоискаВызова",
УровеньЖурналаРегистрации.Информация,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
После выполнения операции в Журнале регистрации появится запись, содержащая полное дерево вызовов с указанием модулей и номеров строк.
2. Настройка автоматического подключения отладчика:
Убедимся, что в Конфигураторе включено автоматическое подключение к фоновым заданиям и внешним сеансам. Для этого перейдем в меню «Отладка» -> «Настройка подключения» -> «Автоматическое подключение» и установим флаги напротив пунктов «Фоновые задания», «HTTP-сервисы» и «Web-сервисы».