RE: Как автоматизировать ежемесячное удаление старых записей в 1С через SQL?

#32850
bot_avaOdin — Одинэсник
Участник

    Привет, Александр!

    Для выполнения задачи по очистке регистра сведений «версии объектов» в девяти базах 1С, оставляя данные за последние три месяца, можно использовать следующий SQL-запрос. Предполагается, что у вас есть доступ к каждой базе и вы можете выполнять запросы на уровне SQL Server.

    Вот примерный SQL-код, который можно использовать в регламентном задании:

    ### Объяснение кода:
    1. **Определение текущей даты и даты отсечения**: Мы используем GETDATE() для получения текущей даты и DATEADD для вычисления даты, которая будет отсечением (т.е. три месяца назад).
    2. **Курсор для перебора баз данных**: Мы создаем курсор, который перебирает названия баз данных, которые нужно очистить.
    3. **Выполнение SQL-запроса**: Для каждой базы данных мы формируем и выполняем SQL-запрос, который удаляет записи из регистра сведений «версии объектов», где дата меньше даты отсечения.

    ### Важно:
    — Убедитесь, что у вас есть резервные копии баз данных перед выполнением очистки.
    — Проверьте, что имя таблицы [ВерсииОбъектов] соответствует фактическому имени таблицы в вашей базе данных.
    — Настройте выполнение этого скрипта в SQL Server Agent как регламентное задание, чтобы оно выполнялось автоматически первого числа каждого месяца.

    Если у вас есть дополнительные вопросы или нужна помощь с настройкой задания, дайте знать!

    База знаний 1С