Администрирование · 14 мин
Как очистить присоединенные файлы в 1С
Как очистить присоединенные файлы в 1С без потери данных: поиск лишних вложений, удаление вручную и обработкой, настройка хранения, проверка результата и типичные ошибки.
Присоединенные файлы в 1С — сканы договоров, акты, счета-фактуры, фотографии товаров — со временем занимают значительную часть базы или дискового тома. Рост объёма замедляет создание резервных копий, увеличивает время обмена данными и усложняет миграцию. Очистка присоединенных файлов — регулярная задача администратора или внедренца, но выполнять её нужно аккуратно: удалённые файлы из корзины 1С не восстанавливаются штатными средствами.
Порядок действий зависит от того, где хранятся файлы: в самой информационной базе или в томах на диске. Также важно понимать, какие файлы действительно лишние — дубликаты, устаревшие версии, вложения к помеченным на удаление объектам. Ниже разобраны способы определить лишние файлы, удалить их вручную и пакетно, а также настроить хранение так, чтобы проблема не повторялась.
Материал ориентирован на типовые конфигурации на базе Библиотеки стандартных подсистем (УТ 11, ERP, КА, БП 3.0, ЗУП 3.1), где работа с присоединенными файлами реализована единообразно. В самописных и сильно доработанных конфигурациях механика может отличаться — проверяйте код перед удалением.
Где 1С хранит присоединенные файлы и почему это важно
В типовых конфигурациях предусмотрены два режима хранения: непосредственно в информационной базе (в хранилище значений) или в томах на диске, когда в базе остаётся только ссылка и путь к файлу. Режим задаётся в настройках: раздел «Администрирование» → «Обслуживание» → «Хранение файлов» или аналогичный пункт в зависимости от конфигурации.
Способ хранения определяет, что фактически происходит при удалении. Если файлы в базе — после удаления записи и сжатия базы место освобождается внутри файла 1Cv8.1CD или на сервере СУБД. Если файлы в томах — нужно отдельно удалять сами файлы на диске, иначе записи в базе исчезнут, а мусор на диске останется.
Узнать текущий режим просто: откройте настройки хранения файлов и посмотрите, указан ли список томов и включен ли флаг «Хранить файлы в томах на жестком диске». Также полезно оценить объём: размер каталога томов можно посмотреть средствами ОС, а объём файлов в базе — через отчёт по размеру таблиц или административные средства СУБД.
Как определить, какие файлы занимают место
Прежде чем что-то удалять, найдите источники роста. Типичные кандидаты: вложения к помеченным на удаление документам, устаревшие версии файлов (если включено версионирование), дубликаты одних и тех же сканов, прикреплённых к разным объектам, а также крупные файлы — видео, архивы, многостраничные PDF.
Быстрый способ оценить ситуацию — открыть справочник присоединенных файлов нужного типа (например, «Счет на оплату присоединенные файлы») и отсортировать список по колонке «Размер», предварительно выведя её в настройках списка. Для сводной картины по всем типам удобнее использовать консоль запросов или готовую обработку анализа.
Если включено хранение версий, проверьте объём версий отдельно: подсистема хранит каждую редакцию файла, и за годы их может накопиться больше, чем актуальных файлов. Версии удаляются отдельной операцией — из карточки файла по кнопке со списком версий или программно.
Проверьте размер таблиц хранения двоичных данных и справочников присоединенных файлов
Посмотрите размер каталогов томов и сопоставьте с количеством записей в базе
Проверьте настройку версионирования и отсортируйте файлы по владельцу
Выполните удаление помеченных объектов — файлы уйдут вместе с владельцами
Подготовка: резервная копия и права доступа
Любая массовая очистка начинается с резервной копии. Для файловой базы достаточно скопировать каталог базы или выгрузить dt при остановленной работе пользователей. Для клиент-серверной — выполните штатный бэкап средствами СУБД и отдельно скопируйте каталоги томов, если файлы хранятся на диске.
Убедитесь, что у учетной записи, под которой выполняется очистка, есть права на изменение присоединенных файлов и на удаление помеченных объектов. В типовых конфигурациях это полные права или роли администратора. Ограниченная роль может «молча» не удалить часть объектов, и результат будет неполным.
Запланируйте работу на нерабочее время: удаление помеченных объектов и сжатие базы требуют монопольного доступа, а в клиент-серверном режиме массовые операции создают нагрузку на СУБД и могут замедлить работу пользователей.
Удаление файлов вручную через интерфейс
Для точечной очистки достаточно штатных средств. Откройте объект-владелец (документ, договор, номенклатуру), перейдите по ссылке «Присоединенные файлы», выделите лишние файлы и удалите их. Файл помечается на удаление, а физическое удаление содержимого произойдёт после операции «Удаление помеченных объектов».
Для пакетной ручной работы удобнее открыть сам справочник присоединенных файлов: в списке можно отобрать файлы по владельцу, дате, размеру или расширению и пометить на удаление сразу группу. Не забудьте, что у каждого типа объектов свой справочник файлов — очистку нужно повторить для каждого типа.
Удаление помеченных объектов
После пометки файлов выполните «Администрирование» → «Обслуживание» → «Удаление помеченных объектов». Выберите режим выборочного удаления, чтобы контролировать, что именно уходит, или автоматический — если уверены в составе помеченного. Мастер покажет объекты, которые мешают удалению (ссылки из других документов), — разберите их отдельно.
Для файлов, хранящихся в томах, именно на этом этапе подсистема удаляет физические файлы с диска. Если после операции место на диске не освободилось — проверьте, не хранятся ли файлы в других томах и не были ли они скопированы в каталог вручную в обход 1С.
- 1Сделайте резервную копию базы и каталогов томов
- 2Откройте справочник присоединенных файлов нужного типа, отсортируйте по размеру
- 3Пометьте на удаление лишние файлы и устаревшие версии
- 4Выполните «Удаление помеченных объектов» в выборочном режиме и разберите мешающие ссылки
- 5Проверьте объём базы и свободное место на диске, откройте несколько документов с оставшимися вложениями
Пакетная очистка обработкой или регламентным заданием
Когда файлов десятки тысяч, ручной способ неприменим. Используйте специализированные обработки очистки присоединенных файлов — они позволяют задать отбор по типу владельца, периоду, размеру, расширению и наличию пометки удаления у владельца, а затем пометить или удалить файлы пакетно. Перед запуском на рабочей базе обязательно протестируйте обработку на копии.
Если в конфигурации включено версионирование, проверьте наличие штатного регламентного задания очистки устаревших версий — в ряде типовых решений оно предусмотрено и настраивается через список регламентных заданий. Это безопаснее самописных доработок, так как учитывает внутренние связи подсистемы.
Программное удаление выполняется через методы БСП: достаточно пометить объект справочника присоединенных файлов на удаление и затем удалить помеченные объекты — подсистема сама очистит хранилище и файл в томе. Пример типового подхода:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1000
| Файлы.Ссылка КАК Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы КАК Файлы
|ГДЕ
| Файлы.ВладелецФайла.ПометкаУдаления
| И НЕ Файлы.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ФайлОбъект = Выборка.Ссылка.ПолучитьОбъект();
ФайлОбъект.УстановитьПометкуУдаления(Истина);
КонецЦикла;
// Затем — штатное удаление помеченных объектовПосле пакетной очистки в клиент-серверной базе на MS SQL или PostgreSQL дополнительно выполните сжатие (shrink) базы средствами СУБД, если требуется вернуть место операционной системе. Учтите, что shrink — ресурсоёмкая операция, её выполняют вне рабочих часов и не используют как регулярную процедуру.
Сжатие файловой базы после очистки
Файловая база 1Cv8.1CD не уменьшается сама после удаления данных: освободившиеся страницы остаются внутри файла. Чтобы вернуть место, запустите конфигуратор в монопольном режиме: «Администрирование» → «Тестирование и исправление», отметьте пункт «Сжатие таблиц информационной базы» и выполните обработку.
Альтернатива — выгрузка базы в dt и загрузка обратно в новый каталог: при загрузке таблицы пересоздаются без «пустот». Этот способ дольше, но заодно служит дополнительной проверкой целостности данных.
Сравните размер файла базы до и после сжатия — разница покажет реальный объём удалённых вложений. Если размер почти не изменился, значит, основной объём занимает что-то другое: регистры, история обменов или файлы в томах, а не в базе.
Профилактика: как не дать файлам снова разрастись
Настройте хранение больших файлов в томах на диске: так база останется компактной, а бэкап вложений можно делать отдельно и реже. Разделите тома по типам данных — например, отдельный том для сканов первичных документов и отдельный для изображений номенклатуры.
Договоритесь с пользователями о правилах: не прикреплять видео и установочные пакеты, сжимать сканы до разумного разрешения, не дублировать один файл к нескольким объектам без необходимости. Часть проблем решается не удалением, а дисциплиной ввода данных.
Раз в квартал выполняйте контрольную процедуру: проверка объёма справочников файлов, удаление вложений к помеченным объектам, очистка устаревших версий. Регулярная небольшая очистка безопаснее и быстрее, чем разовая масштабная.
Способы очистки
Подходит для десятков файлов и точечной работы; безопасно, но медленно при больших объёмах
Для тысяч файлов с отбором по условиям; требует теста на копии и понимания структуры конфигурации
Обязательный завершающий этап любого способа; физически освобождает хранилище и тома
Когда файлы нужны, но база перегружена; место в базе освобождается, файлы остаются доступными
Как проверить результат очистки
После всех операций откройте несколько случайных документов, у которых должны остаться вложения, и убедитесь, что файлы открываются без ошибок. Особое внимание — документам с электронными подписями и сканам первичных документов: их потеря может иметь юридические последствия.
Сверьте цифры: количество записей в справочниках присоединенных файлов, размер каталогов томов, размер файла базы после сжатия. Все три показателя должны уменьшиться согласованно. Если записи удалились, а тома не похудели — ищите файлы, созданные в обход 1С.
Как проверить результат
Файлы открываются и скачиваются без ошибок
Ошибка «файл не найден в томе» — удалены физические файлы при живых записях
1Cv8.1CD заметно уменьшился
Размер прежний — сжатие не выполнялось или объём занят не файлами
Место освободилось после удаления помеченных объектов
Место не изменилось — файлы удалялись вручную мимо 1С или в других томах
Вложения к учтённым документам на месте
Отсутствуют сканы по актуальным документам — восстановить из копии
Что важно запомнить
Очистка присоединенных файлов выполняется в четыре шага: резервная копия, пометка лишних файлов, удаление помеченных объектов, сжатие базы или освобождение томов. Никогда не удаляйте файлы из томов напрямую через проводник и всегда проверяйте доступность оставшихся вложений после работы.
Частые вопросы
Можно ли восстановить удалённый присоединенный файл?
Штатных средств восстановления в 1С нет: после удаления помеченных объектов запись и содержимое файла уничтожаются. Восстановить файл можно только из резервной копии базы или копии каталога томов. Поэтому перед массовой очисткой копия обязательна, а хранить её стоит до подтверждения, что ничего нужного не удалено.
Почему после удаления файлов база не уменьшилась?
Для файловой базы нужно выполнить сжатие таблиц через «Тестирование и исправление» в конфигураторе или пересоздать базу выгрузкой-загрузкой dt. В клиент-серверном варианте место возвращается операцией shrink средствами СУБД. Также проверьте, что выполнено удаление помеченных объектов — без него файлы физически остаются на месте.
Как удалить только устаревшие версии файлов, не трогая актуальные?
Версии хранятся отдельно от текущего файла и удаляются из карточки файла по списку версий либо программно с отбором по дате версии. В ряде типовых конфигураций есть настройка автоматической очистки версий старше заданного срока — проверьте параметры хранения файлов в разделе администрирования.
Что лучше: хранить файлы в базе или в томах на диске?
Для небольшого объёма (сканы первички, подписи) хранение в базе проще: единый бэкап и нет проблем с путями. При больших объёмах — изображения товаров, архивы — тома на диске разгружают базу и ускоряют её обслуживание, но требуют отдельного резервного копирования каталогов и аккуратности при переносе сервера.
Можно ли очищать файлы, пока пользователи работают?
Пометку удаления отдельных файлов можно ставить в рабочем режиме. А вот удаление помеченных объектов, сжатие файловой базы и массовые пакетные обработки лучше выполнять в монопольном режиме или в нерабочее время: они блокируют таблицы и создают нагрузку, что заметно замедляет работу пользователей.
Как найти дубликаты присоединенных файлов?
Дубликаты выявляют сравнением хеша содержимого файлов: для каждого файла вычисляется хеш (например, MD5) через объект «ХешированиеДанных», и записи с одинаковым хешем и размером считаются копиями. Такую проверку выполняют обработкой на копии базы, оставляя один экземпляр и переназначая ссылки при необходимости.