Сравнение объектов и форм метаданных (очередная декомпиляция и анализ форм)

Опубликовал alexer в раздел Программирование - Практика программирования

Данная обработка разновидность обработки http://infostart.ru/public/22147/ от MRAK, только ее основное предназначение является сравнение форм разных конфигураций посредством подключения через ОЛЕ.

Данной обработкой попытался развить тему следующий проектов:

Декомпиляция и анализ форм с генерацией кода формы: http://infostart.ru/public/22147/

Деструктивный анализ формы: http://infostart.ru/projects/2412/

Декомпилятор форм: http://infostart.ru/projects/1343/

Теоретическая база проекта: http://www.kb.mista.ru/article.php?id=650

Также ей можно сравнивать Состав и Источник объекта метаданных, что бывает удобно при обновлении измененных типовых конфигураций.

Если ставите плюсик, не забудьте также отблагодарить всех участников вышеуказанных разработок.

Коллективный труд, для моей пользы, облагораживает. (Кот Матроскин)

Файлы

Наименование Файл Версия Размер Кол. Скачив.
СравнениеОбъектовМетаданных.epf
.epf 76,17Kb
09.02.10
560
.epf 76,17Kb 560 Скачать

См. также

Комментарии

1. MRAK (файл скачал) 09.02.2010 12:22
огромный + авансом!
# Ответить
2. dushelov (файл скачал) 09.02.2010 12:22
Нравится!
# Ответить
3. MRAK (файл скачал) 09.02.2010 12:43
Некоторые недоработки:
1. Если "вывести объекты" на корне дерева конфы, то вывалится ошибка.
2. Если попытаться сравнить не формы - вылетит ошибка.
3. Слишком медленно происходит сравнение. Особо неприятно, если ошибся формой, ждал 5 минут, а обработка сказала, что формы одинаковы.
4. При закрытии обработки ОЛЕ-база спрашивает "Вы уверены, что хотите выйти?" и это окошко не выводится на передний план, только через альт-таб его видно.

Но все равно разработка мощная, попозже посмотрю ее получше)
Ответили: (4)
# Ответить
4. alexer 09.02.2010 13:09
(3)
1. Поправил.
2. Не понял что за ошибка?
3. Медленно, это да, она же через ОЛЕ подключается.
4. Это не знаю как поправить, возможно это косяк платформы 1С.
# Ответить
5. MRAK (файл скачал) 09.02.2010 13:17
2. Что-то уже не воспроизводится, возможно, после исправления 1.
4.
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
БазаОле.ЗавершитьРаботуСистемы(Ложь);
БазаОле = Неопределено;
КонецПроцедуры // ПередЗакрытием()
Ответили: (6)
# Ответить
6. alexer 09.02.2010 13:27
(5) Спасибо, поправил.
# Ответить
7. tormozit 10.02.2010 01:27
А она сопоставляет элементы формы по ГУИДам или по именам?
Ответили: (8)
# Ответить
8. alexer 10.02.2010 07:54
(7) По именам.
# Ответить
9. MSensey (файл скачал) 11.02.2010 15:12
Имею средство сравнения и объединения модулей на уровне процедур, но я никому не дам (бесплатно) 8-)
# Ответить
10. alexer 12.02.2010 08:43
(9) Почем в Одессе рубероид?
Ответ. Назовите мне разумную цену, и мы договоримся!
:)
Ответили: (11)
# Ответить
11. MSensey (файл скачал) 12.02.2010 08:57
(10) это не сложно ты сможешь и сам сделать :)
# Ответить
12. Собеседник (файл скачал) 16.02.2010 00:30
+ одназначно. вещь полезная.
# Ответить
13. e.kogan 24.02.2010 11:25
Почему не включили функционал сравнения внешних отчётов и обработок? Маловостребован?
Ответили: (14)
# Ответить
14. alexer 24.02.2010 11:39
(13) Можно конечно и сравнение внешних отчетов и обработок прикрутить. Мне для обновления конфигураций это не требуется.
# Ответить
15. kote (файл скачал) 11.06.2010 10:44
Отличная работа.

Только для деструктивного анализа правильнее анализировать не просто новый объект Форма, а ОТКРЫТЫЙ (можно невидимый) объект Форма..

Разница в том, что если Вы в форму _программно_ добавили что либо, то пока не _запустишь_ её - анализатор Вам не покажет _программно_ добавленные элементы (в процедуре ПередОткрытием).. Я немного доработал - везде после получения объекта Форма (перед анализом) - открывал форму, после анализа - закрывал.. Все нормально получилось.

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

Отдельное спасибо за открытый код разработки.
Ответили: (16) (18)
# Ответить
16. alexer 11.06.2010 11:02
(15) не буду против если кто-то продолжит тему этой обработки,
т.к. времени на совершенствование и исправление багов нет
Ответили: (17)
# Ответить
17. MRAK (файл скачал) 01.07.2010 18:14
(16) такая же фигня!
# Ответить
18. AlexO (файл скачал) 11.07.2010 03:45
(15) так поделились бы.....
Или автору отправьте - чтобы вставил дополнение.
# Ответить
19. webranger 18.10.2011 23:29
++ Спасибо. Очень полезный инструмент.
# Ответить
20. ASA1970 (файл скачал) 22.12.2011 11:03
спасибо, очень познавательно
# Ответить
21. serega3333 04.11.2012 17:32
регулярно пользуюсь какой-то старой версией подобной обработки, очень помогает
# Ответить
22. Kom-off (файл скачал) 15.05.2013 12:41
Регулярно использовал данную обработку для анализа измененных реквизитов объектов (ништяк), при этом анализом форм не пользовался - не было необходимости, но вот она пришла. Понадобился простой и надежный анализатор изменения форм. Перебрал многие разработки на эту тему, остановился на этой. В алгоритме анализа форм не понравилось только одно: при формировании текстовых файлов со свойствами элементов формы не учитываются имена элементов формы при окончательной сортировке, т.е. получается (причину не стал искать), что позиция одного элемента в файле не соответствует позиции этого же элемента в файле другой базы, и при отображении сравнения файлов лезет много шума. Т.е. реально элементы формы не изменены, но их позиции в файлах различны. Лечится изменением строчки кода окончательной сортировки таблицы элементов:
ТаблицаЭлементовФормы.Сортировать("Панель,Страница,Тип");

на
ТаблицаЭлементовФормы.Сортировать("Панель, Страница, Тип, Имя");

Лично у меня захорошело неимоверно. Прошу автора подправить или обработку или меня.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016