Удаление папок в 1С: файлы, группы справочников, кэш и код
Содержание
Чтобы удалить папку в 1С 8.3, сначала поставьте на неё пометку удаления (Del в списке), затем запустите обработку удаления помеченных объектов в разделе Администрирование → Обслуживание. Так удаляются папки файлов и группы справочников. Каталог на диске удаляется иначе: вручную при закрытой программе или кодом через УдалитьФайлы().
Типичная ситуация: бухгалтер навёл порядок в номенклатуре, а пустая группа «Старое 2019» никуда не делась. Или у администратора в профиле пользователя накопилось 3 ГБ кэша, и он не знает, какие каталоги можно стереть. Ниже — все варианты удаления папок в 1С, от безопасных к радикальным.
Какие папки бывают в 1С и чем они отличаются
В 1С словом «папка» называют две разные вещи. От этого зависит способ удаления.
| Вид папки | Где живёт | Пример | Как удалять |
|---|---|---|---|
| 📁 Логическая | Внутри информационной базы | Папка файлов, группа номенклатуры, группа контрагентов | Пометка удаления → удаление помеченных |
| 💾 Физическая | На диске компьютера или сервера | Кэш платформы, временные файлы, том хранения файлов, хранилище конфигурации | Проводник, командная строка или код |
Логическая папка — это запись в базе. Её нельзя стереть в проводнике: на диске её просто нет. Физическая папка — обычный каталог Windows или Linux. Программа о нём может даже не знать.
Если в базе включено хранение файлов в томах, у логической папки есть «двойник» на диске: сами файлы лежат в каталоге тома. Удалять их нужно только через 1С, иначе база будет ссылаться на несуществующие файлы.
Как удалить папку с файлами в разделе «Файлы»
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3, УТ 11, КА, ERP) присоединённые файлы хранятся в справочнике «Файлы», а папки — в справочнике «Папки файлов». Быстрее всего открыть список через Все функции → Справочники → Папки файлов. Если пункта «Все функции» в меню нет, включите его: Сервис и настройки → Настройки → Отображать команду «Все функции».
Пошагово
- Откройте список папок и встаньте на нужную.
- Посмотрите, что внутри. Файлы, у которых владелец — эта папка, не дадут удалить её окончательно.
- Перенесите нужные файлы в другую папку или пометьте ненужные на удаление.
- Встаньте на папку и нажмите
Del. Подтвердите пометку. Значок папки станет перечёркнутым. - Запустите удаление помеченных объектов (см. ниже).
Окончательное удаление помеченных
Пометка удаления ничего не стирает. Это флаг «можно удалить». Окончательно запись исчезает после обработки удаления помеченных объектов:
- в Бухгалтерии 3.0 —
Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов; - в других конфигурациях на БСП — тот же раздел
Администрирование → Обслуживание.
Обработка проверяет ссылки. Если на папку что-то ссылается, она покажет, что именно, и папку не удалит. Это нормальная защита, а не ошибка.
Перед удалением помеченных сделайте резервную копию базы . Обработка удаляет всё помеченное, а не только вашу папку. Если коллега когда-то пометил документы «на всякий случай», они тоже исчезнут.
Запускать удаление помеченных может только пользователь с административными правами. Обычный бухгалтер увидит пометку, но не обработку.
Удаление группы (папки) в справочниках
В номенклатуре, контрагентах, статьях затрат группы выглядят как жёлтые папки. Удаляются они так же, через пометку, но есть особенности.
Что происходит при пометке группы
Когда вы помечаете группу иерархического справочника, платформа помечает на удаление и всё, что лежит внутри: подгруппы и элементы. Если в группе 200 позиций номенклатуры, все 200 получат пометку.
Поэтому порядок такой:
- 📦 Откройте группу и выделите элементы, которые нужно сохранить.
- 🔀 Перенесите их в другую группу. В списке это делается перетаскиванием мышью или командой переноса в группу (ищите её в меню
Ещёформы списка). - 🗑️ Убедитесь, что в группе остались только ненужные элементы.
- ✅ Пометьте группу на удаление и запустите удаление помеченных.
Если пометили лишнее
Снять пометку можно той же клавишей Del или командой «Снять пометку удаления». Для группы платформа спросит, снимать ли пометку с подчинённых элементов. Ответьте «Да», если хотите вернуть всё содержимое.
Не уверены, что удалять безопасно? Просто снимите группу с глаз: создайте группу «Архив» и перенесите туда старые элементы. Удаление ради порядка в списке редко стоит риска потерять историю.
Каталоги на диске, связанные с Конфигуратором
В Конфигураторе папки как объекты не удаляют. Но с ним связаны несколько каталогов на диске, которые администратору иногда нужно стереть.
Каталог файловой базы
Файловая база — это папка с файлом 1Cv8.1CD и служебными файлами. Удалять её можно только после того, как:
- все пользователи вышли из базы;
- сделана выгрузка в
.dt(Администрирование → Выгрузить информационную базув Конфигураторе); - база убрана из списка в окне запуска (кнопка «Удалить» — она удаляет только строку списка, файлы остаются на диске).
После этого каталог удаляют в проводнике.
Каталог хранилища конфигурации
Хранилище конфигурации — отдельная папка, к которой подключаются разработчики. Порядок удаления:
- Каждый разработчик отключается от хранилища:
Конфигурация → Хранилище конфигурации → Отключиться от хранилища. - Убедитесь, что последние изменения помещены в хранилище или сохранены в
.cf. - Удалите каталог хранилища в проводнике.
Если удалить каталог хранилища без отключения, база останется «подключённой» к несуществующему хранилищу и будет выдавать ошибки при открытии этого меню. Отключиться можно и после — но объекты, захваченные в хранилище, при этом не сохранятся.
Удаление папок программным кодом
Для физических каталогов во встроенном языке есть метод УдалитьФайлы(). Он удаляет и файлы, и каталоги.
Основные варианты вызова
| Вызов | Что делает |
|---|---|
УдалитьФайлы("C:\Obmen\Old") | Удаляет каталог целиком со всем содержимым |
УдалитьФайлы("C:\Obmen\Old", "*.xml") | Удаляет внутри каталога только файлы по маске, сам каталог остаётся |
УдалитьФайлы("C:\Obmen\Old", "*") | Очищает каталог, сам каталог остаётся |
Удаление идёт мимо корзины. Вернуть файлы средствами 1С нельзя.
Пример: безопасная очистка временного каталога
&НаСервере
Процедура УдалитьВременныйКаталог(Путь)
Каталог = Новый Файл(Путь);
Если Не Каталог.Существует() Или Не Каталог.ЭтоКаталог() Тогда
Возврат;
КонецЕсли;
Попытка
УдалитьФайлы(Путь);
Исключение
ЗаписьЖурналаРегистрации("Удаление каталога",
УровеньЖурналаРегистрации.Ошибка, , ,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецПроцедуры
Проверка Существует() нужна, чтобы не ловить исключение на пустом месте. Блок Попытка — чтобы занятый файл не обрушил всю процедуру.
Где выполняется код — важно
- 🖥️
&НаСервере— путь берётся с сервера 1С, действует от имени пользователя, под которым запущена служба. - 💻
&НаКлиенте— путь с компьютера пользователя. В веб-клиенте нужны асинхронные методы, напримерУдалитьФайлыАсинх().
Частая ошибка: путь C:\Temp\Обмен в серверной процедуре указывает на диск сервера, а не на компьютер бухгалтера.
Удаление логической папки кодом
Записи справочника удаляют через объект:
ПапкаОбъект = СсылкаНаПапку.ПолучитьОбъект();
ПапкаОбъект.УстановитьПометкуУдаления(Истина);
Есть и метод Удалить() — он стирает запись сразу, без проверки ссылок. Не используйте Удалить() в рабочей базе без крайней нужды: останутся «битые» ссылки вида <Объект не найден>.
Очистка кэша и временных каталогов платформы
Кэш — самая частая причина, по которой пользователи ищут, как удалить папку 1С на диске. Он разрастается, а после обновления конфигурации старый кэш иногда вызывает странные ошибки формы.
Где лежит кэш на компьютере пользователя (Windows)
%APPDATA%\1C\1cv8\— каталоги с именами из длинных GUID;%LOCALAPPDATA%\1C\1cv8\— то же, здесь основная часть кэша;%TEMP%— временные файлы, в том числе выгруженные из 1С отчёты и файлы обмена.
Каталоги с GUID-именами в 1cv8 можно удалять целиком. При следующем входе платформа создаст их заново, первый запуск будет чуть дольше.
Что удалять нельзя
- ❌ Файл
ibases.v8iв%APPDATA%\1C\1CEStart\— это ваш список баз в окне запуска. - ❌ Файлы настроек
1cestart.cfg— в них пути к шаблонам и параметры запуска. - ❌ Каталог самой платформы в
Program Files\1cv8— удаляют через «Программы и компоненты».
Очистка без проводника
Кэш конкретной базы можно сбросить параметром запуска /ClearCache. Его добавляют в поле «Дополнительные параметры запуска» в свойствах базы (окно запуска → «Изменить» → последний шаг) или в командную строку:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /ClearCache
После очистки уберите параметр, иначе кэш будет сбрасываться при каждом входе.
Кэш на сервере 1С
На сервере есть сеансовые данные в каталоге кластера (srvinfo). Их чистят только при остановленной службе агента сервера.
Остановка службы 1С оборвёт сеансы всех пользователей. Делайте это в нерабочее время, после предупреждения коллег и с выгрузкой баз. Каталоги с конфигурацией кластера и реестром баз не трогайте — без них сервер «потеряет» базы.
Когда папка не удаляется: права и блокировки
Если 1С или Windows не даёт удалить каталог, причина почти всегда в одном из случаев ниже.
Кэш занят даже при закрытой программе
Иногда после аварийного закрытия процесс 1cv8c.exe остаётся висеть. Завершите его в диспетчере задач. Сначала сохраните работу в других окнах 1С — завершение процесса закрывает сеанс без сохранения.
Автоматическое удаление папок регламентным заданием
Если каталог обмена или выгрузок растёт каждый день, удобнее чистить его по расписанию.
Как устроено
- В Конфигураторе создаётся регламентное задание и привязывается к экспортной процедуре общего модуля.
- В свойствах задания задаётся расписание, например каждую ночь в 03:00.
- Процедура удаляет файлы старше заданного срока.
Пример процедуры, которая удаляет файлы старше 30 дней:
Процедура ОчисткаКаталогаВыгрузок() Экспорт
Каталог = "D:\Obmen\Archive";
Граница = ТекущаяДата() - 30 * 86400; // 30 суток в секундах
Файлы = НайтиФайлы(Каталог, "*.*", Ложь);
Для Каждого Ф Из Файлы Цикл
Если Ф.ЭтоФайл() И Ф.ПолучитьВремяИзменения() < Граница Тогда
Попытка
УдалитьФайлы(Ф.ПолноеИмя);
Исключение
ЗаписьЖурналаРегистрации("Очистка каталога",
УровеньЖурналаРегистрации.Ошибка, , ,
ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Расчёт: 30 суток × 86 400 секунд = 2 592 000 секунд. Дата минус число в 1С — это дата, сдвинутая на столько секунд назад.
Нюансы
- 🗓️ В клиент-серверной базе задание выполняет сервер, путь — серверный.
- 🖥️ В файловой базе регламентные задания выполняются, только пока кто-то работает в программе. Ночью при пустой базе задание не запустится.
- 🛑 Изменение конфигурации снимает её с поддержки или требует расширения. Для типовой базы лучше оформить задание в расширении.
Альтернатива без программирования
Если править конфигурацию нельзя, ту же задачу решает Планировщик заданий Windows. Пример команды, которая удаляет файлы старше 30 дней:
forfiles /p "D:\Obmen\Archive" /s /m *.* /d -30 /c "cmd /c del @path"
Для типовой базы это часто проще и надёжнее, чем доработка.