IE2017

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

Программирование - Практика программирования

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

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

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

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

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

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

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

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

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

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

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

См. также

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

Но все равно разработка мощная, попозже посмотрю ее получше)
4. alernik@mail.ru Александр Ершов (alexer) 844 09.02.10 13:09 Сейчас в теме
(3)
1. Поправил.
2. Не понял что за ошибка?
3. Медленно, это да, она же через ОЛЕ подключается.
4. Это не знаю как поправить, возможно это косяк платформы 1С.
5. Роман Ершов (MRAK) 700 09.02.10 13:17 Сейчас в теме
2. Что-то уже не воспроизводится, возможно, после исправления 1.
4.
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
БазаОле.ЗавершитьРаботуСистемы(Ложь);
БазаОле = Неопределено;
КонецПроцедуры // ПередЗакрытием()

6. alernik@mail.ru Александр Ершов (alexer) 844 09.02.10 13:27 Сейчас в теме
7. Сергей Старых (tormozit) 4318 10.02.10 01:27 Сейчас в теме
А она сопоставляет элементы формы по ГУИДам или по именам?
8. alernik@mail.ru Александр Ершов (alexer) 844 10.02.10 07:54 Сейчас в теме
9. Sensey Master (MSensey) 55 11.02.10 15:12 Сейчас в теме
Имею средство сравнения и объединения модулей на уровне процедур, но я никому не дам (бесплатно) 8-)
10. alernik@mail.ru Александр Ершов (alexer) 844 12.02.10 08:43 Сейчас в теме
(9) Почем в Одессе рубероид?
Ответ. Назовите мне разумную цену, и мы договоримся!
:)
11. Sensey Master (MSensey) 55 12.02.10 08:57 Сейчас в теме
(10) это не сложно ты сможешь и сам сделать :)
12. Сергей Чуян (Собеседник) 171 16.02.10 00:30 Сейчас в теме
+ одназначно. вещь полезная.
13. Эстер Коган (e.kogan) 1822 24.02.10 11:25 Сейчас в теме
Почему не включили функционал сравнения внешних отчётов и обработок? Маловостребован?
14. alernik@mail.ru Александр Ершов (alexer) 844 24.02.10 11:39 Сейчас в теме
(13) Можно конечно и сравнение внешних отчетов и обработок прикрутить. Мне для обновления конфигураций это не требуется.
15. Котэ Пруидзе (kote) 455 11.06.10 10:44 Сейчас в теме
Отличная работа.

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

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

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

Отдельное спасибо за открытый код разработки.
16. alernik@mail.ru Александр Ершов (alexer) 844 11.06.10 11:02 Сейчас в теме
(15) не буду против если кто-то продолжит тему этой обработки,
т.к. времени на совершенствование и исправление багов нет
17. Роман Ершов (MRAK) 700 01.07.10 18:14 Сейчас в теме
18. Алекс Ю (AlexO) 116 11.07.10 03:45 Сейчас в теме
(15) так поделились бы.....
Или автору отправьте - чтобы вставил дополнение.
19. webranger 18.10.11 23:29 Сейчас в теме
++ Спасибо. Очень полезный инструмент.
20. Сергей Антропов (ASA1970) 22.12.11 11:03 Сейчас в теме
спасибо, очень познавательно
21. qweasd qweasdzc (serega3333) 04.11.12 17:32 Сейчас в теме
регулярно пользуюсь какой-то старой версией подобной обработки, очень помогает
22. Kom-off (Kom-off) 15.05.13 12:41 Сейчас в теме
Регулярно использовал данную обработку для анализа измененных реквизитов объектов (ништяк), при этом анализом форм не пользовался - не было необходимости, но вот она пришла. Понадобился простой и надежный анализатор изменения форм. Перебрал многие разработки на эту тему, остановился на этой. В алгоритме анализа форм не понравилось только одно: при формировании текстовых файлов со свойствами элементов формы не учитываются имена элементов формы при окончательной сортировке, т.е. получается (причину не стал искать), что позиция одного элемента в файле не соответствует позиции этого же элемента в файле другой базы, и при отображении сравнения файлов лезет много шума. Т.е. реально элементы формы не изменены, но их позиции в файлах различны. Лечится изменением строчки кода окончательной сортировки таблицы элементов:
ТаблицаЭлементовФормы.Сортировать("Панель,Страница,Тип");

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

Лично у меня захорошело неимоверно. Прошу автора подправить или обработку или меня.
Оставьте свое сообщение