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

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

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. dandykry 6 06.11.19 11:55 Сейчас в теме
Отдаленно похожее делал. Нужна была форма для отображения свойств элементов формы. Форма родилась, но успеть за развитием платформы не удалось (переименованием, дополнением, расширением свойств). В какой то новой платформе строка

Выполнить (ИмяРеквизитаФормы  + " = НекоеЗначение; ")

Перестала работать. Теперь необходимо писать
Выполнить ("ЭтотОбъект." + ИмяРеквизитаФормы  + " = НекоеЗначение; ")


Переписывать не стал и просто бросил. Жду когда расширения до ума доведут.

По поводу обработки-генератора. Думаю она все равно не сделает 100% работы. И даже 50% думаю не сумеет. Дело в том, что в обычных формах многое работало на привязках. В управляемых формах этого нет - все решается группами формы. Из-за этого все равно придется форму перерисовывать, чтобы она отображалась нормально. И лично я сделал бы это заново, а не перетаскивал лишнее из старой обработки. Из старой нужна только специфичная логика - запросы, заполнение документов, печать и пр. Все то, что к отображению данных на форме не относится по большей части
tormozit; A_Max; bulpi; +3 Ответить
2. user700211_a.straltsou 203 06.11.19 16:35 Сейчас в теме
(1)
По поводу обработки-генератора. Думаю она все равно не сделает 100% работы. И даже 50% думаю не сумеет. Дело в том, что в обычных формах многое работало на привязках. В управляемых формах этого нет - все решается группами формы. Из-за этого все равно придется форму перерисовывать, чтобы она отображалась нормально

Я с вами согласен в том плане, что если форма простая - ее легче нарисовать вручную. Но если сложная... Под спойлером "Список свойств" 38 свойств элементов управления, которые можно взять из старой формы
7. dandykry 6 07.11.19 07:18 Сейчас в теме
(2) Я писал и о простых, и о сложных формах. Особенно о формах, которые делал не сам лично.
На сколько я помню, элементы формы различаются и в свойствах, и в событиях. После генерации все равно придется это протыкивать и смотреть все ли работает как нужно, или теперь нужно даже то, что перенеслось переделывать, потому что теперь "это не работает так же" или теперь это не работает на клиенте и логику нужно тащить на сервер. Ко всему прочему конфигурация без БСП - это велосипеды, либо очень простая конфигурация. А внедрять БСП так или иначе придется, а это еще работа с формами.
Это все равно труд, как в том, чтобы разобраться в механизмах формы, как и в том, как это теперь будет работать, и как это теперь нужно переделать. Просто моё мнение - легче сделать заново. Сразу можно разбираться в реализованных механизмах и адаптировать их под управляемый интерфейс. Конечно в некоторых простых формах удобно.

Мысль очень напоминает "Конвертация информационных баз системы «1С:Предприятие 7.7»" - когда конфигурация 7.7 превращалась в 8.2. На мою память эту вещь я использовал всего 1 раз только для "попробовать". Реальные переводы делались руками, потому что дешевле по времени.

В целом, если Ваш конвертор появится в свет, то я скачаю его за стартмани, чтобы посмотреть реализацию и возможно заимствовать в будущем.
3. Perfolenta 194 06.11.19 18:01 Сейчас в теме
и когда, хоть приблизительно, можно ожидать инструмент?
4. user700211_a.straltsou 203 06.11.19 20:00 Сейчас в теме
(3) Зависит от загруженности. Пока могу ваши формы сконвертить, если в личку пришлете
5. Perfolenta 194 06.11.19 21:23 Сейчас в теме
(4) а в каком виде их можно прислать?
6. user700211_a.straltsou 203 06.11.19 23:42 Сейчас в теме
(5) epf или cf со списком нужных форм
17. Aparatus 17 28.01.20 16:14 Сейчас в теме
(6) Странно, что инструмент ещё не в массах, эта штука теперь обязана быть точно так же, как и, например консоль скд и прочие ништяки - у каждого. Спасибо автору за помощь, перенеслось всё просто идеально. Огромная благодарность. Жаль, что сконвертированный результат не пригодился постановщику задачи, но это к теме не совсем имеет отношения.
8. SerVer1C 381 07.11.19 08:21 Сейчас в теме
Идея интересная, не бросайте развивать её.
9. Eret1k 07.11.19 13:37 Сейчас в теме
"В начале работы с УФ это все казалось очень и очень сложным, инертность мышления долго мешала писать правильно (спасибо, что хотя бы многопоточности нет)."

