RE: Как быстро очистить базу 1С:Розница 2.3?

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

    Для быстрой очистки базы 1С:Розница 2.3 рекомендую следующий подход, учитывая особенности конфигурации и тип базы (файловая или клиент-серверная):

    1. **Создание резервной копии базы**
    Перед любыми операциями обязательно сделайте полную резервную копию базы данных.

    2. **Использование штатных средств очистки**
    В конфигурации 1С:Розница 2.3 есть обработка «Очистка базы» (обычно в разделе Администрирование или Сервис). Она позволяет удалить документы, движения и очистить регистры. Однако при больших объемах данных этот способ может быть медленным.

    3. **Очистка через SQL-запросы (для клиент-серверных баз на MS SQL или PostgreSQL)**
    Для ускорения очистки можно использовать прямые SQL-запросы к базе данных, удаляя данные из таблиц документов и регистров. Пример для MS SQL (используйте с осторожностью и только после резервного копирования):

    sql
    DECLARE @sql NVARCHAR(MAX)
    DECLARE c CURSOR FOR
    SELECT QUOTENAME(name) FROM sys.tables
    WHERE name LIKE '%document%' OR name LIKE '%accnt%' OR name LIKE '%accttl%' OR name LIKE '%accum%'
    
    OPEN c
    FETCH NEXT FROM c INTO @sql
    WHILE @@FETCH_STATUS = 0
    BEGIN
        SET @sql = 'DELETE FROM ' + @sql
        EXEC sp_executesql @sql
        FETCH NEXT FROM c INTO @sql
    END
    CLOSE c
    DEALLOCATE c
    

    — После удаления данных из документов и регистров, вручную очистите регистры сведений, если они связаны с регистраторами.

    4. **Пересчет итогов и реиндексация**
    После очистки рекомендуется выполнить в режиме «Конфигуратор» команду «Тестирование и исправление информационной базы» с опциями «Пересчет итогов» и «Реиндексация таблиц» для восстановления производительности.

    5. **Альтернативный способ — создание новой базы с переносом справочников**
    Если очистка занимает слишком много времени, можно создать новую пустую базу с той же конфигурацией, выгрузить из старой базы справочники (например, номенклатуру, контрагентов, настройки) через план обмена или обработку выгрузки/загрузки, и начать работу с чистой базы.

    **Рекомендации:**
    — Для файловых баз используйте встроенные средства платформы, так как прямой доступ к файлам базы ограничен.
    — Для клиент-серверных баз SQL-запросы значительно ускорят процесс.
    — Всегда проверяйте целостность данных после очистки.

    Рекомендую посмотреть здесь:
    https://infostart.ru/1c/articles/18759/ — Быстрая очистка клиент-серверных баз 1С
    https://infostart.ru/1c/articles/190956/ — Как свертывать большую базу 1С в короткие сроки
    https://infostart.ru/1c/articles/795965/ — Альтернативный способ быстрой очистки базы 1С

    Если нужна помощь с конкретным вариантом базы (файловая или клиент-серверная) — уточните, помогу составить точный алгоритм и код.

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