Освобождаем место: чистка файлов и томов хранения в 1С

· 9 мин

Содержание

Хранилище 1С чистят в таком порядке: сначала узнают, что именно занимает место, затем удаляют ненужные версии файлов штатными средствами, потом разбираются с «осиротевшими» файлами на диске и кэшем. Всё это делается после полной копии базы и самих томов.

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

Перед любой чисткой сделайте копию базы и копию каталога томов. Удалённый файл из тома обратно через 1С не вернуть.

С чего начать: откуда берётся рост и что проверить перед стартом

Присоединённые файлы в 1С могут лежать двумя способами:

  • 🗄 В информационной базе. Файл хранится прямо в таблицах. База распухает, копия и обновление занимают всё больше времени.
  • 📁 В томах на диске. В базе остаётся запись о файле, а сам файл лежит в каталоге на сервере или в сетевой папке.

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

Перед стартом проверьте:

  1. Есть ли свежая копия базы и каталога томов, и проверено ли, что она разворачивается.
  2. Сколько свободного места на диске сервера сейчас. Если меньше 10–15%, начните с кэша и временных файлов, а не с удаления данных.
  3. Работают ли в базе пользователи. Массовые операции с файлами лучше запускать вечером или в выходной.
  4. Кто в компании «хозяин» файлов. Бухгалтерию, юристов и склад лучше предупредить: устаревшими они считают не то, что считаете вы.

Как найти, что занимает место: анализ заполненности

Угадывать не надо, всё считается.

Размер каталога томов

На сервере посмотрите размер папки тома средствами ОС. В Windows — свойства папки или утилита вроде WinDirStat, в Linux — команда:

