Файловая база 1С:Предприятие со временем разрастается как снежный ком: накапливаются временные файлы, фрагментируются данные, а архивные документы занимают место, хотя давно не используются. В результате даже небольшая компания может столкнуться с базой весом в десятки гигабайт — и это при том, что реально нужная информация занимает лишь малую часть. Сжатие базы не только освобождает место на диске, но и ускоряет работу системы, сокращает время резервного копирования и снижает риск повреждения данных при сбоях.
В этой статье — пять проверенных способов сжатия, от ручной чистки до автоматизированных инструментов, с учетом особенностей разных версий платформы (8.3.20+). Мы разберем, когда достаточно стандартных средств 1С, а когда потребуются сторонние утилиты, и почему некоторые методы могут увеличить размер базы на 10-15% перед финальным сжатием — это нормальный этап процесса. Также вы узнаете, как избежать типичных ошибок, например, удаления данных, которые кажутся ненужными, но критичны для отчетности.
Почему файловая база 1С «раздувается»?
Основная причина роста базы — фрагментация данных. Каждый раз при записи информации (документов, справочников, регистров) платформа выделяет новые блоки на диске, но не всегда освобождает старые. Со временем между «полезными» данными накапливаются пустые участки, а сама база занимает в 1.5–2 раза больше места, чем реально необходимо.
Другие факторы:
- 📁 Временные файлы (
.tmp,.bak): создаются при обновлениях, тестировании или аварийном завершении работы. - 🗑️ Удаленные объекты: даже после очистки через
Администрирование → Удаление помеченных объектових следы остаются в базе. - 📊 Архивные данные: документы за закрытые периоды, которые не удаляются автоматически.
- 🔄 Логи транзакций: в файловом варианте они хранятся прямо в базе (в отличие от клиент-серверного режима).
Например, база торговой компании с оборотом 500 документов в день может «раздуться» с 2 ГБ до 8 ГБ за год — и это без учета резервных копий! При этом реально используемые данные займут не более 3 ГБ.
Метод 1: Стандартное сжатие через Конфигуратор
Самый безопасный и рекомендуемый способ — использование встроенной функции Тестирование и исправление. Она не только сжимает базу, но и восстанавливает целостность данных после сбоев. Подходит для всех версий 1С:Предприятие 8.3 (включая последние обновления 2026 года).
Пошаговая инструкция:
- Закройте все сеансы работы с базой (включая фоновые задачи).
- Запустите Конфигуратор от имени администратора.
- Перейдите в меню
Администрирование → Тестирование и исправление. - В открывшемся окне отметьте флажки:
- 🔧 Проверять логическую целостность
- 🗜️ Проверять ссылочную целостность
- 🧹 Реструктурировать таблицы (это и есть сжатие)
- 🔄 Выполнять реиндексацию таблиц
Выполнить и дождитесь завершения (может занять от 10 минут до нескольких часов в зависимости от размера базы).После процедуры база может временно увеличиться на 10–20% — это нормально: платформа создает копии таблиц перед оптимизацией. Финальный размер будет меньше исходного на 30–50%.
Закрыть все сеансы 1С|Сделать резервную копию базы|Проверить свободное место на диске (нужно минимум 20% от размера базы)|Отключить антивирус (может блокировать доступ к файлам)-->
⚠️ Внимание: Если база используется в файловом варианте на сетевом диске, сжатие может занять в 2–3 раза больше времени из-за ограничений скорости сети. Для баз размером свыше 20 ГБ рекомендуется временно перенести их на локальный SSD.
Метод 2: Удаление помеченных объектов
Перед сжатием стоит очистить базу от ненужных данных. Даже если вы регулярно удаляете документы через интерфейс 1С, их следы остаются в базе до специальной обработки. Вот как это сделать правильно:
Шаги:
- В пользовательском режиме (1С:Предприятие) откройте
Все функции → Стандартные → Удаление помеченных объектов. - В списке отметьте типы объектов для очистки (например,
Документы.РеализацияТоваровУслуг). - Нажмите
Удалить объектыи подтвердите действие. - После завершения обязательно выполните сжатие через Конфигуратор (Метод 1).
- 📄 Документы с пометкой
На удалениестарше 1 года (если они не нужны для отчетности). - 📋 Пустые справочники (например,
Контрагентыбез движений). - 📧 Письма из
Журнала документов, если они дублируются в почтовом клиенте. - 🚫 Регистры накопления и бухгалтерии — это приведет к ошибкам в отчетах.
- 🚫 Объекты, связанные с закрытыми периодами (даже если они кажутся ненужными).
- 🚫 Системные справочники (например,
Виды субконто). - 🔧
/C— сжать базу (compress). - 🔍
/T— проверить целостность (test). - 🔄
/R— восстановить поврежденные таблицы (repair).
Что можно удалять без риска:
Чего удалять нельзя:
Что будет, если удалить регистры накопления?
Это равносильно удалению всех движений по товарам, денежным средствам и расчетам. Например, исчезнут остатки на складах, дебетовая/кредитовая задолженность контрагентов, и восстановить их можно будет только из резервной копии.
| Тип данных | Можно удалять | Рекомендации |
|---|---|---|
| Документы | С пометкой «Удаление» старше 1 года | Проверьте, не используются ли они в отчетах (например, Акт сверки) |
| Справочники | Пустые или неиспользуемые элементы | Исключение: системные справочники (Валюты, Единицы измерения) |
| Журналы документов | Записи старше 3 лет (если не требуются по закону) | Сначала экспортируйте данные в Excel для архива |
| Логи изменений | Старше 6 месяцев | Используйте обработку Очистка истории изменений |
Метод 3: Оптимизация с помощью утилиты chdbfl.exe
Для глубокой оптимизации файловой базы 1С предоставляет консольную утилиту chdbfl.exe, которая работает быстрее, чем сжатие через Конфигуратор, и лучше справляется с фрагментацией. Утилита входит в комплект поставки платформы (папка bin).
Команда для сжатия:
chdbfl.exe "Путь\к\базе.1CD" /C
Ключи:
Пример полной команды для проверки и сжатия:
chdbfl.exe "D:\Bases\Trade.1CD" /T /C
Преимущества метода:
- ⚡ Работает в 1.5–2 раза быстрее, чем через Конфигуратор.
- 🛠️ Можно запустить по расписанию (например, ночью).
- 📊 Поддерживает базы размером до 128 ГБ (ограничение файлового варианта).
- Создайте резервную копию базы.
- В Конфигураторе перейдите в
Администрирование → Выгрузка данных. - Выберите период (например, данные до 01.01.2023) и выгрузите в файл
.dt. - Удалите выгруженные данные из основной базы (через
Удаление помеченных объектов). - Сожмите базу (Метод 1 или 3).
- При необходимости подключите архивный файл как внешнюю обработку.
⚠️ Внимание: Утилитаchdbfl.exeне работает с базами в формате.dt(устаревший формат до версии 8.2). Для них используйте только Конфигуратор.
Если утилита выдает ошибку "Не является базой данных 1С", проверьте расширение файла — оно должно быть .1CD (а не .1cd с маленькой буквы).
Метод 4: Архивация и выгрузка данных
Если база содержит много исторических данных, которые редко используются, но нельзя удалить (например, по требованиям налоговой), оптимальное решение — выгрузить их в отдельный файл и подключить как внешний источник. Это сократит размер рабочей базы на 40–60%.
Алгоритм:
Для автоматизации процесса используйте обработку ВыгрузкаЗагрузкаДанныхXML.epf (входит в стандартную поставку 1С). Она позволяет гибко настраивать правила выгрузки, например:
- 📅 Выгружать документы старше
Nмесяцев. - 📋 Исключать определенные справочники (например,
Номенклатурас нулевыми остатками). - 🔄 Сохранять связи между объектами для будущего импорта.
Пример кода для выгрузки данных за 2022 год:
Выгрузка = Новый ВыгрузкаДанныхXML;
Выгрузка.Период = НачалоГода(2022);
Выгрузка.Файл = "D:\Archive\2022_data.xml";
Выгрузка.Выгрузить();
Архивация данных — единственный способ значительно уменьшить базу, если нельзя удалять исторические документы. Например, для бухгалтерских баз с данными за 5+ лет этот метод дает сокращение размера на 50–70%.
Метод 5: Дефрагментация диска (для файлового варианта)
Если база хранится на жестком диске (HDD), а не на SSD, фрагментация файловой системы может сводить на нет все усилия по сжатию. Дело в том, что 1С активно работает с файлом базы (.1CD), постоянно дописывая и перезаписывая данные. Со временем файл «разрывается» на сотни фрагментов, и даже после сжатия его физический размер остается большим.
Как проверить фрагментацию:
- Откройте
Свойства диска(правый клик по диску вЭтот компьютер). - Перейдите на вкладку
Сервис → Оптимизировать. - Выберите диск с базой и нажмите
Анализировать.
Если фрагментировано более 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С:Предприятия.
Можно ли автоматизировать сжатие базы?
Да. Для этого:
- Создайте
.bat-файл с командой дляchdbfl.exe. - Настройте задачу в
Планировщике заданий Windowsна еженедельное выполнение. - Добавьте в скрипт автоматическое создание резервной копии перед сжатием.
Пример скрипта:
@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-версию.