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