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

В этой статье — пять проверенных способов сжатия, от ручной чистки до автоматизированных инструментов, с учетом особенностей разных версий платформы (8.3.20+). Мы разберем, когда достаточно стандартных средств , а когда потребуются сторонние утилиты, и почему некоторые методы могут увеличить размер базы на 10-15% перед финальным сжатием — это нормальный этап процесса. Также вы узнаете, как избежать типичных ошибок, например, удаления данных, которые кажутся ненужными, но критичны для отчетности.

Почему файловая база 1С «раздувается»?

Основная причина роста базы — фрагментация данных. Каждый раз при записи информации (документов, справочников, регистров) платформа выделяет новые блоки на диске, но не всегда освобождает старые. Со временем между «полезными» данными накапливаются пустые участки, а сама база занимает в 1.5–2 раза больше места, чем реально необходимо.

Другие факторы:

  • 📁 Временные файлы (.tmp, .bak): создаются при обновлениях, тестировании или аварийном завершении работы.
  • 🗑️ Удаленные объекты: даже после очистки через Администрирование → Удаление помеченных объектов их следы остаются в базе.
  • 📊 Архивные данные: документы за закрытые периоды, которые не удаляются автоматически.
  • 🔄 Логи транзакций: в файловом варианте они хранятся прямо в базе (в отличие от клиент-серверного режима).

Например, база торговой компании с оборотом 500 документов в день может «раздуться» с 2 ГБ до 8 ГБ за год — и это без учета резервных копий! При этом реально используемые данные займут не более 3 ГБ.

📊 Как часто вы проводите сжатие базы 1С?
Раз в месяц
Раз в квартал
Только когда заканчивается место на диске
Никогда не делал

Метод 1: Стандартное сжатие через Конфигуратор

