Администрирование · 10 мин
Как удалить CDN-файл в 1С
Как удалить CDN-файл в 1С: где искать файл, как удалить его через конфигуратор, код на встроенном языке и файловую систему, проверка результата и типичные ошибки.
CDN-файлы в контексте 1С чаще всего встречаются в двух ситуациях: как статические ресурсы (скрипты, стили, изображения), размещённые на внешней сети доставки контента и используемые веб-публикацией или мобильным клиентом 1С, и как кэшированные копии файлов, которые платформа или веб-сервер сохраняет локально. Удаление такого файла требуется, когда ресурс устарел, содержит ошибку, занимает место или мешает корректной работе публикации.
Способ удаления зависит от того, где физически находится файл: на стороне CDN-провайдера, в каталоге публикации веб-сервера, внутри информационной базы (в хранилище значений или справочнике файлов) либо во временном кэше клиента. Универсальной кнопки «удалить CDN-файл» в 1С нет — действие выполняется либо штатными средствами конфигурации, либо кодом на встроенном языке, либо напрямую через файловую систему и панель управления CDN.
Прежде чем удалять что-либо, убедитесь, что файл действительно не используется: удаление активного ресурса приведёт к ошибкам загрузки страниц, битым ссылкам в веб-клиенте или сбоям обмена данными. Ниже разобраны все основные сценарии с конкретными действиями и проверками.
Определите, где находится CDN-файл
Первый шаг — локализовать файл. Если речь идёт о ресурсе, который 1С отдаёт через внешний CDN (например, JS-библиотека для веб-портала, интегрированного с 1С), файл физически хранится у провайдера сети доставки контента, а в 1С есть только ссылка на него. Если файл попал в кэш веб-сервера, который обслуживает публикацию базы, он лежит в каталоге публикации или во временных каталогах IIS/Apache.
Третий вариант — файл хранится внутри самой информационной базы: в справочнике присоединённых файлов, в регистре сведений с двоичными данными или в константе-хранилище. В этом случае «CDN» обычно означает, что файл был выгружен туда синхронизацией, а исходник находится в базе. Уточнить расположение помогает путь в ссылке: адрес вида cdn.example.com/file.js указывает на внешний CDN, а /base_name/ru/e1cib/... — на внутреннее хранилище 1С.
Удаление файла через панель CDN-провайдера
Если файл размещён у внешнего провайдера, удаление выполняется в личном кабинете сервиса. Войдите в панель управления, найдите нужный ресурс по пути или имени файла и используйте функцию удаления или очистки кэша (purge/invalidate). У большинства провайдеров доступны два действия: полное удаление исходника с оригинального хранилища и сброс кэшированных копий на узлах сети.
Важно понимать разницу: сброс кэша не удаляет файл, а заставляет узлы CDN заново запросить его с источника. Если нужно именно убрать файл из доступа, удаляйте его в источнике (например, в объектном хранилище или на сервере-оригинале), а затем выполняйте инвалидацию кэша, чтобы устаревшие копии исчезли с узлов. До завершения инвалидации файл может оставаться доступным по старой ссылке — это нормальное поведение сети доставки.
- 1Определите по ссылке, где лежит оригинал файла: хранилище, веб-сервер или база 1С
- 2Удалите файл из источника (хранилище, каталог сервера, справочник файлов)
- 3В панели CDN-провайдера выполните инвалидацию кэша по точному пути файла
- 4Проверьте в браузере в режиме инкогнито, что по ссылке возвращается ошибка 404 или 403
Удаление файла из каталога веб-публикации 1С
Когда 1С опубликована на веб-сервере, статические файлы и кэш могут находиться в каталоге публикации. Остановите на время работы приложение или убедитесь, что файл не заблокирован процессом веб-сервера, затем удалите файл штатными средствами операционной системы. В Windows это делается через проводник или командную строку, в Linux — командой rm с полным путём.
Если файл заблокирован (ошибка «файл используется другим процессом»), определите процесс-владелец: в Windows поможет диспетчер ресурсов, в Linux — команда lsof с именем файла. Обычно блокировку держит рабочий процесс IIS (w3wp) или Apache. Перезапуск пула приложений или службы веб-сервера снимает блокировку, после чего удаление проходит штатно.
# Linux: найти процесс, блокирующий файл, и удалить его
lsof /var/www/publication/cache/cdn-file.js
rm /var/www/publication/cache/cdn-file.jsПосле удаления очистите кэш браузеров пользователей или дождитесь истечения времени жизни кэша, иначе клиенты продолжат видеть старую версию, загруженную ранее. Для критичных ресурсов полезно добавлять в ссылку параметр версии — это заставляет клиентов запрашивать файл заново.
Программное удаление файла кодом 1С
Если файл находится на диске сервера 1С и удалить его нужно из прикладного кода (например, в регламентном задании очистки), используется метод УдалитьФайлы(). Он принимает путь к файлу или каталогу и, опционально, маску. Код выполняется на стороне сервера, поэтому путь должен быть доступен учётной записи, под которой работает агент сервера 1С.
ПутьКФайлу = "/opt/cdn-cache/report_export.xlsx";
Файл = Новый Файл(ПутьКФайлу);
Если Файл.Существует() Тогда
УдалитьФайлы(ПутьКФайлу);
КонецЕсли;Типичные причины неудачи программного удаления — недостаток прав у учётной записи сервера 1С, блокировка файла другим процессом и неверный путь (например, клиентский путь вместо серверного). Всегда проверяйте существование файла перед удалением и оборачивайте операцию в попытку-исключение, чтобы ошибка не прерывала регламентное задание целиком.
Для удаления файлов, хранящихся внутри базы (присоединённые файлы справочников), программное удаление делается через объектную модель: получаете ссылку на элемент справочника файлов и вызываете метод удаления объекта, а не работаете с диском напрямую. Прямое удаление из каталога хранения файлов в обход механизмов конфигурации приведёт к битым ссылкам в базе.
Удаление файла из справочника файлов конфигурации
В типовых конфигурациях (БСП, «Управление торговлей», «Документооборот» и другие) файлы хранятся в справочниках присоединённых файлов. Откройте объект-владелец (документ, элемент справочника), перейдите к списку присоединённых файлов, выделите нужный и удалите его стандартной командой. Если конфигурация настроена на хранение файлов в томах на диске, платформа удалит и запись в базе, и физический файл.
Если удаление запрещено правами, обратитесь к администратору за ролью с правом удаления присоединённых файлов. Если файл помечен на удаление, но физически остаётся в томе, выполните обработку удаления помеченных объектов в монопольном режиме — только после этого освобождается место на диске.
Проверка результата и типичные ошибки
После удаления убедитесь, что файл недоступен по всем каналам: по прямой CDN-ссылке, из веб-клиента 1С и из файловой системы сервера. Проверку ссылки выполняйте в режиме инкогнито или с очисткой кэша браузера, иначе локальная копия создаст ложное впечатление, что файл ещё существует.
Как проверить результат
Код 404 или 403 после инвалидации кэша
Файл открывается или возвращается его старая версия
Размер каталога уменьшился на размер файла
Размер не изменился — файл удалён только из базы
Страницы открываются без ошибок загрузки ресурсов
В консоли браузера ошибки 404 на нужные скрипты или стили
Когда удалять файл не нужно: альтернативы
Не всегда проблема решается удалением. Если файл устарел, но ссылка на него используется в интеграциях, безопаснее заменить содержимое файла с сохранением имени — тогда все существующие ссылки продолжат работать. Если файл занимает место, но изредка нужен, рассмотрите перенос в архивное хранилище вместо удаления.
Если цель — запретить доступ к файлу, альтернативой будет настройка прав доступа на стороне CDN или веб-сервера (ограничение по токену, IP или авторизации). Это обратимое действие, в отличие от удаления, и подходит для спорных ситуаций, когда необходимость файла ещё уточняется.
Что важно запомнить
Порядок безопасного удаления CDN-файла в 1С: определить место хранения, сделать резервную копию, удалить оригинал штатным способом, сбросить кэш CDN и проверить результат по прямой ссылке в чистом браузере. Никогда не удаляйте файлы из каталогов хранения базы в обход конфигурации.
Частые вопросы
Удалил файл, но по ссылке он всё ещё открывается. Почему?
Файл остался в кэше узлов CDN или в кэше браузера. Выполните инвалидацию кэша в панели провайдера по точному пути файла и проверьте ссылку в режиме инкогнито. Распространение инвалидации по всем узлам может занять некоторое время.
Можно ли удалить CDN-файл из пользовательского режима 1С без программирования?
Да, если файл хранится в справочнике присоединённых файлов конфигурации — удаляйте его стандартной командой из карточки объекта. Файлы на внешнем CDN или в каталоге веб-сервера из интерфейса 1С не удаляются, для них нужны панель провайдера или доступ к серверу.
Что делать, если файл не удаляется из-за ошибки «файл занят другим процессом»?
Определите процесс-владелец (в Linux — lsof, в Windows — диспетчер ресурсов), перезапустите пул приложений IIS или службу Apache и повторите удаление. Если блокировку держит регламентное задание 1С, дождитесь его завершения или завершите сеанс через консоль кластера.
Удалится ли физический файл с диска, если удалить элемент справочника файлов?
Да, если конфигурация настроена на хранение файлов в томах: платформа удаляет и запись, и файл. Однако при пометке на удаление физическое освобождение места происходит только после штатной обработки «Удаление помеченных объектов» в монопольном режиме.
Как безопасно удалить устаревший ресурс, на который есть ссылки в интеграциях?
Сначала замените содержимое файла на актуальное с сохранением имени — ссылки продолжат работать. Если удаление неизбежно, найдите все места использования ссылки (внешние обработки, настройки обмена, веб-страницы), переключите их на новый ресурс и только после этого удаляйте старый файл с инвалидацией кэша.
Нужна ли резервная копия перед удалением одного файла?
Да. Скопируйте сам файл в отдельный каталог, а при удалении из базы — сделайте выгрузку данных или снимите копию с тома хранения. Восстановить файл, удалённый одновременно из источника и из всех узлов CDN, без копии невозможно.