Добрй день, друзья.
Недавно столкнулся с задачей, которую невозможно решить, да и не нужно решать. Но все-таки "Мы сами знаем, что она не имеет решения, мы хотим знать, как ее решать".
Развлечения ради набросал небольшую функцию, которая определяет, на какой странице какой панели находится тот или иной элемент управления.
В приложении обработка (запускается в обычном приложении, любая конфигурация), которая по кнопке "Открыть форму" показывает сложную форму с панелями, а по кнопке "Проанализировать форму" показывает принадлежность элементов к панелям и страницам. Панель с именем "_Форма" - это панель самой формы (ЭтаФорма.Панель).
Понятно, что анализ занимает некоторое время, но, в принципе, результат можно закешировать в сеансе и не тратить время на анализ при повторном использовании (как я и делаю).
Код не использует внешних компонент.
И важно понимать, что ЭТОТ КОД ЯВЛЯЕТСЯ ЧИСТОЙ ВОДЫ "ТРИКСОМ" И БАЗИРУЕТСЯ НА НЕОЧЕВИДНЫХ ОСОБЕННОСТЯХ ПЛАТФОРМЫ. НЕ ИСПОЛЬЗУЙТЕ ЕГО В ПРОДАКШНЕ, ЛУЧШЕ ПРИШЛИТЕ В КОМПАНИЮ 1С РЕПОРТ О НЕДОСТАЮЩЕМ ФУНКЦИОНАЛЕ.
А лучше переходите на современные технологии. Для вас же делают управляемые формы, мобильные приложения и прочую разную крутотень. Стыдно, граждане!
Для тех, кто глух к неумолимой поступи прогресса, скажу, что суть способа описана в комментарии к функции. Который я приведу тут:
// Функция определяет, к какой панели и странице принадлежит тот или иной элемент.
// Определить, к какой странице какой панели принадлежит тот или иной элемент формы, невозможно,
// но мы пойдем таким путем -
// будем по очереди удалять все страницы всех панелей и каждый раз получать полный список
// оставшихся элементов (слава богу, они удаляются вместе со страницей).
// По разнице между полным списком и оставшимися после удаления элементами мы поймем, какие же элементы
// были на какой странице.