Администрирование · 12 мин
Как удалить файлы из базы 1С и очистить хранилище
Как удалить файлы из базы 1С: присоединённые файлы, тома хранения, пометка на удаление, чистка регистров и защита от потери данных.
Со временем база 1С разрастается не только за счёт документов и справочников, но и за счёт присоединённых файлов: сканов договоров, фотографий товаров, печатных форм, выгрузок и вложений из писем. В крупных базах такие файлы могут занимать десятки гигабайт, замедлять резервное копирование и увеличивать время обновления конфигурации. Удалить их можно разными способами — от штатной пометки на удаление до прямой чистки томов хранения, и выбор зависит от того, как именно настроено хранение файлов в вашей конфигурации.
Прежде чем что-либо удалять, важно понять, где физически лежат файлы: внутри самой базы данных (в таблицах присоединённых файлов) или во внешних томах на диске сервера. От этого зависит и порядок действий, и набор рисков. Удаление записи в справочнике присоединённых файлов не всегда освобождает место на диске, а ручное удаление файлов из тома может оставить «битые» ссылки в базе.
Ниже разобраны основные сценарии: штатное удаление через интерфейс, групповая обработка, работа с томами хранения, очистка устаревших версий файлов и проверка результата. Отдельно описаны типичные ошибки, которые приводят к потере данных или к тому, что место на диске так и не освобождается.
Определите, где хранятся файлы в вашей базе
В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP, ЗУП) применяются два варианта хранения присоединённых файлов. Первый — хранение непосредственно в информационной базе: двоичные данные лежат в таблицах, и удаление записи освобождает место внутри файла базы или на сервере СУБД. Второй — хранение в томах: в базе остаётся только ссылка и путь, а сами файлы лежат в указанной папке на диске или сетевом ресурсе.
Узнать текущий режим можно в настройках: в типовых конфигурациях это раздел «Администрирование» → «Обслуживание» → «Присоединённые файлы» или «Настройки работы с файлами». Там же видно, включено ли версионирование файлов — при нём каждая правка создаёт новую версию, и объём растёт значительно быстрее.
Оценить масштаб помогает простая проверка: откройте справочник присоединённых файлов (например, «ПрисоединенныеФайлы» или файлы конкретного объекта) и отсортируйте по размеру, если поле доступно. Для файловых баз размер файла 1Cv8.1CD до и после чистки покажет реальный эффект; для клиент-серверных — смотрите размер таблиц на стороне СУБД.
Настройки работы с файлами, отсутствие томов хранения
Пути томов в настройках, содержимое папок на сервере
Настройка версионирования, список версий в карточке файла
Справочники вложений, журналы обмена данными
Подготовьтесь: резервная копия и права доступа
Удаление файлов — необратимая операция, если нет копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытых сеансах пользователей. Для клиент-серверной базы сделайте выгрузку через конфигуратор («Администрирование» → «Выгрузить информационную базу») либо штатный бэкап средствами СУБД. Если файлы хранятся в томах, скопируйте и папки томов — выгрузка .dt их может не включать в полном объёме, если тома вынесены за пределы базы.
Проверьте права: массовое удаление помеченных объектов и работа с томами обычно требуют прав администратора или роли с доступом к обработкам обслуживания. В клиент-серверном режиме планируйте операции на время минимальной нагрузки — монопольный доступ для удаления помеченных объектов означает, что пользователи на это время выйдут из базы.
Удалите файлы штатными средствами конфигурации
Самый безопасный способ — удалить объект-владелец файла. Когда вы помечаете на удаление документ, элемент справочника или письмо, к которым прикреплены файлы, присоединённые файлы помечаются вместе с владельцем. После этого запустите «Администрирование» → «Обслуживание» → «Удаление помеченных объектов» — платформа проверит ссылочную целостность и удалит записи вместе с двоичными данными, если они хранятся в базе.
Если нужно удалить отдельный файл без удаления владельца, откройте карточку объекта, перейдите к списку присоединённых файлов, выделите нужный и пометьте его на удаление (клавиша Delete или команда контекстного меню). Затем снова выполните удаление помеченных объектов — без этого шага запись останется в базе, а место не освободится.
Для выборочной чистки удобно открыть справочник присоединённых файлов целиком: в режиме «Предприятие» через «Все функции» → «Справочники» найдите нужный справочник файлов, отфильтруйте по владельцу, дате или расширению и пометьте ненужные записи. Это удобно, когда нужно убрать, например, все старые сканы по конкретному контрагенту.
- 1Сделайте резервную копию базы и томов хранения
- 2Пометьте на удаление объекты-владельцы или сами присоединённые файлы
- 3Запустите «Удаление помеченных объектов» в монопольном режиме
- 4Проверьте, что файлы не открываются и ссылки удалены
- 5Очистите тома хранения, если файлы лежали на диске
- 6Выполните сжатие таблиц или реиндексацию при необходимости
Выполните групповую очистку через обработки
Когда файлов тысячи, ручная пометка непрактична. В типовых конфигурациях есть встроенные механизмы: например, регламентные задания очистки устаревших версий файлов, обработки очистки несинхронизированных файлов облачных сервисов, удаление неиспользуемых файлов из томов. Найдите их в разделе «Администрирование» → «Обслуживание» — состав зависит от конфигурации.
Для нестандартных задач используют универсальные внешние обработки группового удаления данных (например, обработки вида «Удаление данных по метаданным» с диска ИТС или аналогичные). Они позволяют пометить на удаление все записи справочника присоединённых файлов по условию: дата создания старше заданной, определённый тип владельца, конкретное расширение. Запускайте такие обработки сначала в режиме отчёта без удаления, чтобы увидеть список затронутых объектов.
Разработчики могут выполнить чистку программно — перебором ссылок справочника и установкой пометки удаления. Это оправдано для регламентных заданий автоочистки, но код должен обязательно проверять, что файл не используется в других объектах, и логировать удаляемые ссылки.
Часто самый заметный эффект даёт не удаление отдельных файлов, а отключение или чистка версионирования: если у договора накопилось 30 версий скана, удаление старых версий освобождает больше места, чем удаление самого документа. Проверьте настройки версионирования до массовой чистки.
Очистите тома хранения файлов на диске
Если файлы хранятся в томах, удаление записей в базе оставляет физические файлы на диске — это касается и штатного удаления помеченных объектов. В типовых конфигурациях предусмотрена операция «Очистка ненужных файлов» или подобная: она сравнивает содержимое томов со ссылками в базе и удаляет файлы, на которые никто не ссылается. Запускайте её после завершения удаления помеченных объектов.
Ручное удаление файлов из папки тома допустимо только в одном случае: вы точно знаете, что соответствующие записи уже удалены из базы, и удаляете «сирот». Определить их можно сопоставлением списка файлов в томе со значениями путей в справочнике присоединённых файлов. Всё, чего нет в базе, — кандидаты на удаление, но сначала переместите их в карантинную папку и понаблюдайте работу пользователей несколько дней.
Обратная ситуация опаснее: файл удалён с диска, а ссылка в базе осталась. Пользователь при открытии карточки получит ошибку чтения файла. Лечится это либо восстановлением файла из копии, либо удалением «битой» записи из справочника присоединённых файлов.
Освободите место в самой базе после удаления
Даже после корректного удаления файлов размер базы может не измениться. В файловом режиме данные помечаются как удалённые внутри файла 1Cv8.1CD, но физически место возвращается только при сжатии таблиц. Выполните его через конфигуратор: «Администрирование» → «Тестирование и исправление» с включённой опцией сжатия таблиц, либо через пакетный режим запуска конфигуратора с соответствующими параметрами. Операция требует монопольного доступа и на больших базах занимает заметное время.
В клиент-серверном режиме аналогичную роль играют средства СУБД: shrink для MS SQL, VACUUM для PostgreSQL, реорганизация таблиц для других платформ. Эти операции выполняет администратор СУБД, и их тоже планируют на нерабочее время.
Как проверить результат
Удалённые записи отсутствуют, поиск не находит старые файлы
Записи остались с пометкой удаления — не выполнено удаление помеченных объектов
Карточки открываются без ошибок чтения файлов
Ошибки «файл не найден» — удалены файлы с живыми ссылками
Папки томов и размер базы уменьшились после сжатия
Размер прежний — не выполнено сжатие таблиц или не очищены тома
Свежая копия создана до начала работ и доступна
Копии нет или она старше недели
Настройте профилактику, чтобы база не разрасталась снова
Разовая чистка решает проблему на месяцы, но без регламентных мер объём вернётся. Настройте регламентное задание очистки устаревших версий файлов, если используется версионирование, и ограничьте глубину хранения версий. Для вложений электронной почты и файлов обменов проверьте настройки автоудаления после обработки.
Полезно периодически контролировать самые большие файлы: отчёт по размерам присоединённых файлов покажет аномалии — например, видеофайлы, архивы или многомегабайтные сканы, которые пользователи прикрепляют вместо сжатых PDF. Договоритесь с пользователями о правилах: что можно прикреплять, в каком формате и какого размера.
Что важно запомнить
Удаление файлов из базы 1С всегда состоит из трёх шагов: пометка на удаление, удаление помеченных объектов, очистка томов и сжатие базы. Пропуск любого шага означает, что место не освободится. Перед массовой чисткой обязательна резервная копия и проверка сценария на тестовой базе.
Частые вопросы
Почему после удаления файлов размер базы 1С не уменьшился?
Платформа помечает данные как удалённые, но физически место внутри файла 1Cv8.1CD или таблиц СУБД возвращается только при сжатии. Для файловой базы запустите «Тестирование и исправление» с опцией сжатия таблиц в монопольном режиме; для клиент-серверной — штатные средства сжатия вашей СУБД. Также проверьте, что выполнено удаление помеченных объектов, а не только пометка.
Можно ли удалить файлы просто из папки тома на диске?
Только файлы, на которые уже нет ссылок в базе. Если удалить файл, к которому привязана запись в справочнике присоединённых файлов, пользователи получат ошибку при открытии карточки объекта. Правильный порядок: сначала удалить записи в базе, затем очищать том штатной обработкой или вручную по списку «сирот».
Как удалить все присоединённые файлы старше определённой даты?
Откройте справочник присоединённых файлов через «Все функции», отфильтруйте записи по дате создания и пометьте их на удаление, затем выполните удаление помеченных объектов. Для больших объёмов удобнее внешняя обработка группового удаления с отбором по условию — сначала в режиме отчёта, чтобы увидеть список затронутых объектов.
Что делать с версиями файлов — они занимают много места?
В типовых конфигурациях есть механизм очистки устаревших версий файлов, который можно запускать вручную или регламентным заданием. Дополнительно проверьте настройки версионирования: если оно не нужно для большинства объектов, отключите его или ограничьте число хранимых версий.
Удалились ли файлы из резервной копии после чистки базы?
Нет. Резервные копии, сделанные до чистки, содержат удалённые файлы полностью — это и позволяет восстановить данные при ошибке. Учитывайте это при хранении копий: старые бэкапы будут занимать прежний объём, пока вы их не удалите по регламенту хранения копий.
Можно ли восстановить ошибочно удалённый присоединённый файл?
Только из резервной копии базы или копии тома хранения, сделанной до удаления. Если копии нет, восстановить двоичные данные штатными средствами невозможно — именно поэтому резервное копирование перед чисткой является обязательным шагом, а не рекомендацией.