Вложения к документам и справочникам в 1С 8.3 Бухгалтерии: убрать один файл, пачку или освободить место в базе
Содержание
Чтобы удалить присоединенный файл
в 1С 8.3 Бухгалтерия, откройте документ, нажмите кнопку со скрепкой, выделите файл в списке и пометьте его на удаление клавишей Del. Окончательно файл исчезнет из базы только после обработки Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.
Это двухшаговая схема 1С: сначала пометка, потом удаление. Пока пометка стоит, скан договора или фото накладной лежит в базе и занимает место.
Что нужно знать до удаления вложений
Присоединенный файл в БП 3.0 — это не картинка «внутри» документа, а отдельный элемент служебного справочника. У каждого вида объектов свой справочник файлов. Например, сканы к поступлениям хранятся в справочнике с именем вида ПоступлениеТоваровУслугПрисоединенныеФайлы, а файлы к контрагентам — в своём.
Отсюда три следствия:
- 🗂 удалять вложение нужно из списка файлов, а не из самого документа — документ при этом не меняется и не перепроводится;
- 🔗 если на файл ссылается другой объект (например, он выбран основным изображением номенклатуры), его не получится удалить, пока ссылку не уберут;
- 💾 сам файл может храниться двумя способами: внутри информационной базы или в томе на диске. От этого зависит, освободится ли место.
Проверить способ хранения можно в Администрирование → Общие настройки: там есть группа настроек работы с файлами, где включается хранение в томах и открывается список томов.
Удаление помеченных объектов необратимо. Если речь о сотнях файлов, сначала сделайте резервную копию базы: выгрузку .dt через Конфигуратор или копию каталога файловой базы при закрытой программе.
Права тоже имеют значение. Пометить файл на удаление может обычный пользователь с правом редактирования документа. Окончательное удаление помеченных объектов в типовой Бухгалтерии доступно только администратору.
Как удалить присоединенный файл из документа или справочника
Порядок одинаков для документа, карточки контрагента, сотрудника, номенклатуры.
- Откройте нужный объект, например документ «Поступление (акт, накладная, УПД)».
- В командной панели формы нажмите кнопку со скрепкой. Рядом с ней обычно видно число вложений. Если кнопки нет на панели, ищите её в меню
Ещё. - Откроется список «Присоединенные файлы». Выделите ненужный файл.
- Нажмите
Delили выберите в менюЕщёкоманду пометки на удаление. Подтвердите вопрос. - Строка станет перечёркнутой с красным крестом — это и есть пометка.
- Закройте список. Документ сохранять повторно не нужно.
Если вы пометили не тот файл, нажмите Del ещё раз — пометка снимется. Пока не запущено удаление помеченных, вернуть файл можно в любой момент.
Как удалить файл из базы окончательно
- Откройте
Администрирование → Обслуживание. - В группе
Корректировка данныхвыберитеУдаление помеченных объектов. - Выберите режим выборочного удаления, чтобы увидеть список помеченного.
- Снимите флажки со всего, кроме файлов, если в базе помечены и другие объекты — документы, контрагенты.
- Нажмите
Удалить.
После обработки программа покажет итог: что удалено, а что нет и почему. Объекты, на которые остались ссылки, попадают во вторую группу.
На время удаления помеченных лучше попросить коллег выйти из базы. Сама обработка работает и при активных пользователях, но объекты, которые кто-то держит открытыми, могут не удалиться.
Массовое удаление присоединенных файлов в 1С 8.3 Бухгалтерия
Открывать каждый документ ради одного скана долго. Если надо почистить, скажем, все вложения к поступлениям за прошлые годы, работайте сразу со списком справочника файлов.
Шаг 1. Включите команду «Все функции»
- Откройте главное меню (кнопка с тремя полосками в левом верхнем углу).
- Выберите
Сервис → Параметры. - Установите флажок
Отображать команду "Все функции". НажмитеПрименить.
Шаг 2. Откройте нужный справочник файлов
- В главном меню выберите
Все функции. - Разверните ветку
Справочники. - Найдите справочник, в имени которого есть вид объекта и слова «присоединенные файлы». Для поступлений это «Поступление товаров услуг присоединенные файлы», для реализаций — по аналогии.
В списке видны все вложения этого вида по всей базе, с владельцем, автором и датой.
Шаг 3. Отберите и пометьте файлы
- 🔎 В настройках списка (меню
Ещё) поставьте отбор по дате создания, автору или владельцу. - ⌨️ Выделите строки:
Ctrl+A— все,Shift+ клик — диапазон,Ctrl+ клик — выборочно. - ❌ Нажмите
Delи подтвердите пометку для всех выделенных строк.
Дальше — обычное удаление помеченных объектов, как в предыдущем разделе.
Журналы документов («Все документы» и другие) показывают документы, а не их вложения. Удобно использовать журнал, чтобы найти нужные документы, но помечать файлы всё равно придётся в справочнике файлов.
| Способ | Когда подходит | Риск |
|---|---|---|
| Из формы документа | 1–10 файлов | минимальный |
| Список справочника файлов | десятки и сотни файлов одного вида | пометить лишнее при неточном отборе |
| Внешняя обработка | тысячи файлов, разные справочники, по расписанию | ошибка в условии отбора затронет всю базу |
Внешняя обработка и Конфигуратор для очистки вложений
Когда файлов тысячи или их надо отбирать по сложному условию, проще написать маленькую внешнюю обработку
. Её запускают через Файл → Открыть (в меню с тремя полосками) у пользователя с полными правами.
Пример ниже помечает на удаление файлы заданного справочника, созданные раньше указанной даты. Он ничего не удаляет физически: результат остаётся обратимым до запуска удаления помеченных.
&НаСервере
Процедура ПометитьСтарыеФайлыНаСервере(ИмяСправочника, ДатаГраница)
Запрос = Новый Запрос;
Запрос.Текст = СтрШаблон(
"ВЫБРАТЬ
| Файлы.Ссылка КАК Ссылка
|ИЗ
| Справочник.%1 КАК Файлы
|ГДЕ
| НЕ Файлы.ПометкаУдаления
| И Файлы.ДатаСоздания < &ДатаГраница", ИмяСправочника);
Запрос.УстановитьПараметр("ДатаГраница", ДатаГраница);
Выборка = Запрос.Выполнить().Выбрать();
Помечено = 0;
Пока Выборка.Следующий() Цикл
ФайлОбъект = Выборка.Ссылка.ПолучитьОбъект();
ФайлОбъект.УстановитьПометкуУдаления(Истина);
Помечено = Помечено + 1;
КонецЦикла;
Сообщить(СтрШаблон("Помечено на удаление: %1", Формат(Помечено, "ЧГ=0")));
КонецПроцедуры
Вызов: ПометитьСтарыеФайлыНаСервере("ПоступлениеТоваровУслугПрисоединенныеФайлы", '20220101').
Что учесть:
- точное имя справочника посмотрите в Конфигураторе в ветке
Справочникиили в адресной строке открытого списка черезВсе функции; - если в отборе нужен размер, у справочников файлов БСП есть реквизит
Размерв байтах — условиеФайлы.Размер > 5000000отберёт файлы тяжелее примерно 5 МБ; - сначала прогоните обработку на копии базы и сверьте количество помеченного с ожиданием.
Готовые обработки «очистки файлов» со сторонних сайтов запускайте только после просмотра кода: они работают с полными правами и могут удалять данные напрямую, минуя пометку.
Что может администратор в Конфигураторе
В режиме Конфигуратора нет кнопки «удалить вложение». Он нужен для другого:
- 🧭 узнать точные имена справочников файлов и их реквизиты — для отборов и обработки;
- 💾 сделать резервную копию через
Администрирование → Выгрузить информационную базуперед массовой чисткой; - 🗜 после удаления сжать таблицы файловой базы через
Администрирование → Тестирование и исправление(подробнее в разделе про освобождение места); - 🔐 проверить роли пользователя , если у него не хватает прав пометить файл.
Само удаление вложений делается в режиме 1С:Предприятие — через интерфейс, список справочника или обработку. Так срабатывают проверки ссылок и обработчики, которые убирают файл из тома на диске. Удалять данные «в обход» прямыми запросами к таблицам СУБД нельзя: связи и тома окажутся рассинхронизированы.
Удаление вложений в облачной 1С (1С:Фреш и аналоги)
В облаке интерфейс тот же: скрепка в документе, список справочника файлов, Удаление помеченных объектов. Разница в доступе к служебным инструментам.
- 🚫 Конфигуратора у пользователя облака обычно нет, а значит, нет и тестирования с сжатием таблиц. Обслуживание файлов базы выполняет провайдер.
- 🧩 Внешние обработки в облаке запускаются только если сервис это разрешает: часто требуется проверка и публикация обработки провайдером. Без этого остаётся ручное и массовое удаление через список.
- 📦 Место в облаке считают по квоте тарифа. Если вы чистите базу, чтобы уложиться в лимит, после удаления помеченных уточните у провайдера, когда пересчитывается занятый объём.
Удаление помеченных объектов в облаке тоже может быть доступно только администратору абонента. Если команды нет в меню, обратитесь к тому, кто управляет пользователями в сервисе.
Почему база не стала меньше и как освободить место
Самый частый вопрос после чистки: файлы удалили, а размер базы прежний. Ответ зависит от способа хранения.
Файлы хранились в томах на диске
Тогда сама база вложений почти не содержала, а места занимали файлы в папке тома. При удалении элемента справочника программа удаляет и файл из тома. Проверьте размер папки тома до и после.
Если в папке остались «сироты» — файлы, которым нет записи в базе, — их ищет проверка целостности тома в его карточке. Удалять файлы из папки тома вручную через проводник не стоит: нельзя на глаз отличить лишний файл от нужного.
Файлы хранились в базе
Файловая база. Файл 1Cv8.1CD после удаления данных не уменьшается: освобождённые страницы остаются внутри как пустое место. Чтобы его вернуть:
- Все пользователи выходят из базы — для этой операции нужен монопольный доступ, сеансы будут прерваны.
- Запустите Конфигуратор,
Администрирование → Тестирование и исправление. - Оставьте флажок
Сжатие таблиц информационной базы, остальные проверки — по ситуации. - Нажмите
Выполнить.
Второй способ — выгрузить базу
в .dt и загрузить её обратно в новый пустой каталог. Это тоже даёт компактный файл и заодно резервную копию.
Клиент-серверная база
на MS SQL или PostgreSQL. Место внутри базы освобождается сразу, но файл данных на диске сам не уменьшится. Сжимать его — задача администратора СУБД: в MS SQL это команда DBCC SHRINKFILE, в PostgreSQL — VACUUM FULL. Обе операции нагружают сервер и блокируют таблицы, их проводят в нерабочее время.
Не забудьте про версии файлов. Если в базе включено хранение версий, при редактировании файла копилась история — она удаляется вместе с файлом, но тоже должна пройти через удаление помеченных.
Почему присоединенные файлы не удаляются
Если ничего не помогло, запустите Тестирование и исправление с проверкой ссылочной целостности на копии базы: иногда мешают битые ссылки, оставшиеся после сбоя.
Регламентное задание: удаление по расписанию
Если сотрудники регулярно помечают сканы на удаление, удобно, чтобы база очищалась сама.
- Откройте
Удаление помеченных объектов. - Включите флажок автоматического удаления по расписанию.
- Задайте расписание: например, раз в неделю в воскресенье в 03:00, когда в базе никого нет.
Для файловой базы задание выполняется только пока кто-то из пользователей запущен в программе. В клиент-серверной базе регламентные задания выполняет сервер 1С сам, если в карточке базы в консоли кластера не включена блокировка регламентных заданий.
Список и журнал заданий смотрите в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Там видно, когда задание выполнялось и с какой ошибкой закончилось.
Расписание удаляет всё помеченное, а не только файлы. Договоритесь в команде: пометка на удаление означает «точно не нужно», иначе случайно помеченный документ исчезнет ночью.
Частые вопросы
Можно ли восстановить файл после удаления помеченных объектов?
Del.Удалится ли документ вместе с вложением?
Удалятся ли вложения, если удалить сам документ?
Как узнать, какие вложения занимают больше всего места?
Нужно ли выгонять пользователей для пометки на удаление?
.dt.