du -sh /var/1c/files/* | sort -h

Путь замените на свой. Он указан в настройках тома. Сравните размеры по подкаталогам: тома делятся на папки по дате, и сразу видно, какой месяц «раздулся».

Размер самой базы

Для файловой базы это размер файла 1Cv8.1CD. Для клиент-серверной — размер базы в СУБД. В PostgreSQL:

SELECT pg_size_pretty(pg_database_size('имя_базы'));

Если база выросла сильнее, чем тома, файлы лежат внутри неё.

Кто и что хранит

В программе откройте справочник присоединённых файлов нужного вида (например, «Файлы» или «Присоединённые файлы» в карточке документа) и отсортируйте список по размеру. Найти справочник проще всего поиском по форме: введите слово «файлы» в строку поиска по функциям. Обычно 5–10% самых тяжёлых файлов дают больше половины объёма: видео, архивы, сканы в 300 dpi без сжатия.

Что смотримГдеЧто это даёт
Размер томов по подкаталогамСредства ОСКакой период разросся
Самые тяжёлые файлыСписок файлов, сортировка по размеруКандидаты на сжатие или удаление
Размер базыФайл 1Cv8.1CD или СУБДЛежат ли файлы внутри базы
Число версий у одного файлаКарточка файла, история версийЕсть ли «хвост» старых версий

Штатная чистка: удаление устаревших версий и помеченных файлов

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

Порядок работы

  1. Откройте настройки присоединённых файлов в разделе «Администрирование» и найдите параметры очистки: срок хранения версий и список правил по видам файлов.
  2. Задайте срок. Для сканов документов это обычно полгода–год, для рабочих черновиков — месяц-два.
  3. Включите автоматическую очистку или запустите вручную. Проверьте регламентные задания: нужное задание должно быть включено и иметь расписание, например раз в ночь.
  4. Дождитесь окончания и сравните размер тома до и после.

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

Файл, помеченный на удаление, место не освобождает. Он исчезает только после обработки «Удаление помеченных объектов» (раздел «Администрирование» → «Обслуживание», либо поиск по названию). Запустите сначала режим контроля: он покажет, на какие объекты ещё есть ссылки, и не даст удалить то, что используется.

Если файлов помечено много, делайте это партиями по несколько тысяч, а не одной операцией. Так меньше риск блокировок и обрыва по таймауту.

Файлы-сироты: ручное удаление того, чего нет в базе

«Сирота» — файл, который физически лежит в каталоге тома, но записи о нём в базе уже нет. Возникает после аварийного завершения записи, ручного удаления записей, восстановления старой копии базы поверх новых томов.

Бывает и обратная ситуация: запись в базе есть, а файла на диске нет. Пользователь при открытии получает ошибку.

Как найти сирот

В программах с библиотекой стандартных подсистем у тома хранения есть проверка целостности: она сопоставляет файлы на диске с записями в базе и показывает расхождения в обе стороны. Откройте список томов (через поиск по слову «тома») и найдите команду проверки на форме тома.

Если команды нет, действуйте вручную:

  1. Выгрузите из базы список путей файлов (отчётом по справочнику версий файлов, колонка с путём к файлу в томе).
  2. Получите список файлов на диске: dir /s /b в Windows или find /путь -type f в Linux.
  3. Сравните два списка в любом инструменте сравнения.
  4. Всё, что есть на диске, но нет в базе, — кандидаты в сироты.

Удаление

Сначала перенесите сирот в отдельную папку, а не удаляйте. Подождите 2–4 недели. Если никто не пожаловался на «потерянный файл», папку можно стереть.

Не удаляйте файлы по маске или по дате изменения «на глаз». Старый по дате файл вполне может быть живой записью базы.

Архивация и срок хранения: чтобы мусор не копился заново

Разовая чистка без правил бесполезна: через полгода диск снова полон. Нужна политика хранения.

Простая схема на три уровня:

  • 📂 Горячие файлы (текущий и прошлый год) — на быстром диске, в основном томе.
  • 🗃 Тёплые (1–5 лет) — в отдельном томе на более дешёвом диске. Доступ нужен редко, но нужен.
  • 🧊 Холодные (старше срока хранения по закону) — в архив вне базы или на удаление.

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

Что настраивается технически:

  1. Несколько томов. В 1С можно создать несколько томов и задать правила: файлы за какой год в какой том попадают.
  2. Ограничение размера файла. В настройках присоединённых файлов есть максимальный размер загружаемого файла. Выставьте разумный предел, например 50 МБ, и видео в базу не попадут.
  3. Сжатие сканов. Скан страницы в формате PDF должен весить 100–300 КБ, а не 5 МБ. Настройте сканер на 200 dpi, чёрно-белый или серый режим.
  4. Перенос из базы в тома. Если файлы лежат внутри базы, в настройках есть возможность перенести их в тома. Для базы на сотни гигабайт это самое выгодное действие.

Пример. В базе 120 ГБ, из них файлы 80 ГБ. После переноса в тома база весит около 40 ГБ, обновление и копирование идут вдвое быстрее, а сами файлы копируются отдельно и инкрементально.

Кэш и временные файлы: быстрая чистка без риска для данных

Здесь ничего важного удалить нельзя, поэтому именно с этого безопасно начинать, если диск почти полон.

На рабочем месте пользователя

Кэш клиента лежит в профиле пользователя, в папках 1C\1cv8 (локальные данные) и 1C\1cv8 в каталоге данных приложений. Перед удалением закройте все окна 1С. Содержимое папок с длинными именами из букв и цифр можно стирать: платформа создаст их заново при следующем входе.

Помогает при странных ошибках интерфейса, «пропавших» командах и после обновления платформы. Запуск с ключом /ClearCache делает то же самое без ручного поиска папок.

Локальный кэш файлов

Когда пользователь открывает присоединённый файл, 1С сохраняет копию в рабочем каталоге. В настройках пользователя есть очистка этого каталога и ограничение его размера. Если у 50 пользователей накопилось по 3 ГБ, это уже 150 ГБ.

На сервере

  • Временный каталог ОС, куда складываются выгрузки и промежуточные данные, чистите по расписанию.
  • Кэш сервера 1С (reg_1541 в каталоге данных сервера) без остановки службы не трогайте. Удалять каталоги сеансов при работающем сервере нельзя.
  • Старые файлы выгрузок .dt и копий базы, которые «на всякий случай» лежат на диске месяцами, — частая находка на 20–50 ГБ.
  • Журнал регистрации и технологический журнал: настройте срок хранения и сжатие, иначе они вырастут сами.

Для журнала регистрации в клиент-серверной базе есть сокращение: старые записи можно выгрузить в файл и удалить из базы. Делайте это после копии.

Если место всё равно уходит: мониторинг и защита от переполнения

Чистка один раз в год не работает . Заведите регулярный контроль.

  • 🔔 Оповещение по диску. Настройте системный мониторинг: уведомление при заполнении тома на 80% и повторно на 90%.
  • 📈 Прирост за месяц. Раз в месяц записывайте размер базы и томов. Скачок в 2–3 раза от обычного прироста — повод искать причину: чаще всего кто-то загрузил архив или видео.
  • ⏰ Расписание заданий. Включите регламентные задания очистки и проверяйте раз в квартал, что они действительно выполняются без ошибок.
  • 🚦 Лимиты. Ограничение размера файла и запрет определённых расширений для загрузки.
Ежемесячный контроль хранилища
Выполнено: 0 / 5

А если речь о хранилище конфигурации

Хранилище конфигурации — это отдельная база для командной разработки в конфигураторе. Оно растёт за счёт версий: каждый помещённый объект добавляет версию. Старые версии из хранилища штатно можно «свернуть» в конфигураторе командой для хранилища (в меню администрирования хранилища есть пункт по удалению старых версий и пункт по сжатию).

Делайте это только при полной копии файла хранилища 1cv8ddb.1CD, и только когда нет «взятых» объектов: все разработчики должны поместить свои изменения. После удаления версий отменить действие нельзя.

Что именно у вас занимает место?

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

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