Периодически приходится обновлять типовые конфигурации, в которых используется большое количество расширений. После каждого обновления возникает одна и та же задача — определить, какие методы расширения действительно требуют проверки.
Раньше делал это вручную: открывал результаты сравнения конфигураций, искал изменения в типовых модулях и сопоставлял их с методами расширения. Потом решил поискать готовое решение. Нашёл только платную обработку и, решил написать собственную реализацию и сделать её бесплатной с открытым исходным кодом. Заодно разобраться с вопросом.
Для работы обработке необходимы три файловые выгрузки:
-
старая версия типовой конфигурации;
-
новая версия типовой конфигурации;
-
расширение.
Обработка рекурсивно анализирует модули расширения, находит методы с директивами &Вместо, &Перед, &После и &ИзменениеИКонтроль, определяет соответствующий типовой метод и сравнивает только его в старой и новой версии конфигурации. В результате формируется список методов расширения, требующих проверки после обновления.
Особенности реализации:
-
сравнивается только соответствующий типовой метод, а не весь модуль;
-
автоматически определяется тип объекта метаданных;
-
автоматически определяется вид модуля (объекта, менеджера, формы);
-
для модулей форм отображается имя формы;
-
префикс расширения
NamePrefixавтоматически считывается изConfiguration.xml; -
предусмотрен фильтр «Только изменённые».
В результат проверки выводятся тип объекта, объект, модуль, метод, директива, признак изменения типового метода и статус проверки.
Используется цветовая индикация:
- зелёный — изменений нет
- жёлтый — изменился метод для директив
&Вместо,&Передили&После - красный — изменился метод для
&ИзменениеИКонтроль - серый — соответствующий типовой метод не найден.
Исходный код полностью открыт. Если обработка оказалась полезной, буду признателен за оценку публикации.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.4.13.282
Вступайте в нашу телеграмм-группу Инфостарт