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