Довольно часто, при обновлении сильно изменённых конфигураций возникает проблема следующего характера: Процедура или функция общего модуля была изменена внедренцем, а в очередном релизе разработчики решили перенести тело процедуры в отдельный модуль. Всё бы ничего, однако для того, чтобы корректно провести объединение, нужно такой процфунк® скопировать в новый модуль (чтобы можно было принять решение о мпосбе обновления её), а при обновлении не забыть удалить из старого модуля. И хорошо бы такая процедура была бы одна, зачастую их десятки. Руками переносить очень тоскливо...
Одно из решений, которое взбрело в голову, написать обработку самостоятельно. Методика следующая: создаём 4е каталога.
- В первый выгружаем общие модули с текущей конфигурации.
- Во второй выгружаем общие модули конфигурации поставщика (мне для этого пришлось создать пустую базу на полной поддержке с такого же релиза с которого обновляю рабочую)
- В третий кладём общие модули нового релиза.
- 4й оставляем пустым - туда будет помещён результат.
- Запускаем приложенную обработку (было скачано изначально отсюда и изменено до неузнаваемости)
- Указываем каталоги в обработке и нажимаем кнопку "Выполнить"
В результате получаем следующее: обработка попроцедурно сравнивает каждую процедуру общего модуля с к процедурой поставщика, так же проверяет осталась ли эта процедура в новом общем модуле. В случае если она была перемещена или её вообще упразднили в исходных изменённых относительно конфигурации поставщика модулях для этой процедуры делается пометка - в какой модуль её переместили или что её более нет в новых модулях вообще. Тело же самого процфунка вместе с комментариями перед его началом добавляются к тем модулям (в конец) в которые их переместили разработчики 1С. Если модули, в которые разрабочики 1С перенесли изменённые внедренцем процфунки отсутствуют для обновляемого релиза тексты этих модулей будут созданы, а в сообщениях будут описаны их имена и свойства (клиент, сервер и т.д.) Надеюсь, это немного облегчит жизнь тех, кто обновляет с пропуском большого количества релизов сильно изменённые конфигурации.
ЗЫ Модули перед объединением естественно нужно загрузить обратно в обновляемую конфигурацию из каталога для результата
02.12.24... В принципе - переходите на EDT там такой подробный анализ производится, по крайне мере по-процедурное сравнение..
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.1.91