IE 2016

Декомпилятор форм

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

01.02.2009 Новая версия может почти всё!

Внесение изменений в ТК 1С с использованием программного кода без корректировки форм объекта.
Позволяет упростить обновление конфигураций, не заботиться о форме объектов.
Получить код можно данной обработкой.
1. Добавляем форму объекта в формы обработки - называем ее ("Форма докум ....) (КОНФИГУРАТОР)
2. Комментируем модуль формы (для исключения ошибок вызова, может быть обращение к объекту) и ли удаляем весь текст модуля.
3. Добавляем НОВЫЕ элементы диалога (КОНФИГУРАТОР-ОБРАБОТКА-форма объекта)
4. Сохраняем обработку.
5. Запускаем обработку в режиме предприятия, выбираем нужную форму, получаем текст,
   который добавляем в процедуру "ПриОткрытии" (лучше в отдельную процедуру вызываемую при открытии) модуля формы объекта конфигурации.

01.02.2009 Новая версия МОЖЕТ ПОЧТИ ВСЕ.

Обрабатываются

- расположение элементов формы на панелях и страницах;

- колонки табличных палей;

- кнопики командных панелей;

- меню кнопок;

- действия элементов форм и т.д

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

Наименование Файл Версия Размер Кол. Скачив.
-
.1193077895 15,67Kb
25.09.09
541
.1193077895 15,67Kb 541 Бесплатно
-
.1233505800 22,80Kb
25.09.09
488
.1233505800 22,80Kb 488 Скачать

См. также

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

26. BabySG 07.04.2009 17:48
+(25) поле ввода для табличного поля, связанного с табличной частью.
+ 1 [ mihast; ]
# Ответить
29. vip 21.08.2009 17:39
(28) gcomp, turbomd
+ 1 [ boogie; ]
# Ответить

Комментарии

1. angro 23.10.2007 09:05
>Внесение изменений в ТК 1С с использованием программного кода
а что такое ТК?
# Ответить
2. German 23.10.2007 09:13
Тогда уж .. декомпилятор модуля формы
А то я уже обрадовался..

А что толку его смотреть вот править бы..
Ответили: (3)
# Ответить
3. German 23.10.2007 09:56
Да начал ругать когда еще не посмотрел .. но из описания было понятно (2)
Результат лучше выложить в описании

а так однозначный +

только жаль что событий элемента управления нет
# Ответить
4. angro 23.10.2007 10:07
и всё таки что такое ТК?
# Ответить
5. Sverkalov 23.10.2007 10:25
ТК - типовая конфигурация

Есть уже вариант который позволяет получать таблицы, колонки,
события на элементах и формах. Выдает только элементы с определенным префиксом.
Но это чуть позже. Надо подумать.
# Ответить
6. Сhe Burashka 23.10.2007 14:02
будем следить за разработкой...
# Ответить
7. cs25 23.10.2007 14:37
Плюсуем !!!
# Ответить
8. tormozit 24.10.2007 00:30
Сначала подумал, что вот оно!
Но теперь посмотрел и понял, что не оно и затея в общем то гиблая.
Добавь на вложенную панель элемент формы любой и поймешь, что нельзя его однозначно воссоздать. У элемента формы нет ссылки на панель, к сожалению.
Ответили: (11)
# Ответить
9. Sverkalov 24.10.2007 10:03
ну кое что надо и руками
# Ответить
10. Sverkalov 24.10.2007 10:55
tormozit
вы же это уже занаете
http://www.kb.mista.ru/article.php?id=327
http://kb.mista.ru/article.php?id=165
да есть тупички но на что нам наши руки,
а формы объектов типовых конфигураций лучше не трогать
товоя цитата "Если это делать прямо в диалоге формы, то обновление релиза может преподнести неприятные сюрпризы."
# Ответить
11. German 24.10.2007 11:13
(8) Методы то есть .. но они очень тяжелы
# Ответить
12. Sverkalov 24.10.2007 11:35
11
Если есть метод определения принадлежности элемента формы панели ли странице панели укажи
добавлю и выложу свежий вариант
Ответили: (15) (13)
# Ответить
13. German 24.10.2007 11:42
(12) можно распарсить саму форму
http://www.forum.mista.ru/topic.php?id=300878
# Ответить
15. tormozit 29.10.2007 08:03
(12) Используй деструктивный анализ. Удаление страниц панели и проверка существования элемента формы после удаления каждой страницы.
# Ответить
16. tormozit 29.10.2007 08:05
По-хорошему нужно сделать выбор формы через дерево метаданных. Если подобных наработок у тебя в наличии нет, то конечно немного придется попотеть. Зато в итог будет намного большая универсальность.
# Ответить
17. tormozit 29.10.2007 08:09
Строгий алгоритм такого "разворачивания" структуры формы в код должен использовать полное описание всех типов элементов управления вместе с их расширениями. Такое полное описание есть в http://infostart.ru/projects/848, правда в отношении элементов форм функционал пока не доведен до ума, но описание всех свойств по типам и расширениям типов элементов управления есть.
# Ответить
18. Sverkalov 29.10.2007 09:14
(14)
измененной формы не должно быть в конфигурации
Ответили: (22)
# Ответить
19. Душелов 15.03.2009 17:21
Тестовая форма не верно декомпилится. Как минимум ошибка в

Текст.ДобавитьСтроку(Таб + "ЭлементыФормы."+ЭлементТаблицы.Панель+".ТекущаяСтраница = ЭлементыФормы."+ЭлементТаблицы.Панель+"."+ЭлементТаблицы.Страница+";");

Скобка не нужна на конце, перед ;

Ну и ругается на текущие страницы панели.
# Ответить
20. BabySG 07.04.2009 15:59
(0) Предупредили бы, что префикс максимум из 2-х символов определяется...
# Ответить
21. BabySG 07.04.2009 16:08
А я что-то не так делаю, или парсер не определяет, что я добавил новую страницу на панель?
# Ответить
22. BabySG 07.04.2009 16:32
В модуле обработки заменить строку 180 на:
Текст.ДобавитьСтроку(Таб + "ЭлементыФормы."+ЭлементТаблицы.Панель+".ТекущаяСтраница = ЭлементыФормы."+ЭлементТаблицы.Панель+".Страницы."+ЭлементТаблицы.Страница+";");
Иначе неверно формируется обращение к текущей странице

В (18) не вся ошибка исправлена.
# Ответить
23. BabySG 07.04.2009 16:35
Строка 254, заменить на:
Текст.ДобавитьСтроку(Таб + "ЭлементыФормы."+ЭлементТаблицы.Панель+".ТекущаяСтраница = ЭлементыФормы."+ЭлементТаблицы.Панель+".Страницы."+ЭлементТаблицы.Страница+";");
# Ответить
24. BabySG 07.04.2009 17:23
Не распарсил кнопку на КП ОсновныеДействияФормы...
# Ответить
25. BabySG 07.04.2009 17:37
Если элемент связан с данными, тип значения нельзя устанавливать.
Например, поле ввода будет создаваться с ошибкой в этом случае.
Ответили: (26)
# Ответить
26. BabySG 07.04.2009 17:48
+(25) поле ввода для табличного поля, связанного с табличной частью.
+ 1 [ mihast; ]
# Ответить
27. BabySG 07.04.2009 19:07
Сортировка по элементам некорректно работает - командная панель пытается создаться раньше, чем табличное поле, на основании которого она работает.

Для правильно работы КП необходимо условие изменить (по заполнению кнопок)
ИначеЕсли ЭлементФормыСтр = "Командная панель" Тогда
		Если НЕ Элемент.Автозаполнение Тогда
			Для Каждого Кнопка Из Элемент.Кнопки Цикл
				ТекстКнопка = "Кнопка"; 
				ТекстЭлемент = Элемент.Имя; //ЭлементТаблицы.Имя;
				ДобавитьКнопку(Элемент,ТекстЭлемент,ТекстКнопка,Кнопка,Таб,0,ТолькоКнопки);
			КонецЦикла;			
		КонецЕсли; 
...Показать Скрыть
# Ответить
28. boogie 21.08.2009 17:36
А как это можно в семёрке сделать? Я обыскался декомпилятор :(
Ответили: (29)
# Ответить
29. vip 21.08.2009 17:39
(28) gcomp, turbomd
+ 1 [ boogie; ]
# Ответить
30. obmailok 17.02.2010 11:52
Строка:

пФормаКопия.ЭлементыФормы[ЭлементНастройкиМакета.Имя].Страницы.Удалить(0);

вызывает ошибку, если в модуле формы идет обращение к удаленной странице.
Например:

Если Элемент.Страницы[ТекущаяСтраница] = Элемент.Страницы.ОбщиеЗначения Тогда...

А страницы уже нет.
# Ответить
31. kvckp 11.07.2011 19:22
1. Сложные формы с панелями не обрабатывает, вылетает с ошибкой:
{ВнешняяОбработка.ДекомпиляцияИАнализФорм.МодульОбъекта(428)}: Метод объекта не обнаружен (ПолучитьПривязку)
Элемент.ПолучитьПривязку( Граница, ПервыйЭлемент, ГраницаПервогоЭлемента, ВторойЭлемент,

2. Из чисел можно было сразу убирать Символы.НПП и заменять запятую на точку.
# Ответить
32. РазДва 22.09.2011 10:25
Спасибо за обработку
# Ответить
33. РазДва 09.11.2011 14:00
Очень помогает
# Ответить
34. mdSerg 13.01.2012 00:18
хотел скачать - надо какие-то мани
чушь полная платить мани за это
# Ответить
35. mdSerg 13.01.2012 00:29
файла 2 - 1 скачался, а 2ой опять просит мани
Трудно понять и оценить обработку, которую не можешь скачать
Ответили: (37)
# Ответить
36. Sverkalov 13.01.2012 09:47
Обработка бесплатная.
# Ответить
37. Sverkalov 13.01.2012 09:49
(35) mdSerg, Обработка бесплатная. Видимо Инфостар советую скачать http://infostart.ru/public/99363/ там эта обработка встроена а работать с ней удобнее.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016