Администрирование · 12 мин
Как удалить присоединенные файлы в 1С
Как удалить присоединенные файлы в 1С: удаление по одному, групповая очистка, работа с корзиной, регламентные задания и обработки. Права, риски и проверка результата.
Присоединенные файлы в 1С — это сканы договоров, акты, изображения номенклатуры и другие документы, которые хранятся вместе с объектами базы. Со временем их объем растет: база становится тяжелой, замедляется создание резервных копий, а в файловом хранилище скапливаются гигабайты неактуальных вложений. Удалить такие файлы можно несколькими способами — от ручного удаления по одному до массовой очистки обработкой.
Выбор способа зависит от того, где хранятся файлы (в информационной базе или в томах на диске), какая конфигурация используется и сколько объектов нужно обработать. В типовых конфигурациях на Библиотеке стандартных подсистем (БСП) — «Управление торговлей», «ERP», «Бухгалтерия предприятия», «Зарплата и управление персоналом» — механизм присоединенных файлов устроен одинаково, поэтому инструкции ниже применимы к большинству современных решений.
Перед любым массовым удалением обязательно сделайте резервную копию базы. Удаление присоединенных файлов, особенно при непосредственной пометке и удалении из справочника, отменить без копии невозможно: вместе со ссылкой на файл теряется и его содержимое.
Где 1С хранит присоединенные файлы
В типовых конфигурациях за хранение отвечает справочник присоединенных файлов (например, «ПрисоединенныеФайлы» или специализированные вроде «НоменклатураПрисоединенныеФайлы»). Само содержимое файла может храниться двумя способами: внутри информационной базы в виде двоичных данных либо в томах на диске — в каталогах, которые администратор указывает в настройках.
Проверить способ хранения можно в разделе администрирования: «НСИ и администрирование» → «Настройка работы с файлами». Если включен признак «Хранить файлы в томах на диске», тела файлов лежат в указанных каталогах, а в базе остаются только ссылки. Если тома не настроены, все вложения находятся внутри базы и напрямую влияют на её размер.
Это различие важно при удалении: когда файл хранится в томе, удаление записи в справочнике не всегда сразу удаляет физический файл с диска — в ряде конфигураций предусмотрена отложенная очистка. Когда файл хранится в базе, его удаление уменьшит размер базы только после тестирования и исправления с сжатием таблиц (для файлового варианта) или после шринка на уровне СУБД (для клиент-серверного).
Как удалить один присоединенный файл
Самый простой сценарий — удалить конкретный файл из карточки документа или справочника. Откройте объект, к которому прикреплен файл, и перейдите по команде «Присоединенные файлы» (обычно это кнопка со скрепкой в командной панели или отдельная вкладка). В открывшемся списке выделите нужный файл и нажмите Delete или кнопку «Удалить».
По умолчанию 1С ставит пометку удаления, а не удаляет объект окончательно. Пока пометка не снята и не выполнено удаление помеченных объектов, запись остается в базе, но файл уже недоступен пользователям в обычном режиме. Чтобы окончательно удалить файл, перейдите в «Администрирование» → «Обслуживание» → «Удаление помеченных объектов» и выполните удаление.
Если вместо пометки требуется сразу удалить файл безвозвратно, в списке присоединенных файлов можно использовать сочетание Shift+Delete — интерактивное непосредственное удаление. Платформа запросит подтверждение, после чего запись будет удалена без пометки. Пользуйтесь этим режимом осторожно: восстановить файл без резервной копии не получится.
- 1Откройте документ или элемент справочника, к которому прикреплен файл
- 2Нажмите кнопку «Присоединенные файлы» (значок скрепки)
- 3Выделите файл и нажмите Delete, подтвердите пометку на удаление
- 4Откройте «Администрирование» → «Удаление помеченных объектов» и выполните удаление
- 5Проверьте, что файл больше не отображается в списке и не открывается
Групповое удаление через обработку «Групповое изменение реквизитов»
Когда файлов много, удалять их по одному нерационально. В типовых конфигурациях есть универсальная обработка «Групповое изменение реквизитов» («Администрирование» → «Обслуживание» → «Корректировка данных», либо через «Все функции»). Она позволяет массово установить пометку удаления для выбранных элементов справочника присоединенных файлов.
В обработке выберите тип объектов — нужный справочник присоединенных файлов, задайте отбор: например, по владельцу файла, по дате создания, по расширению или размеру. Затем в списке реквизитов найдите «Пометка удаления», установите значение «Истина» и выполните обработку. После этого останется запустить удаление помеченных объектов.
Отбор — ключевой момент. Без фильтра вы пометите все файлы конфигурации, включая актуальные сканы договоров и изображения товаров. Перед выполнением нажмите «Показать отобранные» и визуально проверьте, что в выборку попали именно те объекты, которые нужно удалить.
Удаление помеченных объектов и контроль ссылочной целостности
Помеченные файлы физически удаляются обработкой «Удаление помеченных объектов». Откройте её через «Администрирование» → «Обслуживание». Режим «Выборочное удаление» позволяет отметить только справочники присоединенных файлов, режим «Автоматическое удаление» удалит все помеченные объекты базы.
Если на присоединенный файл есть ссылки из других объектов (например, файл использован в письме или в дополнительной обработке), платформа не даст его удалить и покажет места использования. В этом случае либо удалите ссылающиеся объекты, либо снимите пометку с файла. Игнорировать такие сообщения нельзя — принудительное удаление с нарушением ссылок приведет к битым ссылкам вида «Объект не найден».
В монопольном режиме удаление проходит быстрее и надежнее. В клиент-серверной базе при большом количестве объектов операция может занять заметное время — планируйте её на период минимальной нагрузки.
Очистка томов и файлов на диске
Если файлы хранятся в томах на диске, удаление записи в справочнике освобождает место не всегда сразу. В ряде конфигураций физическое удаление из тома выполняется при удалении помеченных объектов, но если база долго работала с обменами или очищалась нештатными средствами, в каталогах томов могут остаться «сироты» — файлы, на которые нет ссылок в базе.
Проверить расхождение можно сравнением: выгрузите список путей файлов из справочника (через консоль запросов или отчет) и сопоставьте с фактическим содержимым каталогов томов. Файлы, которых нет в списке, — кандидаты на удаление с диска. Перед удалением переместите их во временный каталог и понаблюдайте за работой базы несколько дней.
Никогда не удаляйте файлы из томов напрямую через проводник «наугад»: если файл еще связан с записью в базе, пользователи получат ошибку «Файл не найден в томе» при попытке его открыть.
Автоматизация: регламентные задания и специализированные обработки
Для регулярной очистки удобно настроить автоматический сценарий. Типовой подход — периодический запуск удаления помеченных объектов регламентным заданием, а пометку ставить по правилу: например, файлы, прикрепленные к помеченным на удаление документам, или вложения старше заданного срока, не связанные с актуальными объектами.
В некоторых конфигурациях есть штатные помощники очистки (например, очистка неиспользуемых файлов при обмене с сайтом или очистка версий файлов, если включено версионирование). Проверьте настройки хранения: при включенном хранении версий удаляйте и устаревшие версии — они часто занимают больше места, чем актуальные файлы.
Для нестандартных задач — например, удалить все картинки товаров старше определенной даты — используется программный код. Ниже пример процедуры, которая помечает на удаление присоединенные файлы по владельцу:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.НоменклатураПрисоединенныеФайлы ГДЕ ВладелецФайла = &Владелец И НЕ ПометкаУдаления";
Запрос.УстановитьПараметр("Владелец", ВладелецФайлов);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ФайлОбъект = Выборка.Ссылка.ПолучитьОбъект();
ФайлОбъект.УстановитьПометкуУдаления(Истина);
КонецЦикла;Такой код выполняйте только в копии базы или после резервного копирования и только если понимаете, какие объекты попадут в выборку. Ошибка в запросе пометит лишние файлы.
Права доступа и типичные ограничения
Удалить присоединенный файл может не каждый пользователь. Нужны права на изменение соответствующего справочника присоединенных файлов, а для массовых операций — права на обработки «Групповое изменение реквизитов» и «Удаление помеченных объектов», которые обычно есть только у администратора. Если кнопка удаления недоступна, проверьте роли пользователя.
Дополнительные ограничения: файл может быть занят (открыт на редактирование другим пользователем), объект-владелец может находиться в закрытом периоде с датой запрета изменения, а в распределенной базе (РИБ) удаление должно выполняться в том узле, где это предусмотрено правилами обмена.
Как проверить результат очистки
После удаления убедитесь, что цель достигнута: откройте несколько объектов, у которых были вложения, и проверьте, что списки присоединенных файлов пусты либо содержат только нужные файлы. Попытайтесь открыть оставшиеся файлы — они должны открываться без ошибок.
Для оценки освобожденного места сравните размер каталога томов до и после очистки, а для базы с внутренним хранением — выполните сжатие и сравните размер файла 1Cv8.1CD. Если размер не изменился, но файлы удалены, значит, сжатие еще не выполнялось либо основной объем занимают другие данные.
Как проверить результат
Удаленные файлы отсутствуют, оставшиеся открываются
Пустые строки, ошибки «Файл не найден» при открытии
Уменьшился после удаления помеченных объектов
Не изменился — возможны файлы-сироты
Уменьшился после тестирования и исправления со сжатием
Не уменьшился — сжатие не выполнялось или объем дают другие таблицы
Есть события удаления ожидаемого количества объектов
Ошибки удаления, отказы в доступе
Что важно запомнить
Файлы удаляются через пометку удаления и обработку «Удаление помеченных объектов», массово — через «Групповое изменение реквизитов» с аккуратным отбором. Перед очисткой делайте резервную копию, после — проверяйте открытие оставшихся файлов и при необходимости выполняйте сжатие базы.
Частые вопросы
Почему после удаления файлов база не стала меньше?
Удаленные данные остаются внутри файла базы как свободное место. Для файлового варианта выполните «Тестирование и исправление» с включенным сжатием таблиц информационной базы, для клиент-серверной — процедуру сжатия средствами используемой СУБД.
Можно ли восстановить удаленный присоединенный файл?
Если файл только помечен на удаление — снимите пометку, и он снова станет доступен. После выполнения «Удаления помеченных объектов» восстановление возможно только из резервной копии базы или из копии каталога томов, если она делалась.
Как удалить все файлы конкретного контрагента или товара?
Откройте карточку объекта, перейдите в список присоединенных файлов, выделите все строки (Ctrl+A) и установите пометку удаления. Либо используйте «Групповое изменение реквизитов» с отбором по владельцу файла.
Что делать, если 1С пишет «Файл не найден в томе»?
Запись о файле в базе есть, а физический файл в каталоге тома отсутствует — его удалили вручную или том недоступен. Проверьте доступность пути тома в настройках, восстановите файл из копии либо удалите битую запись из справочника присоединенных файлов.
Можно ли удалять присоединенные файлы при работающих пользователях?
Единичное удаление — да, если файл не открыт на редактирование. Массовое удаление помеченных объектов лучше выполнять в монопольном режиме или в период минимальной активности: при активной работе возможны блокировки и ошибки ссылочной целостности.
Удалятся ли файлы вместе с помеченным документом-владельцем?
При удалении помеченных объектов платформа контролирует ссылки: присоединенные файлы ссылаются на владельца, поэтому удалить документ без удаления его файлов не получится — обработка предложит удалить их вместе. Отдельно файлы без владельца удаляются штатно.