База данных 1С:Управление нашей фирмой (УНФ) со временем разрастается до гигантских размеров — сотни гигабайт не редкость для компаний с активным документооборотом. Это приводит к замедлению работы, увеличению времени резервного копирования и риску потери производительности в пиковые нагрузки. Раздутая база не только тормозит систему, но и усложняет администрирование: архивация занимает часы, а восстановление после сбоев становится проблемой.

Многие администраторы ошибочно считают, что единственный способ борьбы с разросшейся базой — покупка более мощного сервера. На практике до 70% объема занимают ненужные данные: удалённые документы, устаревшие версии объектов, временные файлы и дубликаты. Правильная очистка позволяет сократить размер базы в 2–5 раз без приобретения нового оборудования. В этой статье — проверенные методы оптимизации, которые работают даже для баз объёмом 100+ ГБ.

⚠️ Внимание: Перед любыми манипуляциями с базой 1С:УНФ обязательно создайте полную резервную копию через Конфигуратор → Администрирование → Выгрузить информационную базу. Операции очистки необратимы — восстановление данных после удаления возможно только из бэкапа.

1. Анализ текущего состояния базы: что занимает место?

Прежде чем приступать к очистке, необходимо понять, какие именно данные раздувают базу. В 1С:УНФ основные "пожиратели" места:

  • 📄 Документы и регистры — история изменений, удалённые объекты, неактуальные записи в регистрах накопления (например, остатки товаров за 5-летней давности).
  • 🖼️ Вложенные файлы — сканы документов, фотографии товаров, архивы в формате .zip или .pdf, которые хранятся прямо в базе.
  • 🔄 Журналы регистрации — логи изменений, истории транзакций и технические записи, которые накапливаются годами.
  • 🗑️ Временные файлы — кэш отчётов, промежуточные данные обменов, неудачные транзакции.

