Файл 1Cv8.1CD разросся: уменьшаем базу 1С без потери данных

· 10 мин

Содержание

Сжать файловую базу 1С можно двумя штатными способами: в Конфигураторе через Администрирование → Тестирование и исправление с флажком «Сжатие таблиц информационной базы» или выгрузкой базы в файл .dt и загрузкой обратно. Второй способ даёт самый компактный файл, первый быстрее. Оба требуют, чтобы в базе никто не работал.

Перед сжатием имеет смысл убрать мусор внутри базы: помеченные на удаление объекты, лишние версии объектов, вложенные файлы. Иначе уменьшать будет почти нечего. Ниже — порядок действий от подготовки до проверки результата, плюс то, что не сжимает базу, но освобождает место на диске.

Почему файловая база 1С растёт и не уменьшается сама

Файловая база 1С 8.3 — это один файл 1Cv8.1CD в каталоге базы. Внутри он разбит на страницы, на которых лежат таблицы, индексы и служебные данные.

Когда вы удаляете документ или справочник, платформа помечает страницы как свободные, но размер файла не уменьшает. Новые записи потом займут эти страницы, а до тех пор файл остаётся «раздутым».

Что чаще всего увеличивает базу:

  • 📄 Документы и движения за много лет. Каждый проведённый документ пишет записи в регистры. За 5–7 лет работы это основная масса данных.
  • 🗂 Версии объектов. Если включено версионирование, при каждой записи документа сохраняется его копия.
  • 📎 Присоединённые файлы. Сканы, фото, PDF, которые хранятся прямо в базе, а не в томах на диске.
  • 🗑 Помеченные на удаление объекты. Пока их не удалили окончательно, они занимают место наравне с обычными.
  • 🔁 Обмены данными. Регистрация изменений для узлов обмена, которые давно не синхронизировались.
  • 📑 Неиспользуемые страницы после удаления. Их и освобождает сжатие.

Журнал регистрации в файловом варианте лежит отдельно, в папке 1Cv8Log рядом с 1Cv8.1CD. Размер самой базы он не меняет, но может занимать гигабайты на диске. Про него — в разделе об очистке.

Подготовка к сжатию файловой базы

Сжатие и выгрузка меняют файл базы целиком. Если процесс прервётся (отключили свет, закончилось место), файл может оказаться повреждённым. Поэтому подготовка обязательна.

Перед сжатием базы
Выполнено: 0 / 5

Как сделать копию файловой базы :

  1. Убедитесь, что базу никто не открыл. В файловом варианте проще всего посмотреть в Конфигураторе Администрирование → Активные пользователи.
  2. Скопируйте весь каталог базы, а не только 1Cv8.1CD. В каталоге лежит и журнал регистрации.
  3. Положите копию на другой физический диск или в сетевое хранилище.

Не копируйте файл базы, пока в ней кто-то работает. Копия открытого 1Cv8.1CD может оказаться неконсистентной, и восстановиться из неё не получится.

Сравнение способов, чтобы выбрать нужный:

СпособЧто даётВремяРиски
Удаление помеченных объектовОсвобождает страницы внутри файлаОт минут до часовНужно проверить, что удаляется
Тестирование и исправление со сжатиемУменьшает файлСреднеМонопольный режим, нужен запас места
Выгрузка в .dt и загрузкаСамый компактный файл, «чистые» таблицыДольше всехНужен запас места, база недоступна
chdbfl.exeПроверяет и чинит физическую структуруБыстроБез копии исправление рискованно
Архив прошлых летРезко уменьшает рабочую базуДолго, нужен бухгалтерНужно продумать перенос остатков
Дефрагментация дискаУскоряет чтение файла, размер не меняетЗависит от дискаНа SSD не делать

Удаляем помеченные объекты и лишние данные внутри базы

Сжатие освобождает только пустые страницы. Сначала их нужно получить — удалить то, что базе больше не нужно.

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

В БП 3.0 и других типовых конфигурациях на интерфейсе «Такси»: Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.

  1. Откройте обработку и выберите режим с просмотром списка объектов перед удалением.
  2. Дождитесь поиска ссылок. Объекты, на которые ссылаются другие данные, программа не удалит и покажет, кто на них ссылается.
  3. Просмотрите список. Если там есть то, что пометили по ошибке, снимите отметку.
  4. Запустите удаление.

💡 Удаление по большой базе в рабочее время тормозит всех. Запускайте его вечером или в выходной, когда пользователей нет.

Версии объектов

Если в программе включено версионирование, база хранит историю изменений документов и справочников. В типовых конфигурациях на БСП настройка находится в Администрирование → Общие настройки, в группе про историю изменений или версионирование объектов. Там можно задать срок хранения версий и удалить устаревшие.

Достаточно хранить версии за последние год-два. Более старые почти никогда не открывают.

