Администрирование · 10 мин
Как очистить хранилище 1С и не потерять историю конфигурации
Пошаговая инструкция по очистке хранилища конфигурации 1С: сжатие, удаление старых версий, настройка глубины хранения, профилактика роста и типичные ошибки администраторов.
Хранилище конфигурации 1С со временем разрастается: каждая помещённая версия добавляет в файлы 1cv8ddb.1CD и сопутствующие данные новые копии объектов, и через год активной командной разработки каталог хранилища может занимать десятки гигабайт. Симптомы знакомы администраторам: медленное обновление конфигурации из хранилища, долгие операции захвата и помещения, нехватка места на диске сервера.
Очистка хранилища — штатная операция, но у неё есть цена: удалённые версии восстановить невозможно. Поэтому перед любыми действиями нужно понимать, какие данные реально нужны для работы (обычно это последние десятки или сотни версий), а какие хранятся «на всякий случай» и только занимают место.
Ниже разобраны практические способы уменьшить объём хранилища: штатное сжатие, пересоздание хранилища с ограничением глубины истории, регламентная профилактика и контроль результата. Отдельно рассмотрены ошибки, которые приводят к потере истории или блокировке работы команды.
Что занимает место в хранилище и как оценить проблему
Хранилище конфигурации — это файловая база в формате 1CD (файл 1cv8ddb.1CD в каталоге хранилища), в которой последовательно накапливаются версии конфигурации. Каждая версия содержит снимок изменённых объектов, поэтому при частых помещениях крупных изменений (обновление типовой конфигурации, массовая доработка отчётов) объём растёт быстро.
Чтобы оценить масштаб, откройте каталог хранилища и посмотрите размер файла 1cv8ddb.1CD и общий размер папки. Дополнительно в Конфигураторе через меню «Конфигурация → Хранилище конфигурации → Версии хранилища» можно увидеть количество версий и их даты. Если версий тысячи, а реально для отката используются только последние месяцы работы — хранилище перегружено историей.
Посмотреть количество версий в отчёте по версиям хранилища
Замерить время операции и сравнить после очистки
Согласовать с командой минимально нужный период истории
Подготовка: резервная копия и согласование с командой
Любая операция очистки начинается с копии. Скопируйте весь каталог хранилища целиком в отдельное место (другой диск или сетевую папку) — это займёт время, но даст возможность вернуться к полной истории, если позже понадобится старая версия. Удалённая при очистке история не восстанавливается штатными средствами.
Второй обязательный шаг — согласование с разработчиками. На время очистки все пользователи должны завершить работу с хранилищем: поместить захваченные объекты или отменить захват. Если кто-то оставит захваченные объекты, при пересоздании хранилища эти изменения могут потеряться, а сама операция будет заблокирована активными соединениями.
Способ 1. Сжатие таблиц хранилища через тестирование и исправление
Самый мягкий метод — физическое сжатие файла хранилища без удаления версий. Откройте Конфигуратор в режиме, позволяющем работать с файлом хранилища как с информационной базой: файл 1cv8ddb.1CD можно открыть через утилиту тестирования и исправления (chdbfl.exe из каталога bin установленной платформы) или через конфигуратор, указав хранилище как файловую базу.
В утилите chdbfl.exe укажите файл 1cv8ddb.1CD, отметьте операцию «Сжатие таблиц» и запустите выполнение. Утилита переписывает файл, убирая неиспользуемое пространство, которое образуется после внутренних операций хранилища. История версий при этом сохраняется полностью — уменьшается только физический объём файла.
Эффект зависит от того, сколько «пустот» накопилось внутри файла: иногда сжатие освобождает заметную долю объёма, иногда — почти ничего. Если после сжатия размер всё равно неприемлем, переходите к пересозданию хранилища с ограничением глубины.
- 1Завершить все подключения к хранилищу и сделать копию каталога
- 2Открыть chdbfl.exe из каталога bin платформы
- 3Указать файл 1cv8ddb.1CD и включить операцию сжатия таблиц
- 4Дождаться завершения и проверить размер файла
- 5Проверить доступность хранилища из Конфигуратора
Способ 2. Пересоздание хранилища с ограничением глубины истории
Радикальный и самый эффективный способ — создать новое хранилище, в котором история начинается с текущей версии конфигурации. Суть: вы фиксируете актуальное состояние, отключаете рабочие базы от старого хранилища и подключаете их к новому. Старое хранилище при этом не удаляется, а архивируется — к нему можно вернуться при необходимости.
Порядок действий такой. Во-первых, убедитесь, что конфигурация рабочей базы соответствует последней версии хранилища: выполните «Обновить конфигурацию из хранилища» и обновите конфигурацию базы данных. Во-вторых, отключите конфигурацию от хранилища («Конфигурация → Хранилище конфигурации → Отключиться»). В-третьих, создайте новое хранилище в новом пустом каталоге («Создать хранилище») — текущая конфигурация станет первой версией нового хранилища.
После этого каждый разработчик подключает свою базу к новому хранилищу. Старый каталог переименуйте и сохраните как архив: если понадобится посмотреть, что было год назад, старое хранилище можно открыть, подключив к нему отдельную тестовую базу.
Способ 3. Выгрузка истории средствами конфигуратора
Промежуточный вариант — сохранить историю в виде файлов, а не в виде хранилища. Через отчёт по истории хранилища («Конфигурация → Хранилище конфигурации → Отчёт по истории») можно получить список версий с комментариями и сохранить его как документ. Для отдельных важных версий конфигурацию можно выгрузить в файлы («Выгрузить конфигурацию в файлы») и сложить в архив с пометкой номера версии.
Этот подход не заменяет полноценную историю — откатиться на произвольную версию по выгруженным файлам сложнее, чем из хранилища. Но он позволяет сохранить ключевые точки (релизы, сданные этапы) в компактном виде и спокойно пересоздать хранилище без страха потерять важное.
Сравнение вариантов
Быстро и без потери истории, но эффект ограничен объёмом внутренних пустот файла
Максимальное уменьшение объёма, но история версий обнуляется, старое хранилище нужно архивировать
Дополняет пересоздание: ключевые версии сохраняются отдельно, но полноценного отката нет
Профилактика: как не дать хранилищу разрастись снова
Очистка решает проблему один раз, но без регламента хранилище снова вырастет. Полезные практики: помещать изменения осмысленными порциями с понятными комментариями, а не десятками мелких версий в день; не хранить в хранилище конфигурации, которые фактически не дорабатываются; периодически (например, раз в квартал или после крупных релизов) выполнять сжатие файла хранилища.
Для команд, где история нужна глубоко, но старая — редко, работает схема ротации: раз в год хранилище пересоздаётся, а прежнее уходит в архив с понятным именем (например, по периоду). Так объём рабочего хранилища остаётся управляемым, а полная история доступна при редкой необходимости.
Как проверить результат очистки
После любого способа проверьте три вещи. Первое — размер: сравните объём каталога хранилища до и после. Второе — работоспособность: подключитесь к хранилищу из Конфигуратора, выполните захват и помещение тестового объекта, обновите конфигурацию из хранилища. Третье — доступность для команды: пусть хотя бы ещё один разработчик подключится и выполнит стандартные операции.
Если после пересоздания хранилища у кого-то из разработчиков база не подключается, обычно причина в том, что конфигурация его базы отличается от первой версии нового хранилища. Решение — обновить конфигурацию из хранилища или перезагрузить конфигурацию из выгруженного cf-файла актуальной версии.
Как проверить результат
Заметно меньше исходного, файл открывается
Размер не изменился или файл не открывается
Выполняются без ошибок у всех разработчиков
Ошибки соединения или конфликты версий
Старое хранилище открывается из тестовой базы
Архивный каталог удалён или повреждён
Что важно запомнить
Очистка хранилища 1С выполняется двумя путями: сжатием файла без потери истории или пересозданием хранилища с архивацией старого. Всегда начинайте с полной копии каталога и завершения захватов, а результат проверяйте тестовыми операциями захвата и помещения.
Частые вопросы
Можно ли удалить отдельные старые версии из хранилища?
Штатного механизма точечного удаления версий в середине истории нет: версии хранилища взаимосвязаны. Практический способ избавиться от старой истории — пересоздать хранилище с текущей версии, сохранив прежнее как архив.
Где физически находится хранилище конфигурации?
В каталоге, который был указан при его создании. Путь можно посмотреть в Конфигураторе в параметрах подключения к хранилищу. Основной по объёму файл внутри каталога — 1cv8ddb.1CD.
Опасно ли запускать chdbfl.exe для файла хранилища?
При соблюдении условий — нет: хранилище должно быть закрыто всеми пользователями, а перед запуском сделана копия каталога. Сжатие таблиц не меняет данные версий, а только убирает неиспользуемое пространство в файле.
Что будет с захваченными объектами при пересоздании хранилища?
Захваты привязаны к конкретному хранилищу, поэтому перед отключением все захваченные объекты нужно поместить или отменить захват. Иначе несохранённые изменения разработчиков будут потеряны.
Как часто нужно чистить хранилище?
Зависит от интенсивности разработки. Ориентир — контролировать размер файла хранилища и количество версий; при активной командной работе сжатие раз в несколько месяцев и пересоздание раз в год обычно достаточно.
Влияет ли очистка хранилища на рабочие базы пользователей?
Нет, хранилище конфигурации используется только разработчиками. Пользовательские базы продолжают работать в обычном режиме, если на время операций не выполняется обновление их конфигураций.