Помощник программного изменения форм (версия 0.4)

Опубликовал Юрий Пермитин (YPermitin) в раздел Программирование - Инструментарий

Обработка "Помощник программного изменения форм" версии 0.4 предназначена для формирования программного кода создания и изменения элементов формы, а также задания их свойств. С ее помощью Вы сможете выполнять модификацию форм конфигураций экономя время на написании кода. Помощник не сделает всю работу за вас! Он лишь поможет Вам в выполнении рутинных действий.

Описание

 

Обработка "Помощник программного изменения форм" предназначена для формирования программного кода создания и изменения элементов формы, а также задания их свойств. 

Управляемая форма обработки

С ее помощью Вы сможете выполнять модификацию форм конфигураций экономя время на написании кода. Помощник не сделает всю работу за вас! Он лишь поможет Вам в выполнении рутинных действий.

Возможности

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

 Поддержка управляемых форм в обычном приложении

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

Запустив обработку в управляемом режиме ее функционал будет ограничен только управляемыми формами конфигурации. Это связано с ограничениями платформы 1С:Предприятие по работе с обычными формами в управляемом режиме (не все типы и методы обычных форм доступны в управляемом интерфейсе). Также в полной мере не будет работать предварительный просмотр измененной формы (программное изменение состава элементов формы доступно только на сервере, поскольку непосредственно передать управляемую форму с клиента на сервер нельзя - эти возможности не доступны). 

 

На презентации выше продемонстрирован принцип работы обработки, основные действие по ее использованию. Ниже представлено демонстрационное видео.

 


Хоть на видео и продемонстрировано использование старой версии обработки 0.3, но принцип действий сохранился. 

Обратная связь

Для отправки отзывов, предложений прошу использовать функционал "Обратная связь" в обработке или электронную почту в разделе "Об авторе".


Спасибо за интерес к разработке!  

Связанная статья: "Формы. Трудности программной работы"

Блог автора: Devel Platform

Скачать файлы

Наименование Файл Версия Размер
Помощник программного изменения форм - v0.4
.epf 58,73Kb
14.09.13
103
.epf 58,73Kb 103 Скачать

См. также

Комментарии
1. Яков Коган (Yashazz) 1976 25.02.13 14:59 Сейчас в теме
Забавная вещица, но неряшливо сделанная. И интерфейс можно бы докрутить, и опечатки всякие...
И, я не сумел всё же понять, генерирует ли эта обработка код под управляемые формы?
2. Юрий Пермитин (YPermitin) 588 25.02.13 15:07 Сейчас в теме
(1) Yashazz, под управляемые формы код генерирует.

Опечатки и интерфейс допилю =) Это же как-никак версия 0.2. Когда подойдет выход 1.0 думаю уже использовать можно будет по полной.

Функционал еще развивать и развивать.
3. Дмитрий Елисеев (w-divin) 25.02.13 15:55 Сейчас в теме
Ну ок - подождем версию 1.0 и тогда плюсанем )))
4. Александр Капустин (kapustinag) 25.02.13 16:39 Сейчас в теме
Если бы существовала возможность сохранить ПРОГРАММНО СГЕНЕРИРОВАННУЮ форму в "обычном" виде, то есть как если бы она была сделана в конструкторе форм - то тогда последующие доделки формы уже не были бы слишком трудоемкими.
На входе имеем обычную форму, меняем ее в конструкторе, сохраняем, и трансформируем форму в программный код.
Впоследствии, если потребовались масштабные изменения, сохраняем программный код как "обычную" форму, и меняем ее в конструкторе.
5. Алексей 1 (AlX0id) 25.02.13 16:44 Сейчас в теме
Ну как-то именно "забавная", не более того. По крайней мере, то, что есть сейчас.
Я так понимаю, что целью было избежать геморроя при обновлении - так что особо сильно не поможет, судя по всему )
6. Юрий Пермитин (YPermitin) 588 25.02.13 18:12 Сейчас в теме
7. Александр (aet) 37 25.02.13 18:13 Сейчас в теме
(5) AlX0id, поможет, в каталоге много материала на тему минимального изменения конфигурации, тут 1 шаг - формирование кода, второй шаг грамотно разместить его.
8. Юрий Пермитин (YPermitin) 588 25.02.13 18:15 Сейчас в теме
(4) kapustinag, в статье (ссылка в публикации) я писал, что лучше бы "Конфигуратор" все изменения в форме конструктором делал как в Visual Studio. Там все элементы формы всегда формируются программным образом. И в этом огромный плюс!
9. Юрий Пермитин (YPermitin) 588 25.02.13 18:20 Сейчас в теме
(3) w-divin, сам жду с нетерпением =)))
10. Дмитрий Чекунов (cdb) 24 25.02.13 18:41 Сейчас в теме
У меня выскакивает ошибка при выборе любой формы (документы, обработки и т.п.)
Конфигурация ЗУП. (Обычное приложение)
{Форма.ФормаОбычная.Форма(292)}: Ошибка при вызове метода контекста (ПолучитьФорму)
ВыбраннаяФорма = ПолучитьФорму(ТекущаяФорма, ПараметрыФормы);
по причине:
Недопустимое значение параметра (параметр номер '1')
11. Роман Владимирович (srv7) 430 25.02.13 18:59 Сейчас в теме
(0) как насчет привязок ? без них идея реализована наполовину.. реализуете - плюс с меня
12. Юрий Пермитин (YPermitin) 588 25.02.13 19:29 Сейчас в теме
(10) cdb, дело в том, что некоторые формы требуют обязательной инициализации каких-либо параметров. Тут либо нужно в копии оригинальной формы убрать обработчики событий "ПриОткрытии" и "ПередОткрытием", или закомментировать код, вызывающий ошибку.

В будущем возможно сделаю автоинициализацию таких параметров. Пока правда не знаю как)
13. Юрий Пермитин (YPermitin) 588 25.02.13 19:30 Сейчас в теме
(11) srv7, обязательно сделаю.
14. Алексей Новиков (Новиков) 286 25.02.13 22:41 Сейчас в теме
Идея интересная. По поводу привязок в ОФ'ах поддержу (11)
16. Юрий Пермитин (YPermitin) 588 26.02.13 10:20 Сейчас в теме
(15) yandextesting, спасибо за ссылки.

Некоторые из публикаций уже читал ранее.
17. Максим Полянский (yandextesting) 137 26.02.13 10:51 Сейчас в теме
(16) в одной из приведенных публикаций (думаю, в самой поздней), насколько помню, был реализован обход ошибки, описанной в комментарии (10)
18. Максим Полянский (yandextesting) 137 26.02.13 11:03 Сейчас в теме
(0), (16) В продолжение списка публикаций из (15) - о "слоне"-то я забыл:) упомянуть:
- наиболее продвинутое решение в смежном направлении (в т.ч. генерация кода формы), сугубо на мой взгляд, V8Reader (с расширенным анализом форм) Upd., там также можно почерпнуть некоторую информацию для развития своего решения.
19. Юрий Пермитин (YPermitin) 588 26.02.13 11:34 Сейчас в теме
(18) yandextesting, V8Reader очень хорош. Его кажется частично используют в Снегопаде.
20. Модератор раздела Артур Аюханов (artbear) 28.02.13 20:06 Сейчас в теме
(0) Выложил бы картинки отдельно, как скриншоты к статье.
Сейчас они слишком мелки. А скриншоты можно отдельно в большом окне просматривать.
21. Юрий Пермитин (YPermitin) 588 28.02.13 20:23 Сейчас в теме
(20) artbear, к понедельнику выложу новую версию обработки. Переработаю оформление публикации.
22. Юрий Пермитин (YPermitin) 588 05.03.13 08:13 Сейчас в теме
(21) YPermitin, к сожалению пока не успеваю заняться доработкой. В течении недели выложу новую версию с поддержкой привязок и доп. поддержкой элементов обычных форм.
23. г. Казань Рустем Гумеров (Rustig) 781 05.03.13 23:54 Сейчас в теме
(0) Добротно сделано. Основательно. Спасибо, автор, молодец!
(6), (7) задаю прямой вопрос: как программное создание элементов форм помогает при дальнейшем обновлении конфигураций? и еще один: как "грамотно" разместить код программного создания элементов, чтобы вся затея помогала с обновлением конфигураций?
имхо, не стоит заморачиваться над программным созданием именно элементов форм! лучше создать свою форму, скопировав например основную форму элемента справочника или основную форму документа, и ее уже изменять. Ни одно последующее обновление ее не затронет.
24. Юрий Пермитин (YPermitin) 588 06.03.13 05:05 Сейчас в теме
(23) Rustig, на счет копирования формы - так и делаю. Но в скопированной форме, чтобы при последующем обновлении не заниматься копипастом, изменяю форму программным образом. Тогда при последующем накате обновлений поставщика нужно скопировать одну строчку кода и все, так как все пограммные изменения делаются в общем модуле. Каждая форма лишь вызывает соответствующую процедуру и передает туда форму, объект.

Например, в событии "ПередОткрытием" вызывается процедура общего модуля:

DEV_ИзменениеФормы.ПередОткрытиемАвансовыйОтчетФормаДокумента(ЭтаФорма, ЭтотОбъект, <ИмяФормы>);

