Удаляем лишние данные из файловой базы 1С и возвращаем место на диске

· 10 мин

Содержание

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

После удаления файл базы сам не уменьшается. Место возвращает сжатие таблиц в Конфигуратор → Администрирование → Тестирование и исправление или выгрузка и загрузка через .dt. Всё описанное относится к платформе 8.3 в интерфейсе «Такси» и подходит для любой типовой конфигурации: Бухгалтерии 3.0, ЗУП 3.1, УТ 11.

Подготовка базы к очистке данных

Удаление в 1С необратимо. Корзины нет, отмены тоже. Поэтому начинайте с копии, и не с любой, а с проверенной.

  1. Попросите пользователей выйти из базы. Если кто-то забыл закрыть программу, сеанс оборвётся вместе с несохранёнными документами, поэтому договоритесь о времени заранее.
  2. Откройте базу в Конфигураторе и выполните Администрирование → Выгрузить информационную базу. Получится файл .dt.
  3. Дополнительно скопируйте каталог базы целиком (файл 1Cv8.1CD и всё рядом с ним) при закрытой программе.
  4. Разверните .dt в новую пустую базу и убедитесь, что она открывается. Копия, которую ни разу не загружали, — это надежда, а не копия.

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

Сначала решите, что именно нужно очистить. Задача «почистить базу » обычно распадается на одну из таких:

  • 🗂 убрать мусорные элементы справочников и черновики документов;
  • 📋 полностью очистить один справочник или регистр сведений , например перед повторной загрузкой;
  • 🧹 оставить конфигурацию, но удалить все данные, чтобы начать учёт с нуля;
  • 💾 уменьшить размер файла 1Cv8.1CD, который вырос до нескольких гигабайт;
  • 📜 сократить журнал регистрации, который занимает больше самой базы.

Под каждую задачу свой способ. Сравнение — в таблице.

СпособКогда подходитРиск
Удаление помеченных объектовДесятки и сотни лишних элементов и документовНизкий: программа проверяет ссылки
Внешняя обработкаНужно очистить объект целиком, без проверки ссылокВысокий: остаются «битые» ссылки
Новая база из .cfНужна пустая база с той же конфигурациейНизкий, но данные исчезают все
Сжатие таблиц, выгрузка в .dtФайл базы большой после удаленияНизкий при наличии копии

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

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

Шаг 1. Пометить объекты на удаление

Откройте список справочника или журнал документов . Выделите строки (Shift или Ctrl + щелчок мышью) и нажмите Del. Программа спросит, пометить ли выделенное на удаление. Помеченные строки отображаются перечёркнутым значком.

Пометка ничего не удаляет физически. Документ с пометкой не делает движений по регистрам, а сам он остаётся в базе, пока его не удалят обработкой. Пометку можно снять тем же Del.

Шаг 2. Запустить обработку

В Бухгалтерии 3.0 и других конфигурациях на БСП путь такой: Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. Если раздел выглядит иначе, откройте обработку через Все функции → Обработки — команду «Все функции» включают в Сервис и настройки → Параметры, флажок «Отображать команду “Все функции”».

Дальше два режима:

  • ✅ автоматическое удаление всех помеченных — программа удалит всё, на что нет ссылок;
  • ✅ выборочное удаление — вы видите список и снимаете галочки с того, что трогать нельзя.

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

Если помеченных объектов десятки тысяч, проверка ссылок займёт часы. Запускайте удаление вечером и частями: сначала документы за один год, потом следующий.

Как полностью очистить справочник или регистр обработкой

Когда нужно стереть содержимое одного объекта целиком, удаление помеченных слишком медленное. Например, вы загрузили 50 000 номенклатурных позиций с ошибкой и хотите загрузить их заново. Тут помогает внешняя обработка, которую пишут прямо в Конфигураторе.

Как создать обработку

  1. В Конфигураторе выберите Файл → Новый → Внешняя обработка.
  2. Создайте форму обработки и добавьте на неё команду с кнопкой.
  3. В модуле формы опишите обработчик команды на клиенте и процедуру с директивой &НаСервере, которая выполнит удаление.
  4. Сохраните файл .epf и откройте его в режиме 1С:Предприятие через Файл → Открыть.

Для открытия внешних обработок у пользователя должна быть соответствующая роль. Проще всего запускать от пользователя с полными правами.

Очистка справочника

Код ниже удаляет все элементы справочника напрямую, минуя пометку и проверку ссылок. Вместо ИмяСправочника подставьте имя объекта из дерева конфигурации.

&НаСервере
Процедура ОчиститьСправочникНаСервере()
    Выборка = Справочники.ИмяСправочника.Выбрать();
    Пока Выборка.Следующий() Цикл
        Объект = Выборка.ПолучитьОбъект();
        Если Объект = Неопределено Тогда
            Продолжить; // уже удалён вместе с родительской группой
        КонецЕсли;
        Объект.ОбменДанными.Загрузка = Истина;
        Объект.Удалить();
    КонецЦикла;
КонецПроцедуры

Свойство ОбменДанными.Загрузка = Истина отключает обработчики модуля объекта при записи и удалении. Без него типовая конфигурация может запретить удаление или начать долгие проверки.

Очистка регистра сведений

Для независимого регистра сведений достаточно записать пустой набор записей без отбора. Запись с замещением сотрёт все строки регистра.

&НаСервере
Процедура ОчиститьРегистрНаСервере()
    Набор = РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей();
    Набор.ОбменДанными.Загрузка = Истина;
    Набор.Записать(Истина);
КонецПроцедуры

Регистры, подчинённые регистратору, так не чистят. Их записи принадлежат документам и удаляются вместе с документами или при отмене проведения.

Прямое удаление не проверяет ссылки. Если удалить справочник «Номенклатура», в документах останутся строки с «битыми» ссылками вида <Объект не найден>. Перед массовой очисткой убедитесь, что на объект никто не ссылается или что документы вы тоже удалите.

Полная очистка базы через Конфигуратор

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

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

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

Если конфигурация не дорабатывалась, её можно взять и из шаблона поставки: при создании базы выберите «Создание информационной базы из шаблона». Но с доработками надёжнее .cf из своей базы.

Нужна пустая база с сохранёнными справочниками? Тогда идите обратным путём: сделайте копию через .dt, разверните её и в копии удалите документы помеченными объектами. Справочники, на которые больше никто не ссылается, останутся, если вы их не помечали.

Журнал регистрации, настройки пользователей и другие «невидимые» таблицы

Часто база растёт не из-за документов. Место занимают служебные данные, которые в обычных списках не видны.

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

У файловой базы журнал хранится не внутри 1Cv8.1CD, а в каталоге 1Cv8Log рядом с ним. При подробном логировании он вырастает до гигабайтов.

Сократить журнал можно в Конфигураторе: Администрирование → Журнал регистрации, затем команда сокращения журнала в окне просмотра. Там же задают дату, до которой записи удаляются, и при желании сохраняют удаляемую часть в отдельный файл. Уровень логирования и период хранения настраивают в Администрирование → Настройка журнала регистрации.

Каталог 1Cv8Log можно удалить целиком только при закрытой базе, когда в неё никто не вошёл. Журнал начнётся заново, а история действий пользователей будет потеряна. Если журнал нужен для разбора спорных ситуаций, сначала скопируйте папку.

Настройки пользователей

Сохранённые формы, отборы и варианты отчётов тоже лежат в базе. Их чистят, когда у пользователя «съехала» форма или база тормозит при открытии списков. В Бухгалтерии 3.0: Администрирование → Настройки пользователей и прав → Настройки пользователей. Там выбирают пользователя и удаляют настройки выборочно или все сразу.

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

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

Сжатие файла базы после удаления данных

После удаления 10 000 документов файл 1Cv8.1CD останется прежнего размера. Платформа помечает освободившееся место как свободное и использует его для новых данных, но сама на диске не отдаёт. Чтобы файл похудел, его нужно пересобрать.

Способ 1. Тестирование и исправление

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

Способ 2. Выгрузка и загрузка .dt

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

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

Утилита chdbfl.exe

В каталоге bin установленной платформы лежит chdbfl.exe. Она проверяет физическую целостность файла 1Cv8.1CD и запускается без Конфигуратора. Это инструмент на случай, когда база не открывается после сбоя, а не для очистки. Запускайте её только при закрытой базе и на копии файла.

Метод сжатияМонопольноПлюсыМинусы
Сжатие таблицДаНе нужно место под .dtДолго на базах в десятки ГБ
Выгрузка/загрузка .dtДаФайл собирается с нуляНужно место под выгрузку и проверка загрузки

Чем мельче файл, тем быстрее файловая база работает по сети. Но у файлового режима есть потолок: при базе больше 10–20 ГБ и пяти-десяти одновременных пользователях задумайтесь о переходе на клиент-серверный вариант. Это не жёсткое ограничение, а практический ориентир.

Выгрузка нужных данных в новую базу

Иногда проще не чистить старую базу, а перенести в чистую только нужное. Подходит, когда за годы накопилось много мусора, а нужны лишь справочники и остатки.

  • 📦 Универсальный обмен данными в формате XML. Обработка выгружает выбранные справочники и документы в файл и загружает его в другую базу. Удобно для справочников: номенклатура, контрагенты, договоры.
  • 🔄 Перенос остатков. В Бухгалтерии 3.0 начальные остатки вносят помощником ввода остатков. Старые документы не переносят вовсе, а на дату начала учёта вводят сальдо.
  • 🧩 Синхронизация данных. Если между конфигурациями настроен типовой обмен, им можно перенести данные в новую базу той же конфигурации.

Новая база при этом весит в разы меньше, а в журнале нет истории. Минус — старые документы остаются только в архивной базе. Её не удаляйте: держите отдельно на случай проверки.

Что вам нужно сделать с базой?

Частые вопросы об очистке файловой базы

Можно ли удалить таблицу из файла 1Cv8.1CD сторонней программой?
Технически существуют утилиты для просмотра файла 1CD. Но правка таблиц в обход платформы нарушает связи данных и может сделать базу неоткрываемой. Для очистки используйте средства самой 1С.
Почему после удаления помеченных объектов база не уменьшилась?
Платформа не возвращает освободившееся место диску. Нужно сжатие таблиц в «Тестировании и исправлении» или выгрузка и загрузка .dt.
Нужен ли монопольный доступ для удаления помеченных объектов?
В современных релизах типовых конфигураций удаление можно выполнять при работающих пользователях, но объекты, которые они редактируют, удалены не будут. Спокойнее запускать вечером без пользователей.
Как узнать, какая таблица занимает больше всего места?
Встроенного отчёта о размере таблиц в файловом режиме нет. Ориентируйтесь на объём данных: обычно больше всего весят регистры с многолетней историей, версии объектов и присоединённые файлы, хранящиеся в базе.
Восстановятся ли удалённые объекты, если отменить операцию?
Нет. Удалённое из базы возвращается только из резервной копии. Поэтому выгрузка .dt перед очисткой обязательна.