gifts2017

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

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

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

Описание

 

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

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

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

Возможности

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

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

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

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

 

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

 


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

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

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


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

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

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Яков Коган (Yashazz) 25.02.13 14:59
Забавная вещица, но неряшливо сделанная. И интерфейс можно бы докрутить, и опечатки всякие...
И, я не сумел всё же понять, генерирует ли эта обработка код под управляемые формы?
2. Юрий Пермитин (YPermitin) 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) 25.02.13 18:12
7. Александр (aet) 25.02.13 18:13
(5) AlX0id, поможет, в каталоге много материала на тему минимального изменения конфигурации, тут 1 шаг - формирование кода, второй шаг грамотно разместить его.
8. Юрий Пермитин (YPermitin) 25.02.13 18:15
(4) kapustinag, в статье (ссылка в публикации) я писал, что лучше бы "Конфигуратор" все изменения в форме конструктором делал как в Visual Studio. Там все элементы формы всегда формируются программным образом. И в этом огромный плюс!
9. Юрий Пермитин (YPermitin) 25.02.13 18:20
(3) w-divin, сам жду с нетерпением =)))
10. Дмитрий Чекунов (cdb) 25.02.13 18:41
У меня выскакивает ошибка при выборе любой формы (документы, обработки и т.п.)
Конфигурация ЗУП. (Обычное приложение)
{Форма.ФормаОбычная.Форма(292)}: Ошибка при вызове метода контекста (ПолучитьФорму)
ВыбраннаяФорма = ПолучитьФорму(ТекущаяФорма, ПараметрыФормы);
по причине:
Недопустимое значение параметра (параметр номер '1')
11. Роман (srv7) 25.02.13 18:59
(0) как насчет привязок ? без них идея реализована наполовину.. реализуете - плюс с меня
12. Юрий Пермитин (YPermitin) 25.02.13 19:29
(10) cdb, дело в том, что некоторые формы требуют обязательной инициализации каких-либо параметров. Тут либо нужно в копии оригинальной формы убрать обработчики событий "ПриОткрытии" и "ПередОткрытием", или закомментировать код, вызывающий ошибку.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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