Самый безопасный и рекомендуемый способ — использование встроенной функции Тестирование и исправление. Она не только сжимает базу, но и восстанавливает целостность данных после сбоев. Подходит для всех версий 1С:Предприятие 8.3 (включая последние обновления 2026 года).

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

  1. Закройте все сеансы работы с базой (включая фоновые задачи).
  2. Запустите Конфигуратор от имени администратора.
  3. Перейдите в меню Администрирование → Тестирование и исправление.
  4. В открывшемся окне отметьте флажки:
    • 🔧 Проверять логическую целостность
    • 🗜️ Проверять ссылочную целостность
    • 🧹 Реструктурировать таблицы (это и есть сжатие)
    • 🔄 Выполнять реиндексацию таблиц
  • Нажмите Выполнить и дождитесь завершения (может занять от 10 минут до нескольких часов в зависимости от размера базы).
  • После процедуры база может временно увеличиться на 10–20% — это нормально: платформа создает копии таблиц перед оптимизацией. Финальный размер будет меньше исходного на 30–50%.

    Закрыть все сеансы 1С|Сделать резервную копию базы|Проверить свободное место на диске (нужно минимум 20% от размера базы)|Отключить антивирус (может блокировать доступ к файлам)-->

    ⚠️ Внимание: Если база используется в файловом варианте на сетевом диске, сжатие может занять в 2–3 раза больше времени из-за ограничений скорости сети. Для баз размером свыше 20 ГБ рекомендуется временно перенести их на локальный SSD.

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

    Перед сжатием стоит очистить базу от ненужных данных. Даже если вы регулярно удаляете документы через интерфейс , их следы остаются в базе до специальной обработки. Вот как это сделать правильно:

    Шаги:

    1. В пользовательском режиме (1С:Предприятие) откройте Все функции → Стандартные → Удаление помеченных объектов.
    2. В списке отметьте типы объектов для очистки (например, Документы.РеализацияТоваровУслуг).
    3. Нажмите Удалить объекты и подтвердите действие.
    4. После завершения обязательно выполните сжатие через Конфигуратор (Метод 1).
    5. Что можно удалять без риска:

      • 📄 Документы с пометкой На удаление старше 1 года (если они не нужны для отчетности).
      • 📋 Пустые справочники (например, Контрагенты без движений).
      • 📧 Письма из Журнала документов, если они дублируются в почтовом клиенте.

      Чего удалять нельзя:

      • 🚫 Регистры накопления и бухгалтерии — это приведет к ошибкам в отчетах.
      • 🚫 Объекты, связанные с закрытыми периодами (даже если они кажутся ненужными).
      • 🚫 Системные справочники (например, Виды субконто).
      Что будет, если удалить регистры накопления?

      Это равносильно удалению всех движений по товарам, денежным средствам и расчетам. Например, исчезнут остатки на складах, дебетовая/кредитовая задолженность контрагентов, и восстановить их можно будет только из резервной копии.

      Тип данных Можно удалять Рекомендации
      Документы С пометкой «Удаление» старше 1 года Проверьте, не используются ли они в отчетах (например, Акт сверки)
      Справочники Пустые или неиспользуемые элементы Исключение: системные справочники (Валюты, Единицы измерения)
      Журналы документов Записи старше 3 лет (если не требуются по закону) Сначала экспортируйте данные в Excel для архива
      Логи изменений Старше 6 месяцев Используйте обработку Очистка истории изменений

      Метод 3: Оптимизация с помощью утилиты chdbfl.exe

      Для глубокой оптимизации файловой базы предоставляет консольную утилиту chdbfl.exe, которая работает быстрее, чем сжатие через Конфигуратор, и лучше справляется с фрагментацией. Утилита входит в комплект поставки платформы (папка bin).

      Команда для сжатия:

      chdbfl.exe "Путь\к\базе.1CD" /C

      Ключи:

      • 🔧 /C — сжать базу (compress).
      • 🔍 /T — проверить целостность (test).
      • 🔄 /R — восстановить поврежденные таблицы (repair).

    Пример полной команды для проверки и сжатия:

    chdbfl.exe "D:\Bases\Trade.1CD" /T /C

    Преимущества метода:

    • ⚡ Работает в 1.5–2 раза быстрее, чем через Конфигуратор.
    • 🛠️ Можно запустить по расписанию (например, ночью).
    • 📊 Поддерживает базы размером до 128 ГБ (ограничение файлового варианта).
    • ⚠️ Внимание: Утилита chdbfl.exe не работает с базами в формате .dt (устаревший формат до версии 8.2). Для них используйте только Конфигуратор.
      💡

      Если утилита выдает ошибку "Не является базой данных 1С", проверьте расширение файла — оно должно быть .1CD (а не .1cd с маленькой буквы).

      Метод 4: Архивация и выгрузка данных

      Если база содержит много исторических данных, которые редко используются, но нельзя удалить (например, по требованиям налоговой), оптимальное решение — выгрузить их в отдельный файл и подключить как внешний источник. Это сократит размер рабочей базы на 40–60%.

      Алгоритм:

      1. Создайте резервную копию базы.
      2. В Конфигураторе перейдите в Администрирование → Выгрузка данных.
      3. Выберите период (например, данные до 01.01.2023) и выгрузите в файл .dt.
      4. Удалите выгруженные данные из основной базы (через Удаление помеченных объектов).
      5. Сожмите базу (Метод 1 или 3).
      6. При необходимости подключите архивный файл как внешнюю обработку.

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

    • 📅 Выгружать документы старше N месяцев.
    • 📋 Исключать определенные справочники (например, Номенклатура с нулевыми остатками).
    • 🔄 Сохранять связи между объектами для будущего импорта.
    • Пример кода для выгрузки данных за 2022 год:

      Выгрузка = Новый ВыгрузкаДанныхXML;
      

      Выгрузка.Период = НачалоГода(2022);

      Выгрузка.Файл = "D:\Archive\2022_data.xml";

      Выгрузка.Выгрузить();

      💡

      Архивация данных — единственный способ значительно уменьшить базу, если нельзя удалять исторические документы. Например, для бухгалтерских баз с данными за 5+ лет этот метод дает сокращение размера на 50–70%.

      Метод 5: Дефрагментация диска (для файлового варианта)

      Если база хранится на жестком диске (HDD), а не на SSD, фрагментация файловой системы может сводить на нет все усилия по сжатию. Дело в том, что активно работает с файлом базы (.1CD), постоянно дописывая и перезаписывая данные. Со временем файл «разрывается» на сотни фрагментов, и даже после сжатия его физический размер остается большим.

      Как проверить фрагментацию:

      1. Откройте Свойства диска (правый клик по диску в Этот компьютер).
      2. Перейдите на вкладку Сервис → Оптимизировать.
      3. Выберите диск с базой и нажмите Анализировать.

      Если фрагментировано более 10%, выполните дефрагментацию:

      • 🖥️ Для HDD: используйте встроенную утилиту Windows или Defraggler.
      • 💾 Для SSD: дефрагментация не нужна (и даже вредна), но проверьте настройку TRIM.

      После дефрагментации повторно запустите сжатие базы (Метод 1 или 3) — размер может уменьшиться еще на 5–15%.

      ⚠️ Внимание: Если база расположена на сетевом хранилище (NAS, SMB-шара), дефрагментация бессмысленна — она должна выполняться на физическом диске сервера. В этом случае лучше перенести базу на локальный SSD для сжатия, а затем вернуть обратно.

      Частые ошибки и как их избежать

      Даже опытные администраторы иногда допускают ошибки, которые ведут к потере данных или, наоборот, к увеличению размера базы. Вот самые распространенные:

      Ошибка 1: Сжатие без резервной копии

      Если во время сжатия произойдет сбой (например, отключение электричества), база может повредиться без возможности восстановления. Всегда делайте бэкап!

      Ошибка 2: Удаление «ненужных» справочников

      Например, удаление элементов из Номенклатура с нулевыми остатками может нарушить целостность регистров, если эти элементы когда-либо использовались в документах.

      Ошибка 3: Использование chdbfl.exe для баз в формате .dt

      Утилита работает только с .1CD. Для старых форматов используйте Конфигуратор.

      Ошибка 4: Сжатие во время работы пользователей

      Это приводит к блокировкам и ошибкам "База данных используется исключительно". Закройте все сеансы!

      Ошибка 5: Игнорирование логических ошибок

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

      Что делать, если после сжатия база стала больше?

      Это нормально, если:

      1. Вы использовали chdbfl.exe /C — утилита сначала создает временные файлы.

      2. В базе много двоичных данных (например, вложенные файлы в документах).

      3. Фрагментация была критичной (более 50%).

      После повторного сжатия через Конфигуратор размер вернется в норму.

      FAQ: Ответы на частые вопросы

      Можно ли сжать базу 1С, не останавливая работу пользователей?

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

      Сколько времени занимает сжатие базы размером 50 ГБ?

      Зависит от метода и оборудования:

      • Через Конфигуратор: 2–4 часа (на HDD), 1–2 часа (на SSD).
      • Через chdbfl.exe: 1–3 часа (быстрее на 30–40%).

      Для ускорения используйте локальный SSD и отключите антивирус.

      Почему после сжатия база все равно медленно работает?

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

      • 🖥️ Недостаточно оперативной памяти (рекомендуется минимум 8 ГБ для баз >10 ГБ).
      • 📀 Фрагментация диска (проверьте дефрагментацию).
      • 🔌 Медленное сетевое соединение (для файлового варианта на сетевом диске).
      • 🛠️ Устаревшая версия платформы (обновите до 8.3.20+).

      Проверьте также настройки кэша в Конфигураторе → Параметры → Запуск 1С:Предприятия.

      Можно ли автоматизировать сжатие базы?

      Да. Для этого:

      1. Создайте .bat-файл с командой для chdbfl.exe.
      2. Настройте задачу в Планировщике заданий Windows на еженедельное выполнение.
      3. Добавьте в скрипт автоматическое создание резервной копии перед сжатием.

      Пример скрипта:

      @echo off
      

      set DATE=%date:~0,2%-%date:~3,2%-%date:~6,4%

      copy "D:\Bases\Trade.1CD" "D:\Backup\Trade_%DATE%.1CD"

      "C:\Program Files\1cv8\8.3.20.1500\bin\chdbfl.exe" "D:\Bases\Trade.1CD" /C

      Какие альтернативы сжатию существуют для крупных баз?

      Если база превышает 50 ГБ и продолжает расти, рассмотрите:

      • 🔄 Переход на клиент-серверный вариант (например, 1С:Предприятие + PostgreSQL). Это решит проблему фрагментации и ускорит работу.
      • 📂 Разделение базы на несколько (например, текущий год + архив).
      • ☁️ Облачное хранилище (1С:Fresh, 1С:ГISPRU). Автоматически оптимизирует данные.

      Для бухгалтерских баз с историей за 10+ лет часто выгоднее мигрировать на SQL-версию.