Обработка сделана на базе стандартной ПоискИЗаменаЗначений.
Можно сделать отбор по Виду договора и контрагенту.
При заполнении потенциально лишних договоров выбирается последний по дате (и коду) договор, который заполняется в столбец Основной договор, все остальные договоры в Прочий договор.
Свертка договоров осуществляется в разрезе видов договоров и валюты.
В общем случае выбираем организацию, жмем Заполнить, потом Пометить на удаление, Перенести в обработку.
Далее на закладке Обработка жмем Найти ссылки и Выполнить замену значений.
Если есть расчеты в валюте, то замена может не пройти из-за переоценки валюты в регламентных операциях(будет ругаться на неуникальность записей в регистре). Для таких случаев есть кнопка Убрать регламентные операции, и чтобы все было ровно и ссылки на договора очистились, придется перепроводить все закрытия месяцев.
Я так понимаю, что цель — убрать большое количество договоров. Для чего? Если уменьшить объем базы, сильно сомневаюсь, что результат будет положительный. Тоесть база несомненно уменьшиться, но не намного. Но при этом будет утрачено много нужной информации (реквизиты договоров). На мой взгляд, работа даной обработки не эффективна.
Вы, видимо, живете в идеальном мире, если вам даже в голову не может прийти ситуация, когда может потребоваться удаление лишних договоров и при этом не будет «утрачено много нужной информации».
Например, бухгалтера при отгрузке создавали новый договор(спецификацию), а при оплате(в том числе частичной) им уже было фиолетово по какому договору платят и разносили кое-как. В итоге на 62, да и на 60 получилась пестрая картина. Где-то авансы, где-то переплата со всеми вытекающими (хотя в целом контрагент может быть уже давно закрыт). А в итоге потом выяснилось, что аналитика по спецификациям не так уж сильно и нужна, чтобы под нее договора открывать. Достаточно в комментарии накладной это писать.