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

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

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

Описание

 

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

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

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

Возможности

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

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

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

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

 

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

 


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

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

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


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

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

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

Файлы

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

См. также

Лучшие комментарии

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

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

Потому что вы, как и автор, не смотрите декомпиляторы из (15 ) :)
Ответили: (35) (37)
+ 1 [ VVi3ard; ]
# Ответить
37. YPermitin 14.03.2013 15:10
(35) VVi3ard, вот и новая версия с поддержкой иерархии элементов и привязок для обычных форм.

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

(34) AlexO, декомпиляторы я смотрел, и пользуюсь ими тоже в некоторых случаях. В остальном использую свою обработку, ибо для меня она удобнее.
Ответили: (39)
+ 1 [ VVi3ard; ]
# Ответить

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Потому что вы, как и автор, не смотрите декомпиляторы из (15 ) :)
Ответили: (35) (37)
+ 1 [ VVi3ard; ]
# Ответить
35. VVi3ard 13.03.2013 11:33
(34) AlexO, уже смотрим :) Спасибо
Ответили: (37)
# Ответить
36. 91197ch 14.03.2013 11:22
интересно
# Ответить
37. YPermitin 14.03.2013 15:10
(35) VVi3ard, вот и новая версия с поддержкой иерархии элементов и привязок для обычных форм.

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

(34) AlexO, декомпиляторы я смотрел, и пользуюсь ими тоже в некоторых случаях. В остальном использую свою обработку, ибо для меня она удобнее.
Ответили: (39)
+ 1 [ VVi3ard; ]
# Ответить
38. VVi3ard 14.03.2013 15:49
Спасибо, посмотрю.
# Ответить
39. AlexO 14.03.2013 17:22
(37) YPermitin,
декомпиляторы я смотрел, и пользуюсь ими тоже в некоторых случаях. В остальном использую свою обработку, ибо для меня она удобнее.

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

Для обычных форм в большинстве случаев не важно "ПередОткрытием" или "ПриОткрытии".
Ответили: (45)
# Ответить
45. aet 22.03.2013 04:02
(44) в (43) ключевое "в одном месте"
# Ответить
46. 26178@mail.ru 25.03.2013 15:25
Спасибо болльшое изменения в форме не всегда охота делать а иногда и нельзя, капризные бывают заказчики. Поэтому выход +++
# Ответить
47. margo_m09 26.03.2013 13:56
хорошая обработка!!!!!!
# Ответить
48. ivanov660 (файл скачал) 07.05.2013 16:27
Посмотрел обработку "недопилина" она для управляемых форм (версия 3). Пришлось много чего руками править (может я не понял как):
- Не весь функционал перетаскивается - не перенося атрибуты групп (к примеру, нет типа группировки подчиненных элементов; путь к данным, имена команд);
- Не выделяются (пометка) параметры которые отличаются от по-умолчанию.
и др.
Ответили: (49)
# Ответить
49. YPermitin 08.05.2013 11:47
(48) ivanov660, со всем согласен. В перспективе допилю.
# Ответить
50. mr.Kot 13.05.2013 10:51
Вот уже который раз на публикацию о прогорммном изменении форм обращаю внимание, думаю у себя внедрить, но задача постоянно оказывается не столь актуальна, сколь другие. В итоге смотрю, думаю попробовать и забываю. Потом снова смотрю, думаю попробовать и далее по кругу. :)
Ответили: (51)
# Ответить
51. YPermitin 13.05.2013 10:57
(50) mr.Kot, сам такой же))
Перевел у многих форм изменения в программное формирование, потом пришли другие важные задачи и все. Больше этим не занимался уже более месяца)
# Ответить
53. validat 19.09.2013 15:39
Опытные программисты, скажите, новичку поможет начать изучать или освоить программирование? Или хотя бы начать настраивать формы под определённые нужды?
Иногда в формах нужно добавить одну колонку с нужными данными, может это облегчить работу?
Заранее благодарю за советы.
Ответили: (54)
# Ответить
54. AlexeyXL (файл скачал) 22.09.2013 13:14
(53) validat, да, может.
# Ответить
55. master_yoda 23.09.2013 17:04
Нужная приколюха.. ))))
# Ответить
56. Andry.Boris (файл скачал) 06.01.2015 01:16
Возьму на вооружение...
Достаточно удобно и наглядно...
Автор если бы при предварительном просмотре отображались изменения было бы здорово,
а еще неплохо добавить создание программных элементов прям в обработку...
+
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл