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

В этой статье мы разберём не только стандартные методы очистки кэша (включая кэш метаданных, временные файлы и сессионные данные), но и нюансы для разных версий платформы (8.3.20+, 8.3.18 и старше). Вы узнаете, какие файлы можно удалять без риска для базы, как автоматизировать процесс через cron, и что делать, если после очистки 1С отказывается запускаться. Отдельное внимание уделим скрытым пакам кэша в многопользовательских конфигурациях, о которых часто забывают.

Если вы администрируете 1С на Ubuntu, CentOS, Debian или Alt Linux, эта инструкция поможет избежать типичных ошибок и сэкономить часы на поиск решений в документации. Начнём с теории — зачем вообще чистить кэш, и какие проблемы это решает.

Почему кэш 1С на Linux нужно чистить регулярно

Кэш в 1С:Предприятие — это временные файлы, которые платформа создаёт для ускорения работы: хранение компилированных модулей, метаданных, временных отчётов и сессионных данных. На Windows эти файлы обычно лежат в %APPDATA% или ProgramData, а на Linux пути другие — и их нужно знать.

Основные причины для очистки:

  • 🐢 Замедление работы: Со временем кэш разрастается до гигантских размеров (несколько гигабайт), и платформа тратит время на поиск нужных файлов среди мусора.
  • 🔄 Ошибки обновления: При апдейте конфигурации или платформы старые файлы кэша могут конфликтовать с новыми, вызывая сбои.
  • 👥 Проблемы многопользовательского режима: В кластерных установках кэш пользователей может "загрязнять" общие папки, ведут к ошибкам блокировок.
  • 🛠️ Диагностика проблем: Первое, что советует поддержка 1С при странных ошибках — очистить кэш. Это исключает влияние "битых" временных файлов.

На Linux кэш хранится в нескольких местах, и если очистить только одно, проблема может остаться. Например, кэш метаданных лежит в одном каталоге, а временные файлы сеансов — в другом. Кроме того, в 1С:Предприятие 8.3.20+ появились новые механизмы кэширования, которые требуют отдельного внимания.

⚠️ Внимание: Если вы используете 1С:Предприятие в Docker-контейнерах, пути к кэшу могут отличаться! Уточните их через команду docker inspect или в документации к вашему образу.

Где хранится кэш 1С на Linux: полный список путей

В зависимости от версии платформы и способа установки (deb/rpm/тарболл), пути к кэшу могут отличаться. Ниже приведён актуальный список для большинства дистрибутивов.

Тип кэша Путь (одиночная установка) Путь (кластерный сервер) Примечания
Кэш метаданных /home/USER/.1cv8/ /var/1C/cache/ Содержит скомпилированные модули и описания объектов
Временные файлы сеансов /tmp/1cv8/ /var/1C/tmp/ Удаляется автоматически при перезагрузке, но может забиваться
Кэш отчётов и печатных форм /home/USER/.1cv8/print/ /var/1C/print/ Может весить десятки гигабайт при активной работе
Логи и дампы /home/USER/.1cv8/log/ /var/log/1C/ Не кэш, но тоже требует очистки
Кэш веб-клиента /var/www/1c/webcache/ /var/1C/webcache/ Актуально для веб-доступа и тонкого клиента

Для 1С:Предприятие 8.3.20 и новее добавлен ещё один уровень кэширования — общий кэш кластера, который хранится в:

/var/1C/shared_cache/

Этот каталог появляется только при работе в кластерном режиме и может занимать значительный объём. Его очистка требует остановки сервера 1С.

📊 Какой дистрибутив Linux вы используете для 1С?
Ubuntu/Debian
CentOS/RHEL
Alt Linux
Docker-контейнеры
Другой

Пошаговая инструкция: как очистить кэш 1С на Linux

Перед началом очистки выполните два обязательных шага:

  1. Закройте все сеансы 1С на сервере (включая фоновые задачи).
  2. Сделайте резервную копию каталогов кэша (на случай, если что-то пойдёт не так).

Теперь перейдём к очистке. Вариантов несколько — от ручного удаления файлов до использования утилит 1С.

Способ 1: Ручная очистка через командную строку

Самый надёжный метод — удалить файлы кэша вручную. Используйте эти команды (запускайте от имени пользователя, под которым работает 1С, или через sudo):

# Очистка кэша метаданных (для одиночной установки)

