В первый же строчках хочу предупредить, об опасности использования данной обработки, её действия деструктивны, испытывайте на кроликах или просто таскайте куски кода.
По первым четырем полям обработки наверняка все понятно, это соединение с базой на сервере.
Если эти поля заполнены верно, то после нажатия кнопки "Обновить" в табличную часть выведется информация по таблицам базы данных отсортированная в порядке уменьшения занимаемого размера в килобайтах. Сортировка позволяет оптимизировать ваше время и не заниматься легкили таблицами сразу взявшись за монстров и уменьнив базу за первый день в 2-3 раза.
При активации строки таблицы жирным шлифтом выводится информация и минимальной дате записей в в базе по текущей строке и если это регистр остатков, то дата расчитанных итогов.
Поле "Мин.дата для р.сведений" не сосвем соответвует названию. Именно на эту дату до времени 00:00 будут удалены записи в sql таблице.
Флаг переносить остатки активирует кусок кода, отвечающий за ввод сальдо по регистру остатков. А именно, в нашей конфигурации есть документ фактически без каких либо реквизитов, но являющийся регистратором для любого вида движений. На дату обрезки снимаются остатки, создается документ регистратора остатков, записываются сами остатки, как приходное движение и этот документ скидывается в корень диска "С:" вашего компа в виде xml файла. Сразу после записи файла движения документа удаляются, дабы нормализовать остатки и минимизировать время базы с неактуальными остатками. После удаления строк таблицы базы документ вновь водружается на свое законное место из файла вместе со своими остатками. А вот дальше есть неприятный момент, текущие остатки увеличились на количество документа введенного сальдо. Необходиме пересчитать итоги. И вновь в следствии минимальной блокировки пользователей, пришлось пересчитывать итоги постепенно, помесячно, с паузами. При не установленной галочке "Не пересчитывать итоги" обработка начнет помесячно устанавливать дату расчитанных итогов на минус 2 года назад и затем обратно на текущую дату. Если итоги вам не критичны, можете установить галочку "не пересчитывать итоги" и заняться этим позже, нажимая кнопки на нижней панели.
Также, если вас вообще не интересуют остатки по текущему регистру накопления можете вообще не переносить остатки (не ставить галочку), бывают и такие регистры.
Кстати, регистры сведений также удачно режутся. Обработка находит первое попавшееся поле с типом даты и использует его для отфильтровки удаляемых записей.
Само действие удаления строк таблиц базы данных sql запускается двойным кликом по строке.
Все запросы к sql выводятся в строку сообщений.
PS. Особо не ругайтесь, писал на коленке на скорую руку по мере обрезки базы. Ляпы есть, но они не привели к порче баз и предприятие спокойно продолжает работать со значительно меньшими затратами времени.
PPS. Для уменьшения времени блокировки базы записи удаляются по 1000 строк. И еще, в случае проблемы при обрезке (вылет, отключение света) если вы используете перенос остатков, то сохраненный xml можно без труда втягивать в базу при любой необходимости буквально двумя строчками кода (смотрите в обработке). Такое же водружение остатков на место можно сделать и из резервной базы, наверняка уже лежащей у вас рядом для страховки.