• ОФОРМИТЬ ПОДПИСКУ

Бизнес [Инфостарт] Генерация кода для программного создания формы из XML-файла формы (2025)

Gatsby

ВЕЧНЫЙ
Регистрация
10 Окт 2018
Сообщения
50,193
Реакции
261,147
Автор: Инфостарт
Название: Генерация кода для программного создания формы из XML-файла формы (2025)

1771011757623.png

Описание:
Иногда при доработках без снятия с поддержки требуется создавать программно достаточно сложные формы. Данная обработка позволяет по форме, созданной в конфигураторе, получить код для ее динамического (программного) формирования.

Внимание!
Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Иногда при доработках без снятия с поддержки требуется создавать программно достаточно сложную форму (или ее часть). Программное создание вручную напрямую ("НовыйЭлемент = Форма.Элементы.Добавить(...)") достаточно трудоемко, но реализованы несколько решений, сильно упрощающих программное формирование (например, ОбщийМодуль ДинамическоеФормированиеИнтерфейса от Дмитрия Котова).

Тем не менее, описывать программно сложные формы даже с применением таких инструментов достаточно долго и нудно. Как один из вариантов решения, предлагается данная обработка.

Для подготовки дополнительной части интерфейса (формы) можно "нарисовать" форму в конфигураторе, а код для ее построения сформировать предлагаемой обработкой.

Для генерации текста программы формирования необходимо сделать три шага:

1.Выгрузить в файлы эту форму стандартным способом (можно выгрузить существующую нужную форму в составе обработки, отчета, даже конфигурации);

2.Указать путь к xml-файлу формы;

3.Нажать кнопку "Генерация".

В результате в окне текстового документа получим исходный текст для программного формирования данной формы. В нем будут сформированы три основных функции: ГенерацияРеквизитовФормы, ГенерацияЭлементовФормы и ГенерацияКомандФормы; и необходимое количество пустых шаблонных процедур - действий команд формы и событий элементов формы. Копируем код из этого окна в свой модуль (либо в ПриСозданииНаСервере(), либо вызываем в каких-то событиях), и работаем.

Код строится для генерации трех составляющих формы: реквизитов формы, элементов формы (с событиями элементов), и команд формы. Не реализованы генерация кода для условного оформления, и для командной панели.

Для работы сформированного кода необходимо наличие (в конфигурации или расширении) общего модуля ДинамическоеФормированиеИнтерфейса (гитхаб) с именем ДФИ.

Некоторые ограничения (например, отсутствие формирования кода для Табличного Документа) обусловлены отсутствием такого функционала в модуле ДФИ. Картинки ограничены стандартной библиотекой, загруженные из файла не загружаются.

Для использования в доработках, где возможно дублирование реквизитов формы (смешение наименований существующих реквизитов, и добавляемых реквизитов) можно указать префикс для добавления к именам реквизитов.

Тестировалось на Комплексной Автоматизации 2.4, но функционал конфигурации и БСП не используется, поэтому теоретически работать должно в любой конфигурации.

Обработка обновлена - с помощью советов starik-2005 добавлено извлечение имен прикрепленных к событиям процедур. Добавлено программное формирование Условного Оформления.

Проверено на следующих конфигурациях и релизах: 1С:Комплексная автоматизация 2, релизы 2.4.14.181

Подробнее:

Скрытое содержимое доступно для зарегистрированных пользователей!


Скачать:

 
ВАЖНО:

Не оставляйте комментарии с просьбами обновить / заменить ссылку на скачивание или комментарии типа «404», «ошибка».

Для восстановления ссылки есть кнопки «Жалоба / Восстановить ссылку» в первом посте темы.

При нарушении Ваш комментарий будет удален, а Ваш аккаунт заблокирован на сутки. Пожалуйста, изучите правила нашего сайта.
Сверху Снизу