gifts2017

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

Опубликовал alernik@mail.ru Александр Ершов (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 560
.epf 76,17Kb
09.02.10
560
.epf 76,17Kb Скачать

См. также

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

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

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

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

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

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

Отдельное спасибо за открытый код разработки.
16. alernik@mail.ru Александр Ершов (alexer) 11.06.10 11:02
(15) не буду против если кто-то продолжит тему этой обработки,
т.к. времени на совершенствование и исправление багов нет
17. Роман Ершов (MRAK) 01.07.10 18:14
18. Алекс Ю (AlexO) 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
Регулярно использовал данную обработку для анализа измененных реквизитов объектов (ништяк), при этом анализом форм не пользовался - не было необходимости, но вот она пришла. Понадобился простой и надежный анализатор изменения форм. Перебрал многие разработки на эту тему, остановился на этой. В алгоритме анализа форм не понравилось только одно: при формировании текстовых файлов со свойствами элементов формы не учитываются имена элементов формы при окончательной сортировке, т.е. получается (причину не стал искать), что позиция одного элемента в файле не соответствует позиции этого же элемента в файле другой базы, и при отображении сравнения файлов лезет много шума. Т.е. реально элементы формы не изменены, но их позиции в файлах различны. Лечится изменением строчки кода окончательной сортировки таблицы элементов:
ТаблицаЭлементовФормы.Сортировать("Панель,Страница,Тип");

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

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