Разбухшая база 1С:Предприятие — головная боль администраторов и бухгалтеров. Она тормозит работу, увеличивает время резервного копирования и занимает лишнее место на сервере. Но просто удалить данные нельзя: риск потерять важную информацию или нарушить целостность системы слишком велик.

В этой статье разберём 7 безопасных способов урезать базу 1С, от ручной очистки до автоматизированных инструментов. Вы узнаете, какие данные можно удалять без последствий, как архивировать старые документы и когда стоит прибегнуть к радикальным мерам вроде выгрузки/загрузки. Все методы протестированы на платформе 1С:Предприятие 8.3 (актуально для конфигураций Бухгалтерия 3.0, Управление торговлей 11, Зарплата и управление персоналом 3.1).

⚠️ Предупреждение: Перед любыми манипуляциями с базой обязательно создайте резервную копию через Администрирование → Обслуживание → Резервное копирование или внешними средствами (например, SQL Backup для серверных баз). Урезанная база не всегда подлежит восстановлению!

Почему база 1С разрастается: основные причины

Даже при аккуратной работе объём базы растёт со временем. Вот ключевые факторы:

  • 📅 Накопление истории изменений: каждая правка документа, проводка или справочник сохраняет предыдущие версии. В Бухгалтерии 3.0 история может занимать до 40% от общего объёма.
  • 🗑️ Неудалённые объекты: помеченные на удаление документы, справочники или регистры остаются в базе до физического удаления (операция Удаление помеченных объектов).
  • 🔄 Дублирование данных: при обменах с другими системами (например, 1С:Розница1С:УТ) или ручном вводе образуются копии одних и тех же записей.
  • 📊 Временные таблицы и кэш: платформа создаёт служебные данные для ускорения работы, но не всегда их очищает.
  • 📎 Вложенные файлы: сканы документов, фотографии товаров или архивы в справочниках (Дополнительные реквизиты) могут весить гигабайты.

🔍 Как проверить текущий размер? В конфигураторе откройте Файл → Открыть..., выберите базу и посмотрите значение в столбце Размер. Для SQL-баз используйте запрос:

SELECT SUM(size * 8.0 / 1024) AS [Size MB]

FROM sys.master_files

WHERE database_id = DB_ID('ИмяВашейБазы')

📊 Как часто вы очищаете базу 1С?
Никогда
Раз в год
Раз в квартал
По мере необходимости

Способ 1: Очистка истории изменений

История изменений — главный "пожиратель" места. В конфигурациях на БСП 2.4+ (Библиотека стандартных подсистем) её можно очистить штатными средствами.

Инструкция для 1С:Бухгалтерия 3.0 / УТ 11 / ЗУП 3.1:

  1. Откройте базу в режиме 1С:Предприятие (не конфигуратор!).
  2. Перейдите в Администрирование → Обслуживание → История изменений.
  3. Нажмите Очистить историю и укажите период (например, "старше 1 года").
  4. Подтвердите операцию и дождитесь завершения (может занять часы для больших баз!).

⚠️ Внимание: После очистки вы не сможете откатить документы до состояния на дату, попавшую под очистку. Если в вашей организации есть требования по хранению истории (например, для аудита), архивируйте данные перед удалением.

Создать резервную копию базы

Уведомить пользователей о временной блокировке

Проверить свободное место на диске (нужно ≥20% от размера базы)

Запустить очистку в нерабочее время-->

Тип данных Можно ли очищать Риски
История изменений документов Да (старше 1–2 лет) Потеря возможности отката правок
История изменений справочников Да (кроме системных) Некритично для большинства бизнес-процессов
Журнал регистрации Да (старше 3–6 месяцев) Потеря логов действий пользователей
Версии объектов (для БСП) Частично (оставить последние 3–5 версий) Сложности с восстановлением старых данных

Способ 2: Удаление помеченных объектов

Объекты, помеченные на удаление (через Пометить на удаление в форме элемента), физически остаются в базе до специальной операции. Их накопление может добавить 10–30% к размеру.

Как удалить:

  • В режиме 1С:Предприятие откройте Все функции → Стандартные → Удаление помеченных объектов.
  • Выберите типы объектов (например, Документы, Справочники) и нажмите Выполнить.
  • Для полной очистки повторите операцию в конфигураторе через Администрирование → Тестирование и исправление (флаг Удалять помеченные объекты).

💡 Совет: Перед массовым удалением проверьте, не используются ли помеченные объекты в отчётах или бизнес-процессах. Например, в 1С:ЗУП удаление помеченного сотрудника может нарушить расчёт зарплаты за прошлые периоды.

ВЫБРАТЬ Ссылка ИЗ РегистрСведений.ПомеченныеОбъекты-->

Способ 3: Архивирование старых данных

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

Варианты архивирования:

  • 📂 Выгрузка в XML/DT: через Администрирование → Выгрузка данных. Подходит для переноса в отдельную архивную базу.
  • 🗃️ Использование внешних архивов: в 1С:Документооборот или 1С:Архив можно хранить старые документы с ссылками из рабочей базы.
  • 🔗 Разделение базы по периодам: например, вынести данные до 2020 года в отдельную базу (требует доработки конфигурации).

📌 Пример: В 1С:Бухгалтерия 3.0 можно выгрузить документы старше 3 лет в файл Архив_2020.dt, а затем удалить их из базы через обработку Групповое удаление документов.

Как восстановить данные из архива?

1. Создайте новую базу или временную информационную базу.

2. Загрузите в неё архивный файл через Администрирование → Загрузка данных.

3. При необходимости перенесите отдельные документы обратно в рабочую базу через Обмен данными (формат EnterpriseData).

Способ 4: Оптимизация структуры базы данных

Со временем структура базы фрагментируется, что увеличивает её размер и замедляет работу. Оптимизация помогает "сжать" данные без потери информации.

Шаги для оптимизации:

  1. Закройте всех пользователей из базы.
  2. В конфигураторе выберите Администрирование → Тестирование и исправление.
  3. Отметьте флаги:
    • Реиндексация таблиц
    • Сжатие таблиц
    • Проверка логической целостности
  • Нажмите Выполнить и дождитесь завершения (может занять несколько часов).
  • ⚠️ Внимание: Для SQL-баз (например, на Microsoft SQL Server или PostgreSQL) оптимизацию лучше проводить на уровне СУБД:

    -- Для MS SQL
    

    DBCC SHRINKDATABASE (ИмяБазы, 10) -- Сжать до 10% свободного места

    DBCC INDEXDEFRAG (0) -- Дефрагментация индексов

    💡

    Оптимизацию структуры рекомендуется проводить раз в квартал или после массовых изменений (например, обновления конфигурации).

    Способ 5: Удаление дублирующихся данных

    Дубли возникают при обменах между базами, ручном вводе или ошибках интеграции. Например, один и тот же контрагент может быть заведён под разными наименованиями ("ООО Ромашка" и "ООО Ромашка-1").

    Как найти и удалить дубли:

    • 🔍 Поиск: Используйте отчёт Анализ дублирующихся данныхБСП) или обработку "Поиск и удаление дублей" из Инфостарта.
    • 🧹 Очистка: Для справочников (контрагенты, номенклатура) используйте обработку Групповое изменение реквизитов, чтобы объединить дубли в один объект.
    • 🔄 Профилактика: Настройте контроль уникальности в формах ввода (например, по ИНН для контрагентов).

    📊 Пример: В 1С:Управление торговлей 11 дубли номенклатуры можно найти запросом:

    ВЫБРАТЬ
    

    Наименование,

    КОЛИЧЕСТВО(*) КАК Количество

    ИЗ

    Справочник.Номенклатура

    СГРУППИРОВАТЬ ПО

    Наименование

    ИМЕЮЩИЕ

    КОЛИЧЕСТВО(*) > 1

    Способ 6: Выгрузка и загрузка базы (радикальный метод)

    Если база сильно фрагментирована или содержит много "мусора", её можно полностью выгрузить и загрузить заново. Этот метод удаляет все служебные данные и сжимает структуру.

    Пошаговая инструкция:

    1. Создайте резервную копию базы (!).
    2. В конфигураторе выберите Администрирование → Выгрузить информационную базу (формат .dt).
    3. Удалите старую базу (или создайте новую с тем же именем).
    4. Загрузите данные обратно через Администрирование → Загрузить информационную базу.
    5. Обновите ссылки на базу в 1С:Предприятии (если изменилось имя).

    ⚠️ Внимание: Этот метод сбрасывает все настройки пользователей (сохранённые отчёты, права доступа, персональные настройки интерфейса). Перед выгрузкой экспортируйте их через Администрирование → Пользователи и права.

    🔧 Для SQL-баз: Вместо выгрузки/загрузки используйте создание новой базы с переносом данных через Универсальный обмен (формат EnterpriseData). Это сохраняет структуру СУБД.

    📊 Вы когда-нибудь полностью пересоздавали базу 1С?
    Нет, боюсь
    Да, помогло
    Да, но возникли проблемы
    Планирую

    Способ 7: Настройка автоматической очистки

    Чтобы база не разрасталась снова, настройте регулярную автоматическую очистку:

    • 📅 Планировщик задач: В Windows создайте задачу для запуска обработки очистки (например, CleanBase.epf) раз в месяц.
    • 🤖 Регламентные задания: В настройте задание Очистка истории изменений через Администрирование → Регламентные задания.
    • 📈 Мониторинг размера: Используйте обработку "Монитор базы данных"Инфостарта), чтобы получать уведомления при превышении лимита.

    📌 Пример кода для планировщика (bat-файл):

    @echo off
    

    "C:\Program Files\1cv8\8.3.20.1500\bin\1cv8.exe" DESIGNER /S "Сервер\База" /N "Администратор" /P "Пароль" /Execute "Обработки.ОчисткаБазы.Очистить()"

    pause

    ⚠️ Внимание: Автоматическая очистка может конфликтовать с фоновыми заданиями (например, обменами данными). Запускайте её в период минимальной нагрузки (ночью или в выходные).

    FAQ: Частые вопросы по урезке базы 1С

    Можно ли урезать базу 1С без конфигуратора?

    Да, часть операций доступна в режиме 1С:Предприятие:

    • Очистка истории изменений (Администрирование → Обслуживание).
    • Удаление помеченных объектов (Все функции → Стандартные).
    • Архивирование данных через обработки (например, "Выгрузка данных в XML").

    Однако для глубокой оптимизации (тестирование и исправление, реиндексация) нужен конфигуратор.

    Сколько места можно сэкономить?

    Зависит от состава данных:

    • История изменений: 20–40% от размера базы.
    • Помеченные объекты: 5–15%.
    • Дубли: 5–20% (в запущенных базах до 30%).
    • Оптимизация структуры: 10–25%.

    В сумме можно уменьшить базу на 30–60% без потери критичных данных.

    Что делать, если после очистки база стала работать медленнее?

    Возможные причины и решения:

    • Не обновлены индексы: Запустите Реиндексацию таблиц в конфигураторе.
    • Фрагментация диска: Проведите дефрагментацию (для HDD) или оптимизацию (SSD).
    • Недостаток памяти: Увеличьте лимит памяти для в параметрах запуска (/M1024 — 1 ГБ, /M2048 — 2 ГБ).
    • Проблемы с СУБД: Для SQL-баз проверьте настройки сервера (например, max degree of parallelism).

    Как урезать базу 1С:Розница 2.2?

    Для 1С:Розница актуальны все описанные методы, но есть нюансы:

    • Чеки ККМ: Их нельзя удалять (требования 54-ФЗ), но можно архивировать старше 1 года.
    • Остатки товаров: Перед очисткой проверьте, не используются ли они в отчётах (например, Анализ продаж).
    • Обмен с УТ: После очистки может потребоваться перезагрузка данных из 1С:Управление торговлей.

    Используйте обработку "Очистка базы Розница" с Инфостарта — она учитывает специфику конфигурации.

    Нужно ли урезать базу, если она на SQL Server?

    Да, но подход отличается:

    • Очистка истории и удаление помеченных объектов работают так же, как для файловой базы.
    • Оптимизацию таблиц лучше делать на уровне SQL Server (команды DBCC SHRINKDATABASE, REINDEX).
    • Архивирование удобно реализовать через partitioning (разделение таблиц по периодам).
    • Резервное копирование занимает меньше места, если использовать сжатие (BACKUP COMPRESSION).

    Для SQL-баз критично следить за размером лога транзакций — его рост может "съедать" место на диске.