Администрирование · 10 мин
Как удалить каталог в 1С: все способы с примерами
Как удалить каталог в 1С: удаление папки на диске из кода, группы справочника, каталога базы и временных файлов. Примеры кода, риски и проверка результата.
Под «каталогом» в контексте 1С обычно понимают одно из четырёх: папку на диске, которую нужно удалить из кода на встроенном языке; группу (папку) внутри иерархического справочника; каталог информационной базы на диске при файловом режиме работы; временные каталоги, которые платформа создаёт при работе. Каждая задача решается своим способом, и перепутать их — значит рисковать данными.
Перед любыми действиями с удалением определите, что именно вы удаляете и где находятся данные. Удаление папки с файловой информационной базой необратимо: вместе с файлом 1Cv8.1CD уйдут все документы, справочники и настройки. Удаление группы справочника может потянуть за собой подчинённые элементы. Поэтому первый шаг в любом сценарии — резервная копия.
Определите, какой каталог нужно удалить
Ошибка на этапе постановки задачи — самая частая причина потери данных. Проверьте, что стоит за словом «каталог» в вашей ситуации: путь вида C:\Bases\Trade указывает на папку файловой базы, путь C:\Users\...\AppData\Local\Temp — на временные файлы платформы, а «папка внутри справочника Номенклатура» — это группа иерархического справочника, которая живёт внутри базы, а не на диске.
Также уточните, есть ли вложенные объекты. Группа справочника с элементами, каталог с подпапками и база с активными сеансами пользователей — три разных уровня риска. Чем больше связанных данных, тем тщательнее нужна подготовка.
Как выбрать способ удаления
Сделайте резервную копию перед удалением
Для файловой базы резервная копия — это копирование файла 1Cv8.1CD (или всей папки базы) в отдельное место при отсутствии активных сеансов. Если сеансы открыты, файл может скопироваться в несогласованном состоянии, и такая копия не гарантирует восстановления.
Для клиент-серверной базы корректный способ — выгрузка в файл .dt через конфигуратор (Администрирование → Выгрузить информационную базу) или штатное резервное копирование средствами СУБД. Выгрузка .dt подходит и для файловых баз, если нужен переносимый архив.
Проверьте копию до удаления оригинала: убедитесь, что файл скопировался полностью, а выгрузка .dt завершилась без ошибок. Обнаружить битую копию после удаления оригинала — худший из возможных сценариев.
Удаление каталога на диске из кода 1С
Во встроенном языке для удаления файлов и каталогов используется метод УдалитьФайлы(). Он удаляет как отдельные файлы, так и каталоги целиком, включая вложенные подпапки, если указан путь к каталогу. Перед удалением принято проверять существование пути через объект Файл, чтобы не получить исключение.
ПутьККаталогу = "C:\Temp\Выгрузка";
Файл = Новый Файл(ПутьККаталогу);
Если Файл.Существует() Тогда
УдалитьФайлы(ПутьККаталогу);
КонецЕсли;Вариант с маской позволяет удалить содержимое каталога, оставив саму папку: УдалитьФайлы("C:\Temp\Выгрузка", ".") удалит файлы по маске в указанном каталоге. Это удобно для периодической очистки папок обмена, где сам каталог используется другими процессами.
Учитывайте контекст исполнения. На сервере 1С код видит файловую систему сервера, а не компьютера пользователя; на клиенте права ограничены учётной записью пользователя. В безопасном режиме и при работе через веб-клиент доступ к файловой системе может быть запрещён — операция завершится ошибкой.
Удаление группы (папки) в иерархическом справочнике
Папки внутри справочников «Номенклатура», «Контрагенты» и подобных — это группы, которые удаляются штатным механизмом пометки на удаление. Выделите группу в списке и нажмите Delete или кнопку «Пометить на удаление» — группа будет помечена, но физически останется в базе.
Если внутри группы есть элементы или подгруппы, платформа пометит их вместе с родителем. Это нужно учитывать: пометка «верхней» папки может затронуть сотни элементов. Перед пометкой разверните группу и оцените содержимое.
Окончательное удаление выполняется через обработку «Удаление помеченных объектов» (в типовых конфигурациях: Администрирование → Обслуживание → Удаление помеченных объектов). Обработка проверит ссылки: если на элементы группы ссылаются документы или другие объекты, удаление будет заблокировано, и платформа покажет список мест использования.
- 1Откройте справочник и найдите нужную группу
- 2Проверьте содержимое группы: элементы и подгруппы
- 3Пометьте группу на удаление (Delete)
- 4Откройте Администрирование → Удаление помеченных объектов
- 5Запустите удаление и изучите список препятствующих ссылок
- 6Освободите объекты от ссылок либо отмените удаление
Удаление каталога файловой информационной базы
Файловая база целиком хранится в одном каталоге, ключевой файл — 1Cv8.1CD. Чтобы удалить такую базу, сначала завершите все сеансы: попросите пользователей выйти, проверьте отсутствие фоновых заданий и закройте конфигуратор. Признак активных сеансов — наличие файла блокировок 1Cv8.1CL рядом с файлом базы.
После завершения сеансов и создания резервной копии удалите папку средствами операционной системы — через проводник или командную строку. Затем удалите запись о базе из списка в стартовом окне 1С (кнопка «Удалить» в диалоге выбора баз), чтобы пользователи не пытались открыть несуществующий путь.
Если база опубликована на веб-сервере, дополнительно удалите публикацию: файл default.vrd в каталоге публикации и сам виртуальный каталог в IIS или Apache. Иначе останется «мёртвая» точка подключения, выдающая ошибку.
Очистка временных каталогов платформы
Платформа 1С создаёт временные файлы в профиле пользователя: как правило, в подкаталогах AppData\Local\Temp и в служебных папках вида 1cv8 с произвольными именами. При аварийных завершениях эти каталоги накапливаются и могут занимать заметное место на диске.
Безопасная очистка: закройте все сеансы 1С и конфигуратор, затем удалите содержимое временных папок. Файлы, которые заняты работающим процессом, система не даст удалить — это нормально, пропустите их. Не трогайте каталоги с данными самих баз: временные папки не содержат учётных данных, но содержат кэши, которые платформа пересоздаст автоматически.
Для сервера 1С существуют свои служебные каталоги (srvinfo с подпапками). Удалять оттуда можно только содержимое папок журналов и временных данных при остановленной службе агента сервера; каталоги реестра баз трогать нельзя — это приведёт к потере регистрации баз на сервере.
Проверка результата после удаления
После удаления каталога из кода убедитесь, что операция прошла: повторная проверка Файл.Существует() должна вернуть «Ложь». Если каталог остался, вероятные причины — нехватка прав, открытый в нём файл другим процессом или защита антивирусом.
После удаления группы справочника откройте список и убедитесь, что группа исчезла, а смежные элементы на месте. После удаления файловой базы проверьте, что запись удалена из списка баз и по старому пути не осталось «осиротевших» ярлыков у пользователей.
Как проверить результат
Файл.Существует() возвращает Ложь
Каталог на месте — проверьте права и блокировки
Группы нет в списке, ссылок на неё не осталось
Группа осталась — есть ссылки из документов
Каталог удалён, запись убрана из списка баз
Осталась запись в списке или файл 1Cv8.1CL
Частые вопросы
Можно ли восстановить удалённый каталог файловой базы?
Штатных средств восстановления нет: удаление папки с файлом 1Cv8.1CD необратимо. Варианты — восстановление из резервной копии, из теневых копий Windows (если они включались) или специализированными утилитами восстановления файлов, но последнее не гарантирует целостность базы.
Почему «Удаление помеченных объектов» не удаляет группу справочника?
На группу или её элементы есть ссылки из других объектов: документов, регистров, других справочников. Обработка показывает список таких мест — нужно либо удалить/изменить ссылающиеся объекты, либо снять пометку и оставить группу в базе.
Чем УдалитьФайлы() отличается от удаления через НайтиФайлы()?
НайтиФайлы() возвращает список файлов по маске, который затем можно обработать выборочно — например, удалить только файлы старше определённой даты. УдалитьФайлы() удаляет сразу по указанному пути или маске без предварительного перебора. Для избирательной очистки удобнее связка обоих методов.
Можно ли удалить каталог на сервере 1С из клиентского кода?
Напрямую — нет: клиент работает со своей файловой системой. Удаление папки на сервере выполняется в серверной процедуре (в директиве &НаСервере), при этом учётная запись агента сервера 1С должна иметь права на целевой каталог.
Опасно ли чистить папку Temp, когда 1С запущена?
Часть файлов будет заблокирована работающими процессами и не удалится, но есть риск оборвать файлы активной выгрузки или обмена. Надёжнее закрыть все сеансы 1С перед очисткой — тогда временные каталоги можно чистить полностью.
Как удалить базу из списка в окне запуска, не удаляя файлы?
В окне выбора информационных баз выделите строку и нажмите «Удалить» — из списка запись исчезнет, а файлы на диске останутся. Это удобно, когда база перемещена в другой каталог или нужна только для архивного хранения.
Что важно запомнить
Сначала определите тип каталога: папка на диске, группа справочника или каталог файловой базы. Перед удалением — резервная копия и завершение сеансов. Из кода используйте УдалитьФайлы() с проверкой пути, группы справочников удаляйте через пометку и обработку удаления помеченных объектов, папку файловой базы — средствами ОС. После любого удаления проверьте результат.