Вложения к документам и справочникам в 1С 8.3 Бухгалтерии: убрать один файл, пачку или освободить место в базе

· 9 мин

Содержание

Чтобы удалить присоединенный файл в 1С 8.3 Бухгалтерия, откройте документ, нажмите кнопку со скрепкой, выделите файл в списке и пометьте его на удаление клавишей Del. Окончательно файл исчезнет из базы только после обработки Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.

Это двухшаговая схема 1С: сначала пометка, потом удаление. Пока пометка стоит, скан договора или фото накладной лежит в базе и занимает место.

Что нужно знать до удаления вложений

Присоединенный файл в БП 3.0 — это не картинка «внутри» документа, а отдельный элемент служебного справочника. У каждого вида объектов свой справочник файлов. Например, сканы к поступлениям хранятся в справочнике с именем вида ПоступлениеТоваровУслугПрисоединенныеФайлы, а файлы к контрагентам — в своём.

Отсюда три следствия:

  • 🗂 удалять вложение нужно из списка файлов, а не из самого документа — документ при этом не меняется и не перепроводится;
  • 🔗 если на файл ссылается другой объект (например, он выбран основным изображением номенклатуры), его не получится удалить, пока ссылку не уберут;
  • 💾 сам файл может храниться двумя способами: внутри информационной базы или в томе на диске. От этого зависит, освободится ли место.

Проверить способ хранения можно в Администрирование → Общие настройки: там есть группа настроек работы с файлами, где включается хранение в томах и открывается список томов.

Удаление помеченных объектов необратимо. Если речь о сотнях файлов, сначала сделайте резервную копию базы: выгрузку .dt через Конфигуратор или копию каталога файловой базы при закрытой программе.

Права тоже имеют значение. Пометить файл на удаление может обычный пользователь с правом редактирования документа. Окончательное удаление помеченных объектов в типовой Бухгалтерии доступно только администратору.

Как удалить присоединенный файл из документа или справочника

Порядок одинаков для документа, карточки контрагента, сотрудника, номенклатуры.

  1. Откройте нужный объект, например документ «Поступление (акт, накладная, УПД)».
  2. В командной панели формы нажмите кнопку со скрепкой. Рядом с ней обычно видно число вложений. Если кнопки нет на панели, ищите её в меню Ещё.
  3. Откроется список «Присоединенные файлы». Выделите ненужный файл.
  4. Нажмите Del или выберите в меню Ещё команду пометки на удаление. Подтвердите вопрос.
  5. Строка станет перечёркнутой с красным крестом — это и есть пометка.
  6. Закройте список. Документ сохранять повторно не нужно.

Если вы пометили не тот файл, нажмите Del ещё раз — пометка снимется. Пока не запущено удаление помеченных, вернуть файл можно в любой момент.

Как удалить файл из базы окончательно

  1. Откройте Администрирование → Обслуживание.
  2. В группе Корректировка данных выберите Удаление помеченных объектов.
  3. Выберите режим выборочного удаления, чтобы увидеть список помеченного.
  4. Снимите флажки со всего, кроме файлов, если в базе помечены и другие объекты — документы, контрагенты.
  5. Нажмите Удалить.

После обработки программа покажет итог: что удалено, а что нет и почему. Объекты, на которые остались ссылки, попадают во вторую группу.

На время удаления помеченных лучше попросить коллег выйти из базы. Сама обработка работает и при активных пользователях, но объекты, которые кто-то держит открытыми, могут не удалиться.

Массовое удаление присоединенных файлов в 1С 8.3 Бухгалтерия

Открывать каждый документ ради одного скана долго. Если надо почистить, скажем, все вложения к поступлениям за прошлые годы, работайте сразу со списком справочника файлов.

Шаг 1. Включите команду «Все функции»

  1. Откройте главное меню (кнопка с тремя полосками в левом верхнем углу).
  2. Выберите Сервис → Параметры.
  3. Установите флажок Отображать команду "Все функции". Нажмите Применить.

Шаг 2. Откройте нужный справочник файлов

  1. В главном меню выберите Все функции.
  2. Разверните ветку Справочники.
  3. Найдите справочник, в имени которого есть вид объекта и слова «присоединенные файлы». Для поступлений это «Поступление товаров услуг присоединенные файлы», для реализаций — по аналогии.

В списке видны все вложения этого вида по всей базе, с владельцем, автором и датой.

