Собственно, в 2004 году именно благодаря этой статье и появилась программка. Конечно, никаких претензий на оригинальность и любой программист сможет написать подобное за пару часов, однако, вот только не видно таких решений в свободном доступе....
Постановка задачи в нашем случае не отличается от стандартной. База большая, документов много - пора резать.
Вот с этого момента начинаем выяснять поподробнее. Что хотят пользователи? А они хотят, чтобы документы типа "Договора", "Приказы" и т.п. не удалялись из базы, а были доступны за весь период работы. Так делаем пометочку. Еще они хотят завтра уже работать в новой "облегченной базе". Еще пометочка.
Что в этом случае делает программист 1С? Как обычно, наступает на грабли - пытается удалить т.н. "стандартными средствами". Только заметим, что дело происходит, скажем, где то в марте-апреле. А свернуть предполагается до 1 января текущего года, чтобы сохранить историю неоплаченных накладных и т.п.. А при этом размер базы около 2 Гб.
Обычно такие операции справедливо приурочивают к вечеру субботы, чтобы оставить время для сверки и .т.п. Вот только что же может увидеть программист, придя утром на работу? А то, что оставленная на ночь база благополучно вывалилась с малопонятной ошибкой о "нехватке какой-то там памяти". Печально, но приходится начинать все сначала, теперь под постоянным контролем. Однако через 3-4 часа наблюдаем ту же картину - с той же, а возможно еще какой-то малопонятной ошибкой 1С вываливается при удалении документов. Самое время искать альтернативные пути... вот только уже поздний вечер воскресенья и нет времени на придумывания и извращения...
Собственно, тут я и хотел бы предложить такой вариант, как использование ODBC драйверов сугубо для проведения чистки.
Последовательность действий:
1. Скачать программу
2. Создать ODBC соединение (указать, например, dBASE Driver и путь к базе)
Это сделано для удобства, чтобы не привязывать программу к конкретному драйверу, вы сами выбираете нужный, а в параметрах просто указываете DSN имя подключения.
3.В ini файле прописать дату, до которой удалять документы, регистры и служебную информацию. Указать DSN имя подключения.
4. Запускаете программу DBFScruber .
5. Жмем кнопочку Анализ, если соединение указано правильно, то слева появится список документов, отмечаете документы, которые хотите проигнорировать (не чистить). Кстати чуть ниже надо отметить служебные таблицы, которые тоже хотите оставить нетронутыми, иначе они будут очищены на указанную дату.
6. Делаете резервную копию базы.
7. Переносим остатки на утро указанной даты.
8. Жмем кнопочку "Чистка"
9. Делаем тестирование и исправление, с удалением и упаковку базы.
10. На всякий случай, перепроводим те документы, которые мы не чистили.
11. Проводим документы остатков задним числом.
12. Выполняем сверку.
Собственно все.
На все операции включая, сверку, у меня ушло 5 часов, а у вас?