Не только инертность.
Не было подхода MVC.
Когда во всем остальном мире девелопмента все активно начали использовать подход MVC, тут в виду закрытости мира 1С, не могли и представить альтернативы.
10. Cyberhawk 127 11.11.19 11:01 Сейчас в теме
Ну что, когда ждем ИР для тонкого клиента?
11. user700211_a.straltsou 203 11.11.19 12:48 Сейчас в теме
(10) Я не являюсь автором ИР и могу только помочь ее автору с конвертацией
12. tormozit 6325 20.11.19 09:22 Сейчас в теме
Посмотрел на картинки и на сгенерированную форму редактор объекта БД. Сразу бросилось в глаза
- контекстные меню встраиваются как командные панели
- некоторые таблицы со своими командными панелями не отображаются (например таблица результата в окне консоли запросов)
Согласен, что даже в текущем виде конвертор облегчает работу по переводу формы на управляемый вариант. Однако основные затраты в большинстве случаев все таки будут в переработке модуля и там даже частичный конвертор сделать будет намного сложнее.
13. user700211_a.straltsou 203 20.11.19 10:17 Сейчас в теме
(12)
контекстные меню встраиваются как к

- контекстные меню встраиваются как командные панели
исправлю, инструмент все еще в разработке
- некоторые таблицы со своими командными панелями не отображаются
не отображаются табличные поля без колонок. это стандартное поведение УФ
Спасибо за оценку работы и буду рад помочь в переводе ИР на УФ
14. tormozit 6325 20.11.19 10:24 Сейчас в теме
(13)
Получается у тебя некоторые таблицы с колонками конвертируются в таблицы без колонок?
ИР на управляемые формы переводить я не собираюсь. Но конвертор твой действительно будет полезен сообществу.
15. user700211_a.straltsou 203 20.11.19 10:45 Сейчас в теме
(14)
Получается у тебя некоторые таблицы с колонками конвертируются в таблицы без колонок?

Нет. В обработке "ирКонсольЗапросов" табличное поле "РезультатКоллекция" не имеет колонок Реквизиты Данные - пустой, реквизит ТипЗначения - ТаблицаЗначений (колонки создаются при отображении результатов РезультатКоллекция.Значение = мРезультатЗапроса.Выгрузить)

В управляемой версии получаем на форме элемент Таблица "РезультатКоллекция" без колонок, который в режиме просмотра формы не отображается.
16. tormozit 6325 20.11.19 10:52 Сейчас в теме
(15) Наверное тогда стоит в конверторе добавить настройку "создавать пустые колонки при отсутствии колонок в оригинале" - будет добавляться дочерний реквизит реквизита-коллекции и связанное с ним поле таблицы формы. Ведь для оценки корректности конвертации предпросмотр формы - самый эффективный способ.
18. cprit 569 14.09.20 10:57 Сейчас в теме
Добрый день!
Есть ли возможность пощупать самому на ваш конвертер форм? Хотя бы в прототипе.
19. user700211_a.straltsou 203 14.09.20 14:37 Сейчас в теме
(18) Пока не планирую выпускать в свободный доступ
20. tormozit 6325 14.09.20 14:59 Сейчас в теме
(18) Кажется задача не настолько уж сложна. Сделай управляемую форму, состоящую из всех типов элементов или найди навороченную готовую. Изучи устройство в xml: дерево элементов, список реквизитов и список команд. Сделай заготовку/пустышку управляемой формы и выгрузи ее в xml. Загрузи этот xml в построитель DOM. Бери любую реализацию построения дерева элементов обычной формы. Обходи это дерево и в построитель DOM пустышки управляемой формы добавляй соответствующие элементы структуры управляемой формы. Понятно, что будет много шероховатостей, но в целом первую рабочую версию получить можно будет думаю через 40 часов.
21. cprit 569 14.09.20 16:00 Сейчас в теме
(20) Все так. И решение может проще оказаться. Я со своей задачей и руками справлюсь-быстрее будет. Но вот насколько это будет востребовано сообществом - большой вопрос.
Из опыта работы с 1С-ным конвертером из 7.7 в 8.0 могу сказать, что проще было с нуля нарисовать, чем брать сконвертированное. Хотя по виду они были идентичны.
Тут как писалось ранее- будет проблема с конвертацией кода.
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист 1С
Санкт-Петербург
зарплата от 110 000 руб.
Полный день

Программист 1С
Москва
зарплата от 170 000 руб.
Полный день

Программист 1С (Казань)
Казань
зарплата до 130 000 руб.
Полный день

Программист 1С (Новосибирск)
Новосибирск
зарплата до 130 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата от 180 000 руб.
Полный день