Введение
Данная разработка является наследником публикации Евгении Карук Декомпиляция управляемых форм и моих дополнений в Декомпилятор управляемых форм.
Здесь я добавил возможность добавления элементов и редактирования их свойств, как это делается в конфигураторе. Изменения пришлось делать настолько объемные, что я выделил обработку в отдельную публикацию.
Цель разработки
- Быстрое и автоматическое создание кода программного добавления элементов форм. А также, реквизитов, команд и элементов условного оформления.
- Редактирование свойств элементов и реквизитов через палитру свойств как в конфигураторе.
Порядок работы
1. Выбрать нужную форму в дереве метаданных слева*
Нужно учесть, что некоторые формы не предназначены для непосредственного открытия и будут выдавать ошибку при попытке получить форму. После дополнения конфигурации такую форму нужно открыть самостоятельно.
2. Справа выбираем закладку Элементы, Реквизиты, Команды или Условное оформление
3. Указываем нужный элемент и код сразу отобразится в центре
4. Если нужно сразу несколько элементов, выделяем их пометками и нажимаем Сформировать код.
* Сразу откроется форма для добавления необходимого кода в ПриСозданииНаСервере модуля формы:
Требуемая модификация конфигурации
Вариантов теперь несколько:
Автоматическое создание расширения:
Генерируется расширение, производится запуск дополнительного сеанса с этим расширением.
Такое решение принято в связи с тем, что перезапускать Предприятие когда открыто несколько форм очень неохота. Проще когда запустится дополнительный сеанс с Конструктором, в нем уже будут изменения из расширения.
Для программного создания нового расширения нужны идентификаторы метаданных формы. Их можно добыть из выгрузки конфигурации в файлы XML или нажать в конфигураторе на форме Ctrl-C. Обработка расшифрует содержимое и извлечет метаданные.
Для обработки содержимого буфера обмена используется внешняя компонента DynWrapX 2.2
Если вы выберет вариант выгрузки в файлы XML, то нужно учитывать, что большие конфигурации могут выгружаться долго, но свежая выгрузка каждый раз не нужна, главное, чтобы в ней была нужная форма для получения ее ГУИД.
Добавление вызова вручную:
Или нужно в модуль исследуемой формы в конец процедуры ПриСозданииНаСервере самостоятельно добавить код
Его необходимо добавить именно в конец процедуры, так как нужно, чтобы весь код программного дополнения элементов был уже выполнен. Даже лучше будет добавить его в расширение, так как код из расширений выполняется в последнюю очередь, а в каком-нибудь из них может быть дополнительное создание элементов.
Работа со свойствами:
Палитра свойств открывается правой кнопкой также как и в конфигураторе. Есть то, чего не хватает в конфигураторе - измененные свойства подсвечиваются цветом.
Элементы, реквизиты и команды можно не только редактировать, но и добавлять новые.
Не реализовано редактирование сочетаний клавиш и свойств динамических списков.
Объем доработок получился большим, если попадутся ошибки, пишите в ЛС, чтобы не перегружать комментарии.
Протестировано на платформе 8.3.25
Также обратите внимание на другие мои разработки:
Выгрузка загрузка данных XML адаптивная
Менеджер внешних обработок и отчетов