К статье
Практический материал

Администрирование · 8 мин

1С 8: как удалить файл — инструкция для пользователя и разработчика

Как удалить файл в 1С 8: удаление файлов через интерфейс, программное удаление методом УдалитьФайлы, работа с присоединёнными файлами и типичные ошибки.

Вопрос удаления файлов в 1С 8 возникает в нескольких разных ситуациях: нужно удалить присоединённый к документу файл, очистить временные файлы на диске, удалить файл обмена или программно стереть файл из обработки. Каждая из этих задач решается своим способом, и ошибка в выборе метода может привести либо к неудалённым данным, либо к потере нужной информации.

Важно сразу разделить два случая. Первый — файл хранится внутри базы 1С как присоединённый к объекту (элементу справочника или документу). Второй — файл лежит на диске сервера или компьютера пользователя, и 1С должна удалить его как обычный объект файловой системы. Подходы принципиально различаются: в первом случае работают команды платформы, во втором — методы встроенного языка.

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

Что именно вы удаляете: файл в базе или файл на диске

Перед удалением определите, где физически находится файл. В типовых конфигурациях (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) документы, изображения и вложения обычно хранятся как присоединённые файлы — либо в самой информационной базе, либо в томах на диске, но ссылка на них всегда лежит в справочнике присоединённых файлов. Удаление такого файла — это удаление элемента справочника, а не работа с диском напрямую.

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

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

Откройте объект, к которому прикреплён файл: документ, элемент справочника номенклатуры, контрагента. Список вложений обычно доступен по команде «Присоединённые файлы», «Файлы» или через пиктограмму скрепки в командной панели формы. В открывшемся списке выделите нужный файл и нажмите «Удалить» (клавиша Delete или пункт контекстного меню).

Платформа задаст вопрос о подтверждении. В большинстве типовых конфигураций файл не стирается мгновенно — ему устанавливается пометка удаления. Окончательное физическое удаление происходит при выполнении операции «Удаление помеченных объектов» (раздел «Администрирование» — «Обслуживание»). До этого момента файл можно восстановить, сняв пометку.

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

Порядок удаления присоединённого файла
  1. 1
    Откройте объект-владелец и перейдите к списку присоединённых файлов
  2. 2
    Выделите файл и нажмите «Удалить», подтвердите действие
  3. 3
    Проверьте, что у файла появилась пометка удаления
  4. 4
    Запустите «Администрирование» — «Обслуживание» — «Удаление помеченных объектов»
  5. 5
    Убедитесь, что файл исчез из списка, а при ошибке — изучите места использования

Программное удаление файла на диске

Для удаления файла с диска во встроенном языке используется метод УдалитьФайлы(). Он принимает путь к файлу или маску и, при необходимости, подкаталог. Метод выполняется на той стороне, где расположен код: в клиентской процедуре — на компьютере пользователя, в серверной — на сервере 1С.

bsl
УдалитьФайлы("C:\\Обмен\\выгрузка.xml");
// Удаление по маске:
УдалитьФайлы("C:\\Обмен\\", "*.tmp");

Если каталог недоступен или файл занят другим процессом, метод вызовет исключение. Поэтому удаление оборачивают в конструкцию Попытка ... Исключение ... КонецПопытки и записывают текст ошибки в журнал регистрации или сообщение пользователю. Это особенно важно в регламентных заданиях, где необработанное исключение прервёт всё задание.

В тонком и веб-клиенте действует модальность: для интерактивного удаления с подтверждением пользователя применяют асинхронные методы с описанием оповещения. Прямой вызов УдалитьФайлы без обработки модальности может быть заблокирован настройками безопасности клиента.

Удаление файлов на сервере в клиент-серверном режиме

Частая ошибка — попытка удалить серверный файл из клиентской процедуры. Код с директивой &НаКлиенте видит только диски компьютера пользователя. Если файл лежит на сервере 1С, удаление нужно выполнять в процедуре &НаСервере, и путь должен быть доступен учётной записи, под которой работает агент сервера 1С.

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

Удаление файлов обмена и временных файлов

Файлы обмена между базами (XML, выгрузки) после успешной загрузки обычно удаляют программно в той же обработке, которая выполняет обмен. Рекомендуемый порядок: сначала убедиться, что загрузка завершилась без ошибок, затем вызвать УдалитьФайлы. Удаление файла до проверки результата загрузки — распространённая причина потери данных при сбоях обмена.

Временные файлы, созданные через ПолучитьИмяВременногоФайла(), платформа не всегда удаляет автоматически, особенно при аварийном завершении сеанса. Периодически очищайте каталог временных файлов сервера и клиентов — либо в коде после использования, либо регламентной операцией на уровне операционной системы.

Типичные ошибки
01
Удаление файла из клиентской процедуры, хотя он лежит на сервере — файл остаётся на месте
02
Удаление файла обмена до проверки успешности загрузки — при сбое данные теряются
03
Ручное удаление файлов томов хранения вложений — в базе остаются битые ссылки
04
Отсутствие обработки исключений — регламентное задание прерывается целиком
05
Удаление по широкой маске без проверки каталога — стираются лишние файлы

Проверка результата и восстановление после ошибки

После программного удаления проверьте результат методом поиска файла: создайте объект Файл с тем же путём и вызовите Существует(). Значение «Ложь» подтверждает удаление. Для присоединённых файлов достаточно обновить список вложений и убедиться, что элемент исчез после операции удаления помеченных объектов.

Если присоединённый файл был помечен на удаление ошибочно, снимите пометку до запуска «Удаления помеченных объектов» — файл полностью восстановится. После физического удаления восстановление возможно только из резервной копии базы. Файл, удалённый с диска методом УдалитьФайлы, в корзину не попадает — восстановить его штатными средствами 1С нельзя.

Контрольные точки

Как проверить результат

Присоединённый файл
Норма

Файл исчез из списка после удаления помеченных объектов

Тревожный признак

Файл остался помеченным — есть ссылки из других объектов

Файл на диске
Норма

Файл.Существует() возвращает Ложь

Тревожный признак

Файл на месте — неверная сторона выполнения или нет прав

Журнал регистрации
Норма

Нет ошибок удаления

Тревожный признак

Записи «Отказано в доступе» или «файл занят»

Частые вопросы об удалении файлов в 1С 8

Удаляется ли файл физически сразу после нажатия «Удалить»?

В типовых конфигурациях — нет. Сначала устанавливается пометка удаления, а физическое удаление происходит при выполнении операции «Удаление помеченных объектов» в разделе администрирования. До этого момента файл можно восстановить.

Почему УдалитьФайлы выдаёт ошибку «Отказано в доступе»?

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

Можно ли удалить файл на сервере из клиентской процедуры?

Нет. Клиентский код работает только с дисками компьютера пользователя. Перенесите удаление в серверную процедуру и убедитесь, что путь доступен серверу 1С.

Попадает ли удалённый файл в корзину Windows?

Нет. Метод УдалитьФайлы стирает файл безвозвратно, минуя корзину. Восстановление возможно только из резервной копии или специальными утилитами восстановления данных.

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

Используйте маску: УдалитьФайлы("Каталог", "*.tmp"). Применяйте маску осторожно — она удалит все подходящие файлы в указанном каталоге без подтверждения.

Что будет, если вручную удалить файл из тома хранения вложений?

В базе останется ссылка на несуществующий файл: при открытии вложения пользователь получит ошибку. Удалять присоединённые файлы нужно только через интерфейс 1С или программно через объекты справочника.

Итог

Что важно запомнить

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