Часто бывает: клиенты просят "сделать им чистую базу". На "Семерке" это просто: удаляем нужные таблички, запускаем тестирование и через пару минут получаем базу со всеми текущими настройками, справочниками и без единого документа. Затем обычно следует перенос текущих остатков по регистрам, проверка корректности данных и запуск чистой базы в работу. Как правило, обрезка на этом заканчивается, но иногда просят оставить часть документов: например, расходные накладные в ТиС, чтобы по ним можно было оформить возврат (в "торговле" возврат - это приходная накладная, выписанная на основании расходной) или Счета-фактуры, по которым еще не прошла отгрузка.
Чтобы не писать под каждую конфигурацию обработку переноса конкретных видов документов, было принято решение написать универсальную обработку переноса. Насколько она получилась удачной - решать Вам.
Для разработчика, как я думаю, эта обработка будет интересна как пример работы с объектом "Метаданные" и OLE-подключением.
Изменения в версии 1.1.
1. Добавлены фильтры (условия) для отбора документов в базе-источнике: только помеченные на удаление, только помеченные на удаление.
2. Реализовано управление режимом поиска и замены документов: флаг Поиск по номеру и замена (в версии 1.0 - поиск и замена работала по умолчанию).
3. Возможность сохранять номер документа при переносе. Чтоб не было конфликтов префикс номера предваряется латинской буквой "x".
4. Добавлен контроль уникальности номера перед записью документа: Если такой номер уже существует, то подбираются по очереди префиксы из ряда "a,b,c,d,e,f,g".