База знаний Одина – Одинэсника Форумы ODIN – Форум по 1С Предприятию Как автоматизировать ежемесячное удаление старых записей в 1С через SQL?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32849
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

    • #32850

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

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

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

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

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

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

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.