Идея состоит в реализации продолжения модуля(фреймворка) для программной доработки форм FormEditor (repo на git).
Сегодня хочу показать концепт того, как вижу дальнейшее развитие программной доработки форм.
На самом деле интересен фидбек и опираясь на него буду продолжать разработку.
Конечно, хотелось бы развития инструмента, в том числе и сообществом.
Думаю, стоит рассказать с самого начала...
Доработка типовой формы:
Допустим, у нас есть форма, находящаяся на поддержке, и нам надо ее доработать (логично предположить, что для дальнейшего обновления программная доработка имеет огромный выигрыш в перспективе).
Мы делаем ее копию и интерактивно "натыкиваем", что нам нужно:
А дальше начинается самое интересное, то, ради чего пишется этот тизер.
Далее к работе подключается обработка, которая сравнивает 2 формы и находит отличия:
А дальше отличия преобразуются в код....
Предварительно, визуально обработка будет выглядеть так:
Нужно выбрать форму эталонную и доработанную:
После выбора двух форм, автоматически проставляются галочки и генерируется код добавления элементов, который нужно вставить в эталонную форму...
Недостатки
- Для возможности выбирать форму, необходимо все же добавлять код в процедуру ПриСозданииНаСервере(), через который и будут получаться данные с формы.
- Для использования нужен будет отдельный модуль программной доработки форм. На модуль FormEditor я ориентируюсь из за того, что он позволит сократить количество строк кода при программном добавлении.
Особенности
- При сравнении форм не знаю, насколько глубоко нужно сравнивать формы, и глубокое сравнение может очень усложнить обработку, например, нужно ли обрабатывать ситуацию, когда элемент формы перемещен в другую группу, а группа перемещена в другую группу и.т.д. На текущий момент думаю, что нужно этим пренебречь и концентрироваться только на добавленных элементах.
- Отслеживание изменения свойств элементов пока под вопросом, пока не понимаю, нужно ли это.
- Для сокращения объема кода, нужен механизм расчета веса вызываемых методов фреймворка редактора форм.
Было бы вам интересно пользоваться таким решением?
Ссылки:
Референсная обработка: //infostart.ru/public/304736/
Обработка "FormCodeGenerator": Проект на GitHub
Статьи:
- FormCodeGenerator Программная доработка форм. Часть 1 (Режим работы "Палитра")
- FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5
Группа в телеграмм: https://t.me/FormCodeGenerator1c