Открытие системных форм платформы



В продолжении темы недокументированных возможностей и обработок.



Во вчерашнем инструменте используется подмена "встроенных" в платформу внешних обработок.

Активные пользователи, Журнал регистрации, Конструктор запросов и так далее.

Всё это внутри платформы лежит именно как внешние обработки 1С. И по специальному адресу подключаются в момент их вызова (внутри "Все функции").

Подробнее можно почитать здесь.



Но помимо таких "встроенных" внешних обработок, есть ещё и "встроенные" формы. Это, например, сама форма "Все функции". И форма редактирования списка значений. И панель избранного. И т.д. и т.п.

Таких форм много и они написаны на 1С. Т.е. интерфейс 1С использует формы, которые сделаны на 1С. Такая вот небольшая рекурсия 🔄



Где такие формы лежат и как их "достать" описано здесь.

Есть даже возможность их подменять, но об этом тссс...!



Но мы не будем ковыряться во внутренностях платформы. А лишь воспользуемся тем, что доступно любому разработчику из самого кода 1С. Например, открытие ряда таких форм =)

Для этого используется специальный системный адрес формы и необходимые для её работы параметры (если они нужны).



Например, вот так можно открыть форму "Все функции":

  ОткрытьФорму("sysForm:AllFunctionsForm");



А вот так панельку избранного:

    ОткрытьФорму("sysForm:FavoritesDlg", Новый Структура("alias", 1));



Чтобы можно было поиграться, я добавил возможность открытия системных форм в свой древний инструмент Менеджер открытых форм.

А заодно и выложил его на гитхаб. Код старый, много чего хочется переделать, но, как говорится, "главное, что работает".



Что позволяет делать обработка:

📍 Отлавливает открытые формы

📍 Открывать новые формы с указанием параметров

📍 Редактировать свойства формы и её элементов

📍 Просматривать и изменять значения реквизитов. Умеет работать в т.ч. с Компоновщиками и Деревьями\Таблицами

📍 По одной кнопке включать доступность на редактирование всей формы и её элементов

📍 Просматривать и редактировать настройки по данной форме в хранилище

📍 Для всего остального есть возможность выполнить произвольный код над "пойманной" формой



Обработка выручала меня множество раз. Когда нужно в рамках теста срочно что-то поменять в форме или посмотреть её содержимое, а в отладку лезть не хочется, долго или даже нет возможности. Ну и помогало определять имена "встроенных" в платформу обработок и форм. Например, чтобы понять, какое системное имя имеет форма "Все функции", нужно включить в моей обработке обновление данных с задержкой через N секунд и открыть "Функции для технического специалиста". Тогда Менеджер открытых форм поймает открытую форму "Все функции" и покажет её в панели.



Переходите на страницу Инфостарт и проект Гитхаб.

На Гитхабе можно скачать бесплатно, добавить предложение или зарегать ошибку.

Ну и поставить звёздочку, конечно 😁





@JuniorOneS