Присоединённые файлы

Сканы договоров и актов, хранящиеся в самой базе, легко занимают больше места, чем вся учётная информация. В настройках работы с файлами (тот же раздел Администрирование → Общие настройки) можно включить хранение файлов в томах на диске и перенести туда уже загруженные файлы.

После переноса файлы будут лежать в обычной папке на сервере. Не забудьте включить её в резервное копирование .

Журнал регистрации

Журнал не входит в 1Cv8.1CD, но очистка нужна, если на диске не хватает места для сжатия.

  • В Конфигураторе: Администрирование → Журнал регистрации, в окне журнала есть команда сокращения. Укажите дату, до которой удалить записи, и при необходимости сохраните удаляемое в отдельный файл.
  • Уровень записи задаётся в Администрирование → Настройка журнала регистрации. Для небольшой фирмы обычно хватает уровня «Ошибки» или «Ошибки и предупреждения»; «Все события» быстро раздувает журнал.

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

Проверка файла базы утилитой chdbfl.exe

chdbfl.exe — утилита проверки физической целостности файловой базы. Она входит в поставку платформы и лежит в папке bin, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe.

Сама по себе утилита файл не уменьшает. Её задача — найти и исправить повреждения страниц и таблиц. Запускать её стоит перед сжатием, если база падает с ошибками, долго открывается или процедура сжатия в Конфигураторе завершилась ошибкой.

Порядок:

  1. Закройте базу у всех пользователей. Утилита работает только с закрытым файлом.
  2. Запустите chdbfl.exe от имени администратора.
  3. Укажите путь к файлу 1Cv8.1CD.
  4. Сначала запустите проверку без флажка «Исправлять обнаруженные ошибки».
  5. Если ошибки найдены, сделайте свежую копию каталога базы и запустите повторно уже с исправлением.

💡 Если chdbfl.exe нашла много ошибок, не ограничивайтесь ею. После неё прогоните тестирование и исправление в Конфигураторе: утилита чинит физическую структуру, а логические связи проверяет только Конфигуратор.

Сжатие таблиц базы через Конфигуратор

Это базовый способ уменьшить размер файловой базы 1С без выгрузки. Он перестраивает таблицы и отдаёт свободные страницы.

Пошагово

  1. Запустите базу в режиме «Конфигуратор» под пользователем с полными правами.
  2. Откройте Администрирование → Тестирование и исправление.
  3. Отметьте флажок «Сжатие таблиц информационной базы».
  4. Вместе с ним обычно включают «Реиндексацию таблиц информационной базы» — индексы тоже перестраиваются компактно.
  5. Режим — «Тестирование и исправление». Если хотите сначала оценить состояние, запустите «Только тестирование».
  6. Нажмите «Выполнить» и дождитесь сообщения о завершении. Окно Конфигуратора в это время может не отвечать — это нормально, не закрывайте его.
  7. Сравните размер 1Cv8.1CD с тем, что был до операции.

Процедура требует монопольного доступа: если в базе есть другие сеансы, Конфигуратор выдаст сообщение и не начнёт работу.

Сжатие из командной строки

Удобно для планировщика Windows: можно сжимать базу ночью по расписанию. Пример bat-файла:

@echo off
set V8="C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe"
%V8% DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DisableStartupDialogs /IBCheckAndRepair -ReIndex -IBCompression /Out"D:\Logs\compress.log"

Подставьте свою версию платформы, путь к каталогу базы и учётные данные. Результат работы запишется в файл из параметра /Out — проверяйте его после каждого запуска.

Если в базе кто-то работает, пакетный запуск не выполнит сжатие. Перед запуском по расписанию убедитесь, что вечером пользователи выходят и фоновые обмены не крутятся.

Выгрузка в .dt и загрузка — самое сильное сжатие

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

Как сделать безопасно

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

  1. В Конфигураторе рабочей базы: Администрирование → Выгрузить информационную базу. Сохраните файл, например D:\Backup\buh_2026-10-07.dt.
  2. В окне запуска 1С добавьте новую пустую информационную базу в отдельном каталоге, без конфигурации из шаблона.
  3. Откройте новую базу в Конфигураторе: Администрирование → Загрузить информационную базу, выберите сохранённый .dt.
  4. Дождитесь завершения и подтвердите перезапуск Конфигуратора.
  5. Откройте новую базу в режиме «Предприятие», проверьте ключевые отчёты: оборотно-сальдовую ведомость, остатки по складу, сальдо по расчётам.
  6. Сравните размеры старого и нового 1Cv8.1CD.
  7. Когда всё сходится, переключите пользователей на новую базу или замените каталог старой базы новым, оставив старый как архив на время.

Тот же результат из командной строки — ключи /DumpIB для выгрузки и /RestoreIB для загрузки:

%V8% DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB "D:\Backup\buh.dt"
%V8% DESIGNER /F"D:\Bases\Buh_new" /N"Администратор" /P"пароль" /RestoreIB "D:\Backup\buh.dt"

💡 Файл .dt заодно служит полноценной резервной копией. Храните его, пока не убедитесь, что новая база работает без сбоев хотя бы несколько дней.

Выгрузка требует, чтобы в базе не было пользователей. На больших базах операция занимает часы: планируйте её на выходные.

Архив прошлых лет и свёртка базы

Если база выросла из-за многолетней истории, сжатие поможет мало: данные живые, удалять нечего. Тогда остаётся уменьшить сам объём учёта.

Вариант 1. Архивная копия и новая база с остатками

  1. Сохраните текущую базу целиком как архивную (копия каталога или .dt) и подпишите период, например «Архив по 2023».
  2. Создайте новую базу на той же конфигурации.
  3. Перенесите в неё справочники и входящие остатки на начало периода.
  4. Работайте дальше в новой базе, а в архив заходите только для справок.

Способ трудоёмкий, его делают вместе с главным бухгалтером. Перенос остатков проверяют по оборотно-сальдовой ведомости до копейки.

Вариант 2. Штатная свёртка

В типовых конфигурациях, включая БП 3.0, есть обработка свёртки информационной базы. Её ищите в Администрирование → Обслуживание. Она удаляет документы до выбранной даты и формирует документы с остатками на эту дату.

Перед свёрткой сделайте копию: удалённые документы вернуть можно только из неё. Закройте период, по которому проводите свёртку, и убедитесь, что по нему не будет корректировок и уточнённых деклараций.

Дефрагментация диска для файлового варианта

Дефрагментация не уменьшает размер базы. Она собирает файл 1Cv8.1CD в непрерывную область на жёстком диске, и база быстрее открывается и проводит документы.

Когда это имеет смысл:

  • 💽 база лежит на классическом HDD;
  • 📈 файл базы часто растёт и меняется;
  • 🐢 диск заполнен больше чем на 80–85%, и Windows показывает высокую фрагментацию.

Как запустить в Windows:

  1. Закройте базу у всех пользователей.
  2. Откройте «Оптимизация дисков» (dfrgui) или командную строку от имени администратора.
  3. Выполните анализ, затем оптимизацию нужного тома. Из командной строки: defrag D: /U /V.

На SSD классическую дефрагментацию не запускайте: она лишь изнашивает накопитель. Windows сама выполняет для SSD команду TRIM через ту же «Оптимизацию дисков».

Ещё одна частая идея — включить NTFS-сжатие для папки с базой. Делать этого не стоит: файл базы постоянно меняется, и сжатие на лету заметно замедляет работу 1С.

Частые ошибки и вопросы

Ошибки, из-за которых сжатие не получается

  • ❌ Не хватило места на диске. Сжатие и загрузка создают новые структуры рядом со старыми. При нехватке места операция обрывается, и файл может быть повреждён. Держите запас не меньше двух размеров базы.
  • ❌ Сжали, не удалив помеченные. Файл почти не изменился, потому что свободных страниц не было. Сначала удаление, потом сжатие.
  • ❌ Загрузили .dt поверх единственной копии. Если файл выгрузки окажется неполным, восстановить базу будет не из чего.
  • ❌ Запустили на другой версии платформы. Выгрузка и загрузка на разных версиях иногда приводят к ошибкам. Используйте ту же платформу, на которой работает база.
  • ❌ Удалили файлы из каталога базы вручную. Удалять что-либо рядом с 1Cv8.1CD, кроме журнала через штатную команду сокращения, нельзя.
Как часто нужно сжимать файловую базу 1С?
Для небольшой базы хватает раза в квартал или после массового удаления данных. Частое сжатие пользы не даёт: свободные страницы всё равно заполнятся новыми записями.
Насколько уменьшится база после сжатия?
Зависит от того, сколько данных удалили до этого. Если база давно не обслуживалась и в ней много помеченных объектов и версий, разница бывает заметной. Если удалять было нечего, файл почти не изменится.
Можно ли сжать базу, пока бухгалтер работает?
Нет. Тестирование и исправление, выгрузка и загрузка требуют, чтобы других сеансов в базе не было. Планируйте операции на нерабочее время.
Что делать, если после сжатия база не открывается?
Восстановите каталог базы из копии, сделанной перед операцией. Затем проверьте файл утилитой chdbfl.exe и повторите сжатие при достаточном свободном месте на диске.
Когда пора переходить с файловой базы на клиент-серверную?
Когда с базой одновременно работает много пользователей, начинаются частые блокировки и замедления, а файл вырос до десятков гигабайт. Сжатие такие проблемы не решает: оно уменьшает файл, но не меняет архитектуру.