Почему файл 1Cv8.1CD растёт и как вернуть ему нормальный объём

· 10 мин

Содержание

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

Всё ниже относится к платформе 1С:Предприятие 8.3 и файловому варианту базы. Для клиент-серверной базы на MS SQL или PostgreSQL логика та же, но файл данных сжимают средствами СУБД — об этом отдельный абзац в конце.

Откуда берутся лишние гигабайты в информационной базе

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

Основные причины разрастания:

  • 📄 Пустые страницы после удаления объектов, перепроведения, обновления конфигурации. Размер «пухнет», а реальных данных в нём меньше.
  • 🗂 Версии объектов. В типовых конфигурациях на БСП каждая запись документа может сохранять его прошлую версию. За несколько лет это гигабайты.
  • 📎 Присоединённые файлы — сканы, PDF, картинки, которые пользователи прикрепляют к документам и хранят прямо в базе.
  • 🔄 Регистрация изменений для обмена. Если узел обмена (например, старая розничная точка) давно не забирает данные, изменения копятся для него бесконечно.
  • 🗑 Помеченные на удаление объекты, которые годами никто не удаляет.
  • 📊 Служебные регистры сведений: история обменов, протоколы загрузки банковских выписок, данные интернет-поддержки, кэши расчётов.
  • 🕰 Многолетняя история — документы за 8–10 лет в одной базе.

Журнал регистрации и индекс полнотекстового поиска в файловой базе лежат рядом с 1Cv8.1CD, в подкаталогах 1Cv8Log и 1Cv8FTxt. Они не входят в сам файл базы, но занимают место в её каталоге. Если «база весит 20 ГБ» — сначала посмотрите, что именно столько весит.

Как понять, что раздувает файл

Откройте каталог базы и посмотрите размеры: отдельно 1Cv8.1CD, отдельно папки 1Cv8Log и 1Cv8FTxt. Если основной вес — журнал, сжатие базы не поможет, нужно чистить журнал.

Чтобы понять, какие таблицы внутри базы самые тяжёлые, в типовых конфигурациях на БСП есть отчёт о размере данных: ищите его в разделе Администрирование через поиск по слову «размер». Он показывает объём по объектам конфигурации — сразу видно, кто лидер: версии объектов, файлы или регистр обмена.

Сжатие таблиц через «Тестирование и исправление»

Это штатная процедура платформы и первый шаг в любом случае. Она перепаковывает таблицы и отдаёт свободное место файлу.

Что нужно до запуска

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

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

Пошагово

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

После сжатия сравните размер 1Cv8.1CD с исходным. Если база давно не обслуживалась, разница бывает в 20–40%. Если почти ничего не изменилось — значит, пустых страниц было мало и место занимают реальные данные. Тогда переходите к очистке.

Не прерывайте тестирование и исправление снятием задачи в диспетчере. Обрыв в середине операции может повредить файл. Если процесс идёт долго, ждите.

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

Сжатие убирает пустоты, но не удаляет данные. Чтобы файл реально похудел, сначала нужно избавиться от того, что не нужно.

Помеченные на удаление

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

Порядок такой:

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

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

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

Если отчёт о размере показал, что лидер — регистр версий объектов, откройте Администрирование → Общие настройки и найдите группу версионирования объектов. Там задаётся, для каких документов хранить историю и как долго, и есть команда очистки устаревших версий.

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

Регистрация изменений для обмена

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

Служебные регистры сведений

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

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

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

Если база тяжёлая из-за сканов, переведите хранение файлов в тома на диске. В БСП-конфигурациях эта настройка лежит в Администрирование → Общие настройки, в группе работы с файлами: режим хранения «В томах на диске» и список томов. После этого уже накопленные файлы переносят из базы в том отдельной командой переноса. Файлы останутся доступны пользователям, но перестанут раздувать 1Cv8.1CD.

Выгрузка и загрузка через файл .dt

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

Как сделать

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

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

Сжатие таблиц или перезагрузка — что выбрать

СпособКогда подходитВремяРиски
Сжатие таблицРегулярное обслуживание, база до 5–10 ГБМинуты — часМинимальные при наличии копии
Выгрузка/загрузка .dtБаза давно не обслуживалась, сжатие мало помоглоЧас и большеНужна проверка новой базы; места на диске нужно в 2–3 раза больше
Свёртка базыМноголетняя история, данные прошлых лет не нужныДень и большеИзменение учётных данных, нужна подготовка

Если данных действительно много

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

Альтернатива свёртке — перевод на клиент-серверный вариант. Для файловой базы объёмом от 10–15 ГБ и 5–10 одновременных пользователей это часто разумнее, чем бороться с размером.

Регулярное обслуживание и хранение копий

Разовое сжатие помогает на несколько месяцев. Чтобы файл не возвращался к прежнему объёму, обслуживание ставят на расписание.

Разумная периодичность

ОперацияКак часто
Выгрузка в .dt или копия каталогаЕжедневно, ночью
Сжатие таблицРаз в месяц или после крупных удалений
Удаление помеченных объектовРаз в квартал
Очистка устаревших версий объектовРаз в квартал или автоматически по настройке
Сокращение журнала регистрацииРаз в полгода

Автоматизация через пакетный режим

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

@echo off
rem Укажите номер своей версии платформы в пути
set V8="C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe"
set BASE=D:\Bases\Buh
set BACKUP=E:\Backup

rem Выгрузка в .dt с датой в имени
%V8% DESIGNER /F "%BASE%" /N "Администратор" /P "пароль" /DisableStartupDialogs /DumpIB "%BACKUP%\buh_%date:~6,4%%date:~3,2%%date:~0,2%.dt" /Out "%BACKUP%\dump.log"

rem Сжатие таблиц
%V8% DESIGNER /F "%BASE%" /N "Администратор" /P "пароль" /DisableStartupDialogs /IBCheckAndRepair -IBCompression /Out "%BACKUP%\compress.log"

Запускайте его через Планировщик заданий Windows ночью, когда в базе никого нет. Если кто-то останется в базе, операция не выполнится, и причина будет в лог-файле из параметра /Out.

Пароль администратора в bat-файле лежит открытым текстом. Создайте для обслуживания отдельного пользователя с административными правами и ограничьте доступ к каталогу со скриптом.

Где хранить копии

  • 💾 Не на том же диске, где база: при отказе диска пропадёт всё сразу.
  • 🗓 Схема хранения: 7 ежедневных, 4 еженедельных, 12 ежемесячных копий. Старые удаляйте скриптом.
  • 🗜 Файл .dt уже упакован, архиватором его почти не сжать. Копию каталога с 1Cv8.1CD, наоборот, архиватор сжимает хорошо.
  • ✅ Раз в квартал разворачивайте копию в тестовую базу и проверяйте, что она открывается.

Журнал регистрации и прочие файлы в каталоге базы

Журнал регистрации часто весит больше, чем сама база. Особенно если в настройках включена регистрация всех событий.

Как сократить журнал

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

Как снизить скорость роста

В Конфигураторе: Администрирование → Настройка журнала регистрации. Здесь два параметра:

  • 📶 Уровень регистрации. «Регистрировать ошибки» или «Регистрировать ошибки и предупреждения» достаточно для большинства баз. Уровень «Регистрировать все события» оставляйте только на время расследования проблемы.
  • 📅 Разделение журнала по периодам (по дням, месяцам, годам). Тогда старые периоды лежат отдельными файлами, и их легко архивировать или удалять.

Технологический журнал и кэш

Технологический журнал (logcfg.xml) пишет отдельно, в каталог, указанный в настройке. Если его когда-то включили для диагностики и забыли — он может занять десятки гигабайт. Найдите файл logcfg.xml в каталоге conf установки платформы и удалите или переименуйте его, чтобы отключить журнал. Изменение вступает в силу без перезапуска, но перед этим убедитесь, что журнал больше не нужен тому, кто его включал.

Индекс полнотекстового поиска (1Cv8FTxt) пересоздаётся программой. Если поиском не пользуетесь, отключите его в разделе администрирования, в настройках поиска, и каталог перестанет расти.

Кэш пользователя (%APPDATA%\1C\1cv8) к размеру базы не относится. Он лежит на компьютере пользователя и на объём 1Cv8.1CD не влияет.

Клиент-серверная база

Для базы на MS SQL сжатие в Конфигураторе почти не уменьшает файлы .mdf и .ldf. Место возвращают средствами сервера: модель восстановления, резервное копирование журнала транзакций, затем сжатие файла средствами SQL Server. Для PostgreSQL аналог — VACUUM FULL. Обе операции блокируют таблицы, так что выполняют их в окно обслуживания, когда пользователи 1С не работают.

Частые вопросы

Есть ли предел размера файловой базы 1С?
В старом формате файла (до платформы 8.3.8) был лимит 4 ГБ на одну таблицу. В новом формате этого ограничения нет, но при объёме больше 10–15 ГБ файловая база заметно замедляется, и лучше переходить на клиент-серверный вариант.
Почему после удаления документов файл базы не уменьшился?
Платформа помечает освободившиеся страницы как свободные, но не отдаёт место файлу. Чтобы размер уменьшился, после удаления нужно выполнить сжатие таблиц или перезагрузку через .dt.
Можно ли сжать базу, пока в ней работают пользователи?
Нет. Тестирование и исправление и загрузка .dt требуют монопольного доступа. Всех пользователей нужно вывести из базы заранее.
Безопасно ли удалить папку 1Cv8Log?
Технически база без неё откроется и создаст журнал заново, но вся история действий пользователей пропадёт. Лучше сократить журнал штатной командой и сохранить удаляемую часть в архив.
Сколько места нужно на диске для перезагрузки через .dt?
Ориентир — в 2–3 раза больше размера текущего файла 1Cv8.1CD: сама база, файл выгрузки и новая база одновременно.