rm -rf /home/USER/.1cv8/*

Очистка временных файлов

rm -rf /tmp/1cv8/*

Очистка кэша отчётов

rm -rf /home/USER/.1cv8/print/*

Для кластерного сервера:

sudo rm -rf /var/1C/cache/*

sudo rm -rf /var/1C/tmp/*

sudo rm -rf /var/1C/print/*

sudo rm -rf /var/1C/shared_cache/*

Если вы используете SELinux, после очистки может потребоваться восстановление контекстов безопасности:

restorecon -Rv /var/1C/

Закрыты все сеансы 1С|Создана резервная копия каталогов кэша|Проверены права доступа к папкам|Остановлены фоновые задачи 1С (ragent, rmngr)|Готовы команды для восстановления (на случай ошибки)-->

Способ 2: Очистка через утилиту chdbfl

В состав 1С входит утилита chdbfl, которая умеет чистить кэш баз данных. Она находится в каталоге установки платформы (обычно /opt/1C/v8.3/i386/ или /opt/1C/v8.3/x86_64/). Команды:

# Переход в каталог с утилитами

cd /opt/1C/v8.3/x86_64/

Очистка кэша для конкретной базы (указываем путь к файлу 1CD)

./chdbfl --clear-cache /path/to/your/base/1CD

Очистка кэша для всех баз (требует прав администратора)

sudo ./chdbfl --clear-cache-all

Этот метод безопаснее ручного удаления, так как утилита знает структуру кэша и не затронет критичные файлы.

Способ 3: Автоматическая очистка через cron

Чтобы не чистить кэш вручную, настройте автоматическую очистку по расписанию. Добавьте в crontab (открывается командой crontab -e) следующую строку:

# Очистка кэша каждый день в 3:00

0 3 /bin/rm -rf /home/USER/.1cv8/ /tmp/1cv8/ /var/1C/cache/ /var/1C/tmp/* 2>/dev/null

Для кластерных установок лучше создать отдельный скрипт, который сначала остановит сервис 1С, очистит кэш, а затем запустит его снова.

💡

Перед настройкой cron проверьте, не использует ли ваша конфигурация 1С временные файлы для обмена данными (например, через ПоместитьФайл()). В этом случае ручная очистка /tmp/1cv8/ может прервать бизнес-процессы.

Что делать, если после очистки кэша 1С не запускается

Иногда после очистки кэша платформа отказывается стартовать, выдавая ошибки вроде "Не найден модуль" или "Ошибка инициализации системы". Причины и решения:

  • 🔧 Недостаточно прав: Убедитесь, что пользователь, под которым запускается 1С, имеет права на запись в каталоги кэша. Исправляется командой:
    sudo chown -R usr1cv8:grp1cv8 /var/1C/
  • 🗑️ Удалены критичные файлы: Если вы вручную удалили файлы из /opt/1C/ (а не из кэша), восстановите их с резервной копии или переустановите платформу.
  • 🔄 Конфликт версий: После очистки кэша 1С пытается пересобрать модули. Если версия платформы изменилась, может потребоваться обновить конфигурацию.
  • 📂 SELinux блокирует доступ: Проверьте логи /var/log/audit/audit.log на предмет отказов в доступе. Решается командой:
    setenforce 0

    (временно отключает SELinux для тестирования).

Если проблема остаётся, запустите 1С в режиме отладки, добавив в команду запуска параметр --debug, и изучите логи в /var/log/1C/.

⚠️ Внимание: В 1С:Предприятие 8.3.21+ появился новый механизм кэширования для тонкого клиента — WebKitCache. Его файлы хранятся в /home/USER/.cache/1C/ и тоже требуют периодической очистки.

Очистка кэша для конкретных конфигураций: Бухгалтерия, ЗУП, ERP

Некоторые конфигурации 1С (например, 1С:ERP или 1С:ЗУП) активно используют кэш для хранения промежуточных данных отчётов, печатных форм и механизма РМК (Регламентированная отчётность). Для них стандартной очистки может быть недостаточно.

Дополнительные действия:

  • 📊 1С:Бухгалтерия: Очистите каталог /home/USER/.1cv8/accnt/ — там хранятся кэшированные формы регламентированных отчётов (декларации, балансы).
  • 👥 1С:ЗУП: Удалите файлы в /home/USER/.1cv8/hrm/ — кэш расчётов зарплаты и кадровых отчётов.
  • 🏭 1С:ERP: Проверьте /home/USER/.1cv8/erp/cache/ — там могут лежать устаревшие данные производственных процессов.
  • 🌐 Веб-клиент: Для тонкого клиента и веб-доступа очистите /var/www/1c/webcache/ и /home/USER/.cache/1C/.

Для 1С:Розница и 1С:УТ особое внимание уделите кэшу обмена данными (каталог /home/USER/.1cv8/exchange/), так как там могут накапливаться необработанные файлы обмена с фискальными регистраторами.

Как очистить кэш для 1С

Документооборот:

В 1С:Документооборот кэш хранит предварительно сгенерированные PDF и изображения документов. Для его очистки:

1. Остановите сервис 1С.

2. Удалите содержимое /home/USER/.1cv8/docflow/cache/.

3. Перезапустите сервис.

4. В веб-клиенте дополнительно очистите кэш браузера (Ctrl+Shift+Del).

Без этой очистки могут возникать ошибки при просмотре архивных документов или печатных форм.

Автоматизация очистки кэша: скрипты и лучшие практики

Ручная очистка кэша — не самый эффективный подход. Для крупных установок (особенно кластерных) лучше автоматизировать процесс. Ниже приведён пример скрипта на Bash, который:

  • Останавливает сервисы 1С.
  • Очищает кэш.
  • Проверяет целостность каталогов.
  • Запускает сервисы обратно.
  • Ведёт лог операций.
#!/bin/bash

Пути к сервисам и кэшу

SERVICE_1C="srv1cv83"

CACHE_DIRS=("/var/1C/cache" "/var/1C/tmp" "/var/1C/print" "/var/1C/shared_cache")

LOG_FILE="/var/log/1C/clear_cache.log"

Функция логирования

log() {

echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"

}

Остановка сервисов

log "Остановка сервисов 1С..."

systemctl stop "$SERVICE_1C" 2>> "$LOG_FILE"

Очистка кэша

for dir in "${CACHE_DIRS[@]}"; do

if [ -d "$dir" ]; then

log "Очистка $dir..."

rm -rf "${dir:?}"/*

else

log "Каталог $dir не найден!"

fi

done

Проверка и восстановление прав

log "Восстановление прав..."

chown -R usr1cv8:grp1cv8 /var/1C/ 2>> "$LOG_FILE"

restorecon -Rv /var/1C/ 2>> "$LOG_FILE"

Запуск сервисов

log "Запуск сервисов 1С..."

systemctl start "$SERVICE_1C" 2>> "$LOG_FILE"

log "Очистка кэша завершена."

Сохраните скрипт как /usr/local/bin/clear_1c_cache.sh, сделайте его исполняемым (chmod +x) и добавьте в cron:

# Еженедельная очистка по воскресеньям в 4:00

0 4 0 /usr/local/bin/clear_1c_cache.sh

💡

Для кластерных установок 1С обязательно используйте скрипты с остановкой сервисов. Удаление кэша "на лету" может привести к повреждению данных и падению сеансов пользователей.

Частые ошибки при очистке кэша 1С на Linux

Даже опытные администраторы иногда допускают ошибки, которые ведут к ещё большим проблемам. Вот самые распространённые:

  1. Удаление не тех файлов: Например, очистка /opt/1C/ вместо /var/1C/cache/. Это приведёт к поломке платформы!
  2. Игнорирование SELinux: На CentOS/RHEL после очистки нужно восстанавливать контексты безопасности (restorecon).
  3. Очистка без остановки сервисов: В кластерных установках это может привести к повреждению базы.
  4. Удаление кэша веб-клиента без очистки кэша браузера: Пользователи продолжат видеть старые данные.
  5. Неучтённые пользовательские каталоги: Кэш может храниться в /home/ разных пользователей, а не только в /var/1C/.

Ещё одна типичная ошибка — очистка кэша только на сервере, забывая про клиентские машины. Если пользователи подключаются к 1С с Linux-рабочих станций, их локальный кэш (/home/USER/.1cv8/) тоже нужно чистить.

⚠️ Внимание: В 1С:Предприятие 8.3.22+ появился новый параметр конфигурационного файла disable_cache_cleanup, который может блокировать автоматическую очистку. Проверьте его в /etc/1C/conf/1cv8.conf.

FAQ: Ответы на частые вопросы

Можно ли очищать кэш 1С на Linux без остановки сервера?

Для одиночных установок (файловый вариант) — да, но рискуете получить ошибки в текущих сеансах. Для кластерных серверов — категорически нет! Остановка сервисов обязательна, иначе возможны повреждения базы.

Как часто нужно чистить кэш?

Зависит от интенсивности работы:

  • 📈 Активные базы (ERP, ЗУП с 50+ пользователями): еженедельно.
  • 📊 Средняя нагрузка (Бухгалтерия, УТ): раз в месяц.
  • 📉 Тестовые/резервные базы: перед каждым обновлением платформы.

Автоматизируйте процесс через cron.

Почему после очистки кэша 1С долго запускается?

Это нормально! При первом запуске после очистки платформа пересобирает кэш метаданных и компилирует модули. Время зависит от:

  • Размера конфигурации (ERP или самописная база с 1000+ объектов будет грузиться дольше).
  • Производительности дисков (HDD vs SSD).
  • Версии платформы (в 8.3.20+ кэширование оптимизировано).

Если запуск занимает >10 минут — проверьте логи на ошибки.

Как очистить кэш для конкретной базы, не затрагивая другие?

Используйте утилиту chdbfl с указанием пути к файлу базы:

/opt/1C/v8.3/x86_64/chdbfl --clear-cache /path/to/your/base/1CD

Или вручную удалите кэш из подкаталога с именем базы в /home/USER/.1cv8/ (например, /home/USER/.1cv8/1Cv8.1CD/).

Можно ли отключить кэширование в 1С на Linux?

Технически да, но не рекомендуется. Кэширование значительно ускоряет работу. Если хотите уменьшить его влияние:

  • Ограничьте размер кэша в 1cv8.conf параметром cache_size_mb.
  • Настройте автоматическую очистку через cron.
  • Используйте SSD для каталогов кэша.

Полное отключение кэша (disable_cache=1) приведёт к падению производительности в 3-5 раз.