Каталог решений - Генерация управляемой формы на основе обычной (proof of concept)

Генерация управляемой формы на основе обычной (proof of concept)

Генерация управляемой формы на основе обычной (proof of concept)

В наличии

В статье рассматривается техническая возможность автоматизированной генерации управляемой формы на основе обычной.

Категория:

Описание

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

Одним из самых сложных таких переходов для многих был/остается переход на управляемые формы. Хорошо, когда код почти типовой — базовую конфигурации переделала сама 1С.  Но даже тогда остается задача переписать весь багаж своих привычных обработок на УФ.

Для примера, поиск по infostart’у фразы " для управляемых форм " — "Найдено 4696". Невероятная работа проделана сообществом…

Управляемые формы — это не новый дизайн интерфейса, это концепция разделения работы между клиентом и сервером.

В обычных формах:

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

В управляемых формах (толстый клиент не рассматриваем как атавизм):

  • клиент обеспечивает только отображение данных, пользовательский ввод и простейшие вычисления.
  • синхронные и модальные вызовы запрещены даже на клиенте
  • работа с данными из СУБД возможна только на сервере
  • код должен быть разделен на методы по контексту выполнения (клиент, сервер), а также в местах обратных вызовов (callbacks), т.к. код должен быть асинхронным

 

А ТаблицуЗначений за что???

 

В начале работы с УФ это все казалось очень и очень сложным, инертность мышления долго мешала писать правильно (спасибо, что хотя бы многопоточности нет). Но ближе к теме:

 

Переписывание кода для УФ — нетривиальная задача. Ее может сделать только программист…

 

Т.е. о генерации валидного кода можно сразу забыть. А как быть с самой формой? В УФ форма — это XML-файл в недрах конфигурации, который можно как выгрузить из конфигурации, так и загрузить обратно… А XML-файл можно сгенерировать программно.

 

Создание управляемой формы — это всего лишь генерация XML-файла…

 

Для этого нам понадобится

1) Декомпозиция обычной толстой формы на элементы и анализ их свойств

С этим сообщество разработчиков 1С разобралось достаточно давно, например здесь

 

Дерево элементов формы "ФормаКонсоли" обработки "ирКонсольЗаданий".

 

2) Генерация XML-файлов по дереву элементов и свойств обычной формы

Здесь-то и были сосредоточены основные усилия.

 

— нужно было исследовательским путем определить названия всех свойств всех возможных элементов управляемой формы и их соответствие свойствам элементов обычной формы

 

has been added to your cart:
Оформление заказа