Шаг 3. Отберите и пометьте файлы

  • 🔎 В настройках списка (меню Ещё) поставьте отбор по дате создания, автору или владельцу.
  • ⌨️ Выделите строки: Ctrl+A — все, Shift + клик — диапазон, Ctrl + клик — выборочно.
  • ❌ Нажмите Del и подтвердите пометку для всех выделенных строк.

Дальше — обычное удаление помеченных объектов, как в предыдущем разделе.

Журналы документов («Все документы» и другие) показывают документы, а не их вложения. Удобно использовать журнал, чтобы найти нужные документы, но помечать файлы всё равно придётся в справочнике файлов.

СпособКогда подходитРиск
Из формы документа1–10 файловминимальный
Список справочника файловдесятки и сотни файлов одного видапометить лишнее при неточном отборе
Внешняя обработкатысячи файлов, разные справочники, по расписаниюошибка в условии отбора затронет всю базу

Внешняя обработка и Конфигуратор для очистки вложений

Когда файлов тысячи или их надо отбирать по сложному условию, проще написать маленькую внешнюю обработку . Её запускают через Файл → Открыть (в меню с тремя полосками) у пользователя с полными правами.

Пример ниже помечает на удаление файлы заданного справочника, созданные раньше указанной даты. Он ничего не удаляет физически: результат остаётся обратимым до запуска удаления помеченных.