Имя формы передаю, т.к. у документа может быть несколько форм одинакового типа.
25. Алекс Ю (AlexO) 115 06.03.13 12:50 Сейчас в теме
(24) YPermitin,
Но в скопированной форме,

Тогда при последующем накате обновлений поставщика

Ваш поставщик обновляет и сделанные копии форм тоже?
чтобы при последующем обновлении не заниматься копипастом, изменяю форму программным образом.

зачем - если форма уникальна, - делать программно элементы?
(23) Rustig,
лучше создать свою форму, скопировав например основную форму элемента справочника

... и при следующем изменении самой типовой формы или её модуля будете мучительно думать - а как теперь соединить-то все изменения в одной снова?!
26. Алекс Ю (AlexO) 115 06.03.13 12:52 Сейчас в теме
(2) YPermitin,
автор, вы можете четко, по пунктам, объяснить - в чем отличие вашей разработки от приведенных в (15)?
Вы придумали новый способ делать программные элементы в 1С? Ваша обработка сразу подсказывает, что и куда поместить, чтоб не трогало типовое обновление? Что нового? :)
27. Юрий Пермитин (YPermitin) 588 06.03.13 13:37 Сейчас в теме
(26) AlexO, хотя бы скачайте и посмотрите. Как сказал выше, после новой версии напишу подробное описание. Сейчас недостаточно времени.
28. Алекс Ю (AlexO) 115 06.03.13 13:41 Сейчас в теме
(27) YPermitin,
ну я как-бы давно пользуюсь обработками из списка ( 15), и впорос, что еще можно "эдакого" написать, возник не случайно :)
Поэтому и спрашиваю - что? Или вы не смотрели те обработки?
Ну т.е. это больше ваша обязанность - не изобретать велосипед :)
29. г. Казань Рустем Гумеров (Rustig) 781 06.03.13 15:39 Сейчас в теме
(25) ну вы прям любите поговорить :)
смотрите в суть, в глубину: мною описанный способ надо распространить на УТ например. На БП или ЗУП - с их частым обновлением - такой способ не будет простым решением... я считаю что универсального решения нет.
30. Алекс Ю (AlexO) 115 06.03.13 17:03 Сейчас в теме
(29) Rustig,
На БП или ЗУП - с их частым обновлением - такой способ не будет простым решением

УПП уже приближается по частоте обновлений к ним, и именно такой способ введения своих изменений - комплексный программно-копии-подписочный, - дает максимальный эффект при обновлениях.
31. ivanov660 ivanov660 (ivanov660) 325 09.03.13 16:26 Сейчас в теме
Мне понравилось. Как раз собираюсь заняться работой в данном направлении, т.к. заниматься обновлением конфигураций каждый раз становится трудновато.
32. Валерий Волошин (VVi3ard) 35 12.03.13 18:14 Сейчас в теме
Сегодня встала задача: Есть 8 форм на каждую нужно добавить группу "Общие сведения" в ней порядка 8 реквизитов + оформление + доп группы для выравнивания.

Можно было бы CTRL+C/V по всем 8ми формам но пока еще до конца не определились с составом этих реквизитов, в итоге 100% будем еще раз переделывать (менять состав, группировку).

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

Эта обработка могла бы помочь но пришлось дорабатывать она умеет только один элемент а мне нужно сразу для многих элементов(это не сложно добавить). Что хуже она не понимает дерево (тот самый элемент родитель).

Так же не хватает дерева и в списке элементов для которых генерировать код.
33. Юрий Пермитин (YPermitin) 588 12.03.13 18:43 Сейчас в теме
(32) VVi3ard, Обработка действительно сейчас умеет немного.

Те задачи, которые передо мной стояли решил, сейчас пока никак не могу всерьез взяться за ее допиливание. Только если постепенно, ибо другие задачи имеются.
34. Алекс Ю (AlexO) 115 13.03.13 10:24 Сейчас в теме
(32) VVi3ard,
Эта обработка могла бы помочь но пришлось дорабатывать она умеет только один элемент а мне нужно сразу для многих элементов(это не сложно добавить). Что хуже она не понимает дерево (тот самый элемент родитель).

Так же не хватает дерева и в списке элементов для которых генерировать код.

Потому что вы, как и автор, не смотрите декомпиляторы из (15 ) :)
35. Валерий Волошин (VVi3ard) 35 13.03.13 11:33 Сейчас в теме
(34) AlexO, уже смотрим :) Спасибо
36. Владимир Чепурной (91197ch) 27 14.03.13 11:22 Сейчас в теме
37. Юрий Пермитин (YPermitin) 588 14.03.13 15:10 Сейчас в теме
(35) VVi3ard, вот и новая версия с поддержкой иерархии элементов и привязок для обычных форм.

Может пригодиться теперь =)

(34) AlexO, декомпиляторы я смотрел, и пользуюсь ими тоже в некоторых случаях. В остальном использую свою обработку, ибо для меня она удобнее.
qus-qus; VVi3ard; +2 Ответить 1
38. Валерий Волошин (VVi3ard) 35 14.03.13 15:49 Сейчас в теме
39. Алекс Ю (AlexO) 115 14.03.13 17:22 Сейчас в теме
(37) YPermitin,
декомпиляторы я смотрел, и пользуюсь ими тоже в некоторых случаях. В остальном использую свою обработку, ибо для меня она удобнее.

ну все, народ объяснил - ваша для управляемых недоформ :)
Я-то с позиции обычного приложения писал.
40. Юрий Пермитин (YPermitin) 588 14.03.13 17:41 Сейчас в теме
(39) AlexO, да для "неуправляемых" тоже, и для обычных =)
41. Алекс Ю (AlexO) 115 15.03.13 10:11 Сейчас в теме
(40) YPermitin,
Ну с УФ вообще, похоже, полная ж, если там даже программно сформировать - все перелопачивать да и не всегда удается, а если напишите, чем отличается от аналогов в обычном режиме - то будет только плюс :)
42. muha muhaha (fr.myha) 21.03.13 11:44 Сейчас в теме
Знаете, а мне нравиться стандартная реализация редактирования форм.
43. Александр (aet) 37 21.03.13 12:29 Сейчас в теме
(23) можно множество изменений форм сделать в одном месте Псевдо подписка ПриОткрытии
44. Юрий Пермитин (YPermitin) 588 21.03.13 15:42 Сейчас в теме
(43) aet, для управляемых форм лучше делать "ПриСозданииНаСервере", так оптимальней будет, никаких лишних вызовов сервера.

Для обычных форм в большинстве случаев не важно "ПередОткрытием" или "ПриОткрытии".
45. Александр (aet) 37 22.03.13 04:02 Сейчас в теме
(44) в (43) ключевое "в одном месте"
46. 26178@mail.ru (26178_mail.ru) 25.03.13 15:25 Сейчас в теме
Спасибо болльшое изменения в форме не всегда охота делать а иногда и нельзя, капризные бывают заказчики. Поэтому выход +++
47. Маргарита Михайлова (margo_m09) 26.03.13 13:56 Сейчас в теме
48. ivanov660 ivanov660 (ivanov660) 325 07.05.13 16:27 Сейчас в теме
Посмотрел обработку "недопилина" она для управляемых форм (версия 3). Пришлось много чего руками править (может я не понял как):
- Не весь функционал перетаскивается - не перенося атрибуты групп (к примеру, нет типа группировки подчиненных элементов; путь к данным, имена команд);
- Не выделяются (пометка) параметры которые отличаются от по-умолчанию.
и др.
49. Юрий Пермитин (YPermitin) 588 08.05.13 11:47 Сейчас в теме
(48) ivanov660, со всем согласен. В перспективе допилю.
50. Владимир Кузнецов (mr.Kot) 13.05.13 10:51 Сейчас в теме
Вот уже который раз на публикацию о прогорммном изменении форм обращаю внимание, думаю у себя внедрить, но задача постоянно оказывается не столь актуальна, сколь другие. В итоге смотрю, думаю попробовать и забываю. Потом снова смотрю, думаю попробовать и далее по кругу. :)
51. Юрий Пермитин (YPermitin) 588 13.05.13 10:57 Сейчас в теме
(50) mr.Kot, сам такой же))
Перевел у многих форм изменения в программное формирование, потом пришли другие важные задачи и все. Больше этим не занимался уже более месяца)
53. Z Lu (validat) 1 19.09.13 15:39 Сейчас в теме
Опытные программисты, скажите, новичку поможет начать изучать или освоить программирование? Или хотя бы начать настраивать формы под определённые нужды?
Иногда в формах нужно добавить одну колонку с нужными данными, может это облегчить работу?
Заранее благодарю за советы.
54. Алексей К (AlexeyXL) 22.09.13 13:14 Сейчас в теме
55. Мастер Йода (master_yoda) 27 23.09.13 17:04 Сейчас в теме
56. Андрей Краснокутский (Andry.Boris) 53 06.01.15 01:16 Сейчас в теме
Возьму на вооружение...
Достаточно удобно и наглядно...
Автор если бы при предварительном просмотре отображались изменения было бы здорово,
а еще неплохо добавить создание программных элементов прям в обработку...
+