Помогите плз. боюсь что нить упустить, вот и прошу помощи. Проблема в следующем: имеется БД, достаточно серьезного объема. Дело конечно не в размере, но штатными средствами 1С ее уже не обрезать (слишком много времени требуется). Пробовал уже много разных вариантов. Самый приемлемый выбрал следующий:
Создание нового документа в составе конфигурации - перенос остатков (идея подсмотренная) и при его проведении запись в регистры всех итогов (по регистрам и бухгалтерских) на позицию документа. т.е. один документ создает копию итогов по всем регистрам (такое я уже делал, достаточно быстро проходит), ну и создает проводки. Остается только одно - удалить данные до этого документа. Вот тут и начинается свистопляска. Опять же где то вычитал и наваял след. запрос:
UPDATE _1SJOURN
SET
CLOSED=4,
ISMARK=1
WHERE
IDDOCDEF NOT IN (15391,15145)
AND DATE_TIME_IDDOC < '20071231Z
Получилось достаточно быстро и главное результат, тот который я ожидал - документы помечены на удаление! Но! Как всегда, если бы не какое-нибудь "но". Первое что я обнаружил - количество помеченных на удаление объектов составляет почти 400 000. И штатными средствами 1С вываливается с сообщением о недостатке памяти, хотя ее (памяти) 8гб. (это все на сервере происходит). Но это пол беды, за 15 минут пишется обработка, которая с помощью НайтиПомеченныеНаУдаление() и УдалитьОбъекты() порциями начинает удалять помеченные на удаление с проверкой ссылочной целостности (что важно!).
Ах, да забыл указать, что после того, как я пометил на удаление документы, в конфигураторе сделал пересчет итогов. Попробовал парочку отчетов в удаленном периоде (один штатными средствами, другой прямыми запросами) - отчеты пустые, значит данных нет! Но не тут то было. Открываю Query Analyzer и запросом
SELECT top 1000 *
FROM RA4623 AS P
INNER JOIN _1SJourn AS J ON J.IDDOC=P.IDDOC
ORDER BY J.DATE_TIME_IDDOC
получаю данные в удаленном периоде. Что не есть гут. Правда SELECT * FROM RG... Не дает цифр в удаленном периоде... Помимо движений в регистре остались так же и проводки в документах, причем они уже по отчетам видны....
Внимание! Вопрос: как бы покошернее удалить данные в сворачиваемом периоде? Я имею в виду движения по регистрам и проводки у документов. Почти каждый документ имеет как проводки, так и движения по регистрам (обычно не меньше 3-х регистров). Ни один документ не делает записи в периодику, так что на этом можно не заострять внимания.