&НаСервере
Процедура ПометитьСтарыеФайлыНаСервере(ИмяСправочника, ДатаГраница)

	Запрос = Новый Запрос;
	Запрос.Текст = СтрШаблон(
	"ВЫБРАТЬ
	|	Файлы.Ссылка КАК Ссылка
	|ИЗ
	|	Справочник.%1 КАК Файлы
	|ГДЕ
	|	НЕ Файлы.ПометкаУдаления
	|	И Файлы.ДатаСоздания < &ДатаГраница", ИмяСправочника);
	Запрос.УстановитьПараметр("ДатаГраница", ДатаГраница);

	Выборка = Запрос.Выполнить().Выбрать();
	Помечено = 0;
	Пока Выборка.Следующий() Цикл
		ФайлОбъект = Выборка.Ссылка.ПолучитьОбъект();
		ФайлОбъект.УстановитьПометкуУдаления(Истина);
		Помечено = Помечено + 1;
	КонецЦикла;

	Сообщить(СтрШаблон("Помечено на удаление: %1", Формат(Помечено, "ЧГ=0")));

КонецПроцедуры

Вызов: ПометитьСтарыеФайлыНаСервере("ПоступлениеТоваровУслугПрисоединенныеФайлы", '20220101').

Что учесть:

  • точное имя справочника посмотрите в Конфигураторе в ветке Справочники или в адресной строке открытого списка через Все функции;
  • если в отборе нужен размер, у справочников файлов БСП есть реквизит Размер в байтах — условие Файлы.Размер > 5000000 отберёт файлы тяжелее примерно 5 МБ;
  • сначала прогоните обработку на копии базы и сверьте количество помеченного с ожиданием.

Готовые обработки «очистки файлов» со сторонних сайтов запускайте только после просмотра кода: они работают с полными правами и могут удалять данные напрямую, минуя пометку.

Что может администратор в Конфигураторе

В режиме Конфигуратора нет кнопки «удалить вложение». Он нужен для другого:

  • 🧭 узнать точные имена справочников файлов и их реквизиты — для отборов и обработки;
  • 💾 сделать резервную копию через Администрирование → Выгрузить информационную базу перед массовой чисткой;
  • 🗜 после удаления сжать таблицы файловой базы через Администрирование → Тестирование и исправление (подробнее в разделе про освобождение места);
  • 🔐 проверить роли пользователя , если у него не хватает прав пометить файл.

Само удаление вложений делается в режиме 1С:Предприятие — через интерфейс, список справочника или обработку. Так срабатывают проверки ссылок и обработчики, которые убирают файл из тома на диске. Удалять данные «в обход» прямыми запросами к таблицам СУБД нельзя: связи и тома окажутся рассинхронизированы.

Удаление вложений в облачной 1С (1С:Фреш и аналоги)

В облаке интерфейс тот же: скрепка в документе, список справочника файлов, Удаление помеченных объектов. Разница в доступе к служебным инструментам.

  • 🚫 Конфигуратора у пользователя облака обычно нет, а значит, нет и тестирования с сжатием таблиц. Обслуживание файлов базы выполняет провайдер.
  • 🧩 Внешние обработки в облаке запускаются только если сервис это разрешает: часто требуется проверка и публикация обработки провайдером. Без этого остаётся ручное и массовое удаление через список.
  • 📦 Место в облаке считают по квоте тарифа. Если вы чистите базу, чтобы уложиться в лимит, после удаления помеченных уточните у провайдера, когда пересчитывается занятый объём.

Удаление помеченных объектов в облаке тоже может быть доступно только администратору абонента. Если команды нет в меню, обратитесь к тому, кто управляет пользователями в сервисе.

Почему база не стала меньше и как освободить место

Самый частый вопрос после чистки: файлы удалили, а размер базы прежний. Ответ зависит от способа хранения.

Файлы хранились в томах на диске

Тогда сама база вложений почти не содержала, а места занимали файлы в папке тома. При удалении элемента справочника программа удаляет и файл из тома. Проверьте размер папки тома до и после.

Если в папке остались «сироты» — файлы, которым нет записи в базе, — их ищет проверка целостности тома в его карточке. Удалять файлы из папки тома вручную через проводник не стоит: нельзя на глаз отличить лишний файл от нужного.

Файлы хранились в базе

Файловая база. Файл 1Cv8.1CD после удаления данных не уменьшается: освобождённые страницы остаются внутри как пустое место. Чтобы его вернуть:

  1. Все пользователи выходят из базы — для этой операции нужен монопольный доступ, сеансы будут прерваны.
  2. Запустите Конфигуратор, Администрирование → Тестирование и исправление.
  3. Оставьте флажок Сжатие таблиц информационной базы, остальные проверки — по ситуации.
  4. Нажмите Выполнить.

Второй способ — выгрузить базу в .dt и загрузить её обратно в новый пустой каталог. Это тоже даёт компактный файл и заодно резервную копию.

Клиент-серверная база на MS SQL или PostgreSQL. Место внутри базы освобождается сразу, но файл данных на диске сам не уменьшится. Сжимать его — задача администратора СУБД: в MS SQL это команда DBCC SHRINKFILE, в PostgreSQL — VACUUM FULL. Обе операции нагружают сервер и блокируют таблицы, их проводят в нерабочее время.

Не забудьте про версии файлов. Если в базе включено хранение версий, при редактировании файла копилась история — она удаляется вместе с файлом, но тоже должна пройти через удаление помеченных.

Почему присоединенные файлы не удаляются

Диагностика: выберите симптом

Если ничего не помогло, запустите Тестирование и исправление с проверкой ссылочной целостности на копии базы: иногда мешают битые ссылки, оставшиеся после сбоя.

Регламентное задание: удаление по расписанию

Если сотрудники регулярно помечают сканы на удаление, удобно, чтобы база очищалась сама.

  1. Откройте Удаление помеченных объектов.
  2. Включите флажок автоматического удаления по расписанию.
  3. Задайте расписание: например, раз в неделю в воскресенье в 03:00, когда в базе никого нет.

Для файловой базы задание выполняется только пока кто-то из пользователей запущен в программе. В клиент-серверной базе регламентные задания выполняет сервер 1С сам, если в карточке базы в консоли кластера не включена блокировка регламентных заданий.

Список и журнал заданий смотрите в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Там видно, когда задание выполнялось и с какой ошибкой закончилось.

Расписание удаляет всё помеченное, а не только файлы. Договоритесь в команде: пометка на удаление означает «точно не нужно», иначе случайно помеченный документ исчезнет ночью.

Частые вопросы

Можно ли восстановить файл после удаления помеченных объектов?
Нет, только из резервной копии базы. До запуска удаления пометку можно снять клавишей Del.
Удалится ли документ вместе с вложением?
Нет. Вы удаляете элемент справочника файлов, документ и его проводки остаются как были.
Удалятся ли вложения, если удалить сам документ?
Как правило, да: при пометке документа на удаление типовая конфигурация помечает и его вложения, и они удаляются вместе с ним при обработке помеченных объектов.
Как узнать, какие вложения занимают больше всего места?
Откройте список справочника файлов через «Все функции» и отсортируйте по колонке размера. Если колонки не видно, добавьте её в настройках списка.
Нужно ли выгонять пользователей для пометки на удаление?
Нет. Пометка ставится в обычном режиме. Монопольный доступ нужен только для сжатия таблиц в Конфигураторе и загрузки .dt.