Чтобы получить детальный отчёт о структуре базы, используйте встроенный инструмент Тестирование и исправление:

  1. Откройте Конфигуратор от имени администратора.
  2. Перейдите в Администрирование → Тестирование и исправление.
  3. На вкладке Проверка логической целостности установите флаги:
    • 🔲 Проверять ссылочную целостность
    • 🔲 Проверять полноту индексов
    • 🔲 Анализировать использование дискового пространства
  • Нажмите Выполнить и дождитесь формирования отчёта (может занять от 10 минут до нескольких часов для крупных баз).
  • В результате вы получите файл с расширением .mxl, где будет указано, какие таблицы занимают больше всего места. Особое внимание уделите разделам с пометкой "Удаленные объекты" и "Неиспользуемые данные" — их можно безопасно очистить.

    📊 Как часто вы проводите очистку базы 1С УНФ?
    Раз в месяц
    Раз в квартал
    Раз в год
    Никогда
    Не знаю, что это

    2. Очистка удалённых и помеченных объектов

    Удалённые документы и справочники физически не исчезают из базы — они лишь помечаются как неактивные и скрываются от пользователей. Со временем таких "призраков" накапливается тысячи, и они занимают до 30–40% объёма базы.

    Для их полного удаления:

    1. В Конфигураторе перейдите в Администрирование → Удаление помеченных объектов.
    2. В окне настроек выберите:
      • 🔲 Удалять помеченные объекты
      • 🔲 Удалять неиспользуемые версии объектов
      • 🔲 Очищать таблицы истории данных
  • Укажите период, за который нужно удалить данные (например, "старше 1 года").
  • Нажмите Выполнить и подтвердите операцию.
  • ⚠️ Внимание: Если в вашей компании ведётся аудит или требуется хранить данные за прошлые периоды (например, для налоговой), не удаляйте объекты старше 3–5 лет. Лучше архивируйте их в отдельную базу.

    Создать резервную копию базы|Проверить наличие активных сессий пользователей|Убедиться, что нет незавершённых транзакций|Предупредить бухгалтерию о временной блокировке базы-->

    3. Оптимизация вложенных файлов: перенос на диск

    Файлы, прикреплённые к документам (сканы договоров, фотографии товаров, Excel-отчёты), хранятся прямо в базе данных. Один .pdf-файл объёмом 5 МБ, умноженный на 10 000 документов, даёт +50 ГБ к размеру базы. Решение — перенос вложений во внешнее хранилище.

    В 1С:УНФ есть встроенный механизм для этого:

    1. Откройте Администрирование → Настройки программы → Хранение файлов.
    2. Выберите вариант "Хранить файлы во внешнем хранилище".
    3. Укажите путь к папке на сервере (например, \\Server\1C_Attachments\).
    4. Нажмите Перенести существующие файлы и дождитесь завершения операции.

    После переноса:

    • 📂 Файлы будут храниться на диске, а в базе останутся только ссылки на них.
    • 🔗 Скорость работы с документами увеличится (не нужно грузить тяжелые вложения из базы).
    • 📉 Размер базы сократится на 10–50% (зависит от количества вложений).
    • ⚠️ Внимание: Папка с вложениями должна быть доступна всем пользователям 1С и иметь права на запись. Если файлы хранятся на сетевом диске, убедитесь, что нет проблем с доступом при большом количестве подключений.

      💡

      Перед переносом вложений проверьте свободное место на целевом диске — оно должно превышать текущий объём вложений в базе как минимум в 1.5 раза.

      4. Архивация и выгрузка старых данных

      Данные за прошлые годы (например, документы 2018–2020 гг.) редко используются в текущей работе, но занимают львиную долю места. Их можно выгрузить в отдельную архивную базу, оставив в основной только актуальную информацию.

      Для этого:

      1. Создайте новую базу 1С:УНФ (например, УНФ_Архив_2020).
      2. В основной базе перейдите в Администрирование → Выгрузка данных.
      3. Укажите период (например, "с 01.01.2020 по 31.12.2020").
      4. Выберите объекты для выгрузки:
        • 📋 Документы (Реализация, Поступление, Счета)
        • 📊 Регистры накопления (Остатки товаров, Взаиморасчёты)
        • 👥 Справочники (Контрагенты, Номенклатура — только используемые в выгружаемом периоде)
    • Нажмите Выгрузить и сохраните файл.
    • Загрузите данные в архивную базу через Администрирование → Загрузка данных.
    • После выгрузки старые данные можно удалить из основной базы с помощью обработки "Удаление данных по периодам" (доступна в Конфигураторе).

      Тип данных Рекомендуемый срок хранения в основной базе Можно ли архивировать
      Документы продаж/закупок 3 года Да
      Кассовые ордера 5 лет Да (с оговорками для налоговой)
      Справочники (Контрагенты, Номенклатура) Вечно Нет (только неиспользуемые записи)
      Регистры остатков 1 год Да (кроме текущих остатков)
      Что делать, если после архивации пропадут ссылки на старые документы?

      В 1С:УНФ при выгрузке данных в архивную базу сохраняются ссылки на объекты. Если пользователь откроет документ, ссылающийся на архивные данные, система предложит подключиться к архивной базе. Настройте права доступа так, чтобы пользователи могли просматривать архивные данные, но не редактировать их.

      5. Сжатие базы данных через chdbfl.exe

      Даже после удаления ненужных данных файл базы .1CD не уменьшается физически — освободившееся пространство просто помечается как доступное для записи. Чтобы физически сократить размер файла, нужно выполнить сжатие утилитой chdbfl.exe.

      Инструкция:

      1. Закройте все сеансы 1С:Предприятие (включая фоновые задачи).
      2. Откройте командную строку от имени администратора.
      3. Перейдите в папку с утилитами (обычно C:\Program Files (x86)\1cv8\<версия>\bin\).
      4. Выполните команду:
        chdbfl.exe -p"Путь\к\базе.1CD" -cpack -f

        где -p — путь к файлу базы, -cpack — ключ сжатия, -f — принудительное выполнение.

      Пример команды для базы C:\Bases\UNF.1CD:

      chdbfl.exe -p"C:\Bases\UNF.1CD" -cpack -f

      Процесс может занять от нескольких минут до часов (зависит от размера базы). По завершении файл .1CD уменьшится до реального занимаемого места.

      ⚠️ Внимание: Если база находится на SQL-сервере, утилита chdbfl.exe не подходит. Вместо неё используйте стандартные инструменты Microsoft SQL Server Management Studio для сжатия базы данных (опция Shrink Database).

      💡

      Сжатие базы утилитой chdbfl.exe — обязательный шаг после любой очистки. Без него файл .1CD не уменьшится физически, даже если данные удалены.

      6. Оптимизация регистров накопления и журналов

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

      Для этого:

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

    Аналогично можно очистить журналы регистрации:

    1. Перейдите в Администрирование → Журналы регистрации.
    2. Выберите журнал (например, "Журнал изменений документов").
    3. Нажмите Очистить и укажите период (например, "старше 1 года").
    4. ⚠️ Внимание: Усечение регистров накопления необратимо изменяет данные. После операции невозможно будет сформировать отчёты по остаткам или оборотам за удалённые периоды. Всегда проверяйте, что архивные данные выгружены отдельно.

      7. Настройка автоматической очистки

      Чтобы база не разрасталась снова, настройте регулярную автоматическую очистку. В 1С:УНФ для этого есть встроенные механизмы:

      • 🗓️ Планировщик заданий:
        • Перейдите в Администрирование → Планировщик заданий.
        • Создайте новое задание с типом "Очистка помеченных объектов".
        • Установите расписание (например, "Каждую субботу в 3:00").
      • 📊 Политики хранения данных:
        • В Настройки программы → Политики хранения настройте автоматическое удаление старых версий объектов (например, "Хранить не более 5 версий документа").
      • 🔄 Архивация по расписанию:
        • Настройте ежемесячную выгрузку данных старше 2 лет в архивную базу (через Планировщик → Выгрузка данных).

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

    1. Создайте задание с именем "Очистка удалённых объектов".
    2. В поле "Действие" выберите "Удаление помеченных объектов".
    3. Укажите параметры:
      • Удалять объекты старше: 30 дней
      • Очищать историю изменений: Да
    4. Установите расписание: "Еженедельно, воскресенье, 02:00".
    5. ⚠️ Внимание: Автоматическая очистка может конфликтовать с фоновыми задачами (например, регламентными операциями). Проверьте, чтобы время выполнения заданий не совпадало.

      8. Дополнительные методы: реструктуризация и пересоздание базы

      Если после всех манипуляций база всё ещё слишком большая (например, >50 ГБ), рассмотрите радикальные методы:

      • 🔧 Реструктуризация базы:
        • В Конфигураторе выберите Администрирование → Реструктуризация информационной базы.
        • Эта операция перестраивает таблицы базы данных, удаляя фрагментацию и оптимизируя индексы.
        • Может сократить размер на 5–15% и ускорить работу.
      • 🆕 Пересоздание базы с нуля:
        • Экспортируйте все данные через Выгрузка данных (XML).
        • Создайте новую пустую базу 1С:УНФ.
        • Импортируйте только необходимые данные (например, без истории изменений).
        • Этот метод даёт максимальное сокращение размера, но требует тщательной подготовки.

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

    ⚠️ Внимание: Реструктуризация может занять несколько часов и требует двойного свободного места на диске (на время операции создаётся копия базы). Перед началом проверьте дисковое пространство.

    FAQ: Частые вопросы по уменьшению размера 1С УНФ

    Можно ли удалить данные за текущий год, чтобы сэкономить место?

    Нет, это приведёт к потере актуальной информации и нарушению целостности отчётов. Удаляйте только данные старше 2–3 лет, предварительно выгрузив их в архив. Для текущего года можно очистить только временные файлы и помеченные на удаление объекты.

    Почему после очистки размер файла .1CD не изменился?

    Файл базы .1CD не уменьшается автоматически после удаления данных. Чтобы физически сократить его размер, необходимо выполнить сжатие утилитой chdbfl.exe (для файлового варианта) или команду Shrink Database (для SQL-варианта). Без этого освободившееся пространство остаётся резервированным.

    Как перенести вложения обратно в базу, если внешнее хранилище стало недоступно?

    Если папка с вложениями была удалена или стала недоступна:

    1. Создайте новую папку для хранения файлов.
    2. В 1С:УНФ перейдите в Администрирование → Настройки программы → Хранение файлов.
    3. Укажите путь к новой папке и нажмите Перенести файлы обратно в базу.
    4. Если файлы утеряны, их придётся загружать заново вручную через документы.

    Сколько времени занимает сжатие базы утилитой chdbfl.exe?

    Время зависит от размера базы и производительности диска:

    • База 10–50 ГБ: 30 минут — 2 часа.
    • База 50–200 ГБ: 2–6 часов.
    • База 200+ ГБ: 6–12 часов (рекомендуется выполнять ночью).

    На SSD-дисках процесс идёт в 2–3 раза быстрее, чем на HDD.

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

    Да, но с оговорками:

    • 🔹 Удаление помеченных объектов и очистку журналов можно выполнять в фоновом режиме.
    • 🔹 Сжатие базы (chdbfl.exe) и реструктуризацию необходимо проводить при закрытых сеансах.
    • 🔹 Перенос вложений можно делать без остановки работы, но это может временно замедлить систему.

    Для минимального простоя планируйте операции на нерабочие часы (ночь, выходные).