Полное руководство по очистке кэша 1С: пользовательского и серверного на Windows и Linux
Немного теории
В работе с 1С периодически возникают проблемы, которые не связаны с ошибками конфигурации или данными: медленная работа, некорректное отображение форм, ошибки «Неверная форма хранилища данных». Часто причина таких проблем кроется в повреждении кэша системы.
Кэш 1С — это временные файлы, которые хранят скомпилированные модули, данные форм и другие промежуточные объекты для ускорения работы. Однако при сбоях (аварийное завершение, обрывы соединения, проблемы с обновлением) эти файлы могут повреждаться, вызывая проблемы в работе системы.
В этой статье мы рассмотрим полные процедуры очистки как пользовательского (клиентского), так и серверного кэша на операционных системах Windows и Linux. Вы узнаете о причинах проблем, способах диагностики и получите готовые скрипты для автоматизации процесса очистки.
1. Пользовательский (клиентский) кэш в Windows
1.1. Что это и где находится
Пользовательский кэш 1С хранит локальные данные клиентского приложения на компьютере пользователя. Он включает:
-
Скомпилированные модули конфигурации
-
Настройки интерфейса и форм
-
Временные файлы отчетов и обработок
-
Данные о списке информационных баз
Располагается кэш в двух основных директориях:
-
%AppData%\1C\1Cv8\— настройки, список баз -
%LocalAppData%\1C\1Cv8\— тяжелые данные, локальный кэш выполнения
1.2. Когда нужна очистка
Признаки, указывающие на необходимость очистки пользовательского кэша:
-
Ошибки отображения форм или отчетов на одном компьютере при нормальной работе на других
-
Сообщения об ошибках вида «Неверная форма хранилища данных», «Ошибка компиляции модуля»
-
Некорректное поведение после обновления конфигурации
-
Зависания или аномально медленная работа 1С на конкретном компьютере
1.3. Способы очистки
1.3.1. Ручной способ (самый надежный)
-
Закройте все окна 1С:Предприятие на компьютере
-
Откройте Проводник Windows
-
В адресной строке введите по очереди два пути, удаляя в каждой папки с именами вида
{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}:-
%LocalAppData%\1C\1Cv8\ -
%AppData%\1C\1Cv8\
-
-
Перезагрузите компьютер

1.3.2. Запуск с параметром /ClearCache
Добавьте параметр /ClearCache в свойства запуска информационной базы в списке баз 1С:
-
Откройте список информационных баз
-
Выберите нужную базу и нажмите «Изменить»
-
В поле «Дополнительные параметры запуска» добавьте
/ClearCache -
Запустите базу, затем удалите параметр

Важно: этот параметр очищает только часть кэша и при постоянном использовании снижает производительность.
1.3.3. Скрипт автоматической очистки (batch-файл)
Создайте файл clear_1c_user_cache.bat (скачать) с следующим содержимым:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
@echo off chcp 1251 >nul echo Очистка кэша 1С... echo Закройте все окна 1С перед продолжением! pause rem Проверка запущенных процессов 1С tasklist /fi "imagename eq 1cv8.exe" 2>nul | find /i "1cv8.exe" >nul if not errorlevel 1 ( echo ОШИБКА: 1С всё ещё запущена. Закройте программу и запустите скрипт снова. pause exit /b 1 ) set "count=0" for /d %%i in ("%APPDATA%\1C\1Cv8\*-*-*-*-*") do ( echo Удаление: %%i rmdir /s /q "%%i" set /a count+=1 ) for /d %%i in ("%LOCALAPPDATA%\1C\1Cv8\*-*-*-*-*") do ( echo Удаление: %%i rmdir /s /q "%%i" set /a count+=1 ) echo. echo Готово. Удалено папок: %count% pause |
1.4. Последствия и рекомендации
После очистки пользовательского кэша:
-
Сбросятся персональные настройки интерфейса (расположение окон, панелей)
-
Удалятся локальные данные отчетов и обработок
-
Первый запуск займет больше времени, так как система заново создаст кэш
Рекомендация: создайте резервную копию папок кэша перед очисткой, если есть важные локальные настройки.
1.5. Автоматическая очистка пользовательского кэша 1С для RDP-серверов Windows
Для автоматизации очистки кэша 1С на RDP-серверах я использую bat-скрипт. Он последовательно завершает активные пользовательские сеансы, выжидает паузу для корректного закрытия процессов, затем перебирает все профили в C:\Users\ и удаляет папки кэша. В конце скрипт проверяет, не остались ли запущенные процессы 1cv8.exe, и сообщает об этом администратору.
Скрипт не завершает сеанс администратора, блок «if /i «!user!» neq «Администратор»», если Ваш админский профиль отличается от «Администратор», исправьте на свое имя или допишите несколько исключений (если админов несколько).
Создайте файл clear_1c_rdp_user_cache.bat (скачать)с следующим содержимым:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
@echo off chcp 1251 >nul setlocal EnableDelayedExpansion echo ============================================ echo Завершение сеансов и очистка кэша 1С (RDP) echo ============================================ echo. rem --- Проверка прав администратора --- net session >nul 2>&1 if %errorLevel% neq 0 ( echo ОШИБКА: Запустите скрипт от имени Администратора! pause exit /b 1 ) rem ============================================ rem ШАГ 1: Завершение RDP-сеансов rem ============================================ echo [1/3] Завершение RDP-сеансов... echo. for /f "skip=2 tokens=1-3" %%a in ('query session') do ( call :ReturnIDCurrentUser "%%c" if !errorlevel!==0 ( set "user=%%b" set "ID=%%c" ) else ( set "user=%%a" set "ID=%%b" ) if /i "!user!" neq "Администратор" ( if /i "!user!" neq "rdp-tcp" ( if /i "!user!" neq "services" ( if /i "!user!" neq "console" ( echo Завершение сеанса: !user! (ID=!ID!) logoff !ID! ) ) ) ) ) echo. echo Ожидаем завершения сеансов... timeout /t 10 /nobreak >nul rem ============================================ rem ШАГ 2: Очистка кэша 1С для всех профилей rem ============================================ echo [2/3] Очистка кэша 1С во всех профилях пользователей... echo. set "deleted=0" for /d %%u in ("C:\Users\*") do ( set "username=%%~nu" if /i "!username!" neq "Public" ( if /i "!username!" neq "Default" ( if /i "!username!" neq "Default User" ( if /i "!username!" neq "All Users" ( for /d %%s in ("%%u\AppData\Roaming\1C\1Cv8\*-*-*-*-*") do ( echo [!username!] Удаление: %%s rmdir /s /q "%%s" 2>nul set /a deleted+=1 ) for /d %%s in ("%%u\AppData\Local\1C\1Cv8\*-*-*-*-*") do ( echo [!username!] Удаление: %%s rmdir /s /q "%%s" 2>nul set /a deleted+=1 ) ) ) ) ) ) echo. echo Удалено папок: !deleted! rem ============================================ rem ШАГ 3: Проверка процессов 1С rem ============================================ echo. echo [3/3] Проверка оставшихся процессов 1С... tasklist /fi "imagename eq 1cv8.exe" 2>nul | find /i "1cv8.exe" >nul if not errorlevel 1 ( echo ПРЕДУПРЕЖДЕНИЕ: 1С ещё запущена у кого-то из пользователей. echo Кэш этих пользователей мог не очиститься полностью. tasklist /fi "imagename eq 1cv8.exe" ) else ( echo Процессы 1С не обнаружены. Чисто. ) echo. echo ============================================ echo Готово! Время: %date% %time% echo ============================================ pause exit /b :ReturnIDCurrentUser echo.%~1|>nul findstr /R "[^0-9]" && exit /b 1 exit /b 0 |
2. Серверный кэш в Windows
2.1. Особенности серверного кэша
Серверный кэш 1С хранит данные, общие для всех пользователей:
-
Скомпилированные модули в формате сервера
-
Сеансовые данные кластера серверов
-
Кэш запросов и временные файлы рабочих процессов
Располагается по пути: C:\Program Files\1cv8\srvinfo\reg_<port>\snccntx*, где <port> — номер порта кластера (обычно 1541).
2.2. Когда нужна очистка серверного кэша
Симптомы, требующие очистки серверного кэша:
-
Ошибки на всех компьютерах, подключенных к одной информационной базе
-
Проблемы после обновления конфигурации на сервере
-
Сообщения об ошибках памяти или блокировках на сервере
-
Неполадки с лицензиями или управлением сеансами
2.3. Комплексный скрипт очистки (требует прав администратора)
Создайте файл clear_1c_server_cache.bat (скачать) и запускайте от имени администратора:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
@echo off chcp 1251 >nul echo ============================================ echo Очистка кэша сервера 1С:Предприятие echo ============================================ echo. rem Проверка прав администратора net session >nul 2>&1 if %errorLevel% neq 0 ( echo ОШИБКА: Запустите скрипт от имени Администратора! pause exit /b 1 ) echo 1. Остановка служб 1С... net stop "1C:Enterprise 8.3 Server Agent (x86-64)" >nul 2>&1 net stop "1C:Enterprise 8.3 Server Agent" >nul 2>&1 timeout /t 3 /nobreak >nul echo 2. Принудительное завершение оставшихся процессов... taskkill /F /IM rphost.exe >nul 2>&1 taskkill /F /IM rmngr.exe >nul 2>&1 taskkill /F /IM ragent.exe >nul 2>&1 timeout /t 5 /nobreak >nul echo 3. Удаление сеансовых данных... set "srvinfo=C:\Program Files\1cv8\srvinfo" set "deleted=0" rem Перебираем все кластеры (все папки reg_*) for /d %%p in ("%srvinfo%\reg_*") do ( rem Внутри каждого кластера удаляем папки snccntx* for /d %%s in ("%%p\snccntx*") do ( echo Удаление: %%s rmdir /s /q "%%s" set /a deleted+=1 ) ) echo Удалено папок: %deleted% echo 4. Запуск служб 1С... net start "1C:Enterprise 8.3 Server Agent (x86-64)" >nul 2>&1 net start "1C:Enterprise 8.3 Server Agent" >nul 2>&1 echo. echo ============================================ echo Очистка завершена. Службы запущены. echo Время: %date% %time% echo ============================================ pause |
2.4. Важные замечания
-
Остановка работы: скрипт завершает работу всех пользователей на время выполнения
-
Адаптация: измените имя службы, если используется другое
-
Планирование: выполняйте очистку в нерабочее время
3. Серверный кэш в Linux
3.1. Особенности 1С на Linux
В Linux-системах 1С работает как служба, управляемая через systemd или init.d. Пути к данным отличаются от Windows и зависят от способа установки (deb/rpm пакеты или tar.gz архив).
3.2. Типичные расположения кэша
-
При установке из пакетов:
/var/opt/1C/v8.3/x86_64/reg_<port>/snccntx* -
При установке из архива:
/home/usr1cv8/.1cv8/1C/1cv8/reg_<port>/snccntx* -
Временные файлы:
/tmp/1Cv8*
3.3. Скрипт очистки для Linux
Создайте файл clear_1c_server_cache.sh (скачать):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
#!/bin/bash # Очистка серверного кэша 1С:Предприятие (Linux) # Запуск: sudo ./clear_1c_server_cache.sh set -euo pipefail echo "============================================" echo " Очистка кэша сервера 1С:Предприятие (Linux)" echo "============================================" echo "" # --- Проверка прав --- if [[ $EUID -ne 0 ]]; then echo "ОШИБКА: Запустите скрипт с правами root (sudo)" exit 1 fi # --- Определение служб 1С (может быть несколько) --- SERVICES=() # Ищем все запущенные и остановленные юниты содержащие srv1cv8 while IFS= read -r svc; do [[ -n "$svc" ]] && SERVICES+=("$svc") done < <(systemctl list-units --full --all --no-legend 2>/dev/null \ | awk '{print $1}' | grep 'srv1cv8' || true) # Fallback: ищем через list-unit-files если выше ничего не нашли if [[ ${#SERVICES[@]} -eq 0 ]]; then while IFS= read -r svc; do [[ -n "$svc" ]] && SERVICES+=("$svc") done < <(systemctl list-unit-files --no-legend 2>/dev/null \ | awk '{print $1}' | grep 'srv1cv8' || true) fi # Fallback: старый sysvinit/service if [[ ${#SERVICES[@]} -eq 0 ]]; then while IFS= read -r svc; do [[ -n "$svc" ]] && SERVICES+=("$svc") done < <(service --status-all 2>/dev/null \ | awk '{print $NF}' | grep 'srv1cv8' || true) fi # --- Остановка служб --- if [[ ${#SERVICES[@]} -eq 0 ]]; then echo "[1/3] ПРЕДУПРЕЖДЕНИЕ: Службы 1С не найдены, продолжаем без остановки..." else echo "[1/3] Найдены службы:" for svc in "${SERVICES[@]}"; do echo " - $svc" done echo "" echo " Останавливаем..." for svc in "${SERVICES[@]}"; do systemctl stop "$svc" 2>/dev/null || service "$svc" stop 2>/dev/null || true done # Ждём реального завершения процессов echo " Ожидаем завершения процессов..." for proc in ragent rmngr rphost; do timeout 15 bash -c "while pgrep -x $proc > /dev/null; do sleep 1; done" \ || pkill -9 -x "$proc" 2>/dev/null || true done echo " Службы остановлены." fi # --- Определение путей к кэшу --- echo "" echo "[2/3] Поиск и удаление кэша snccntx*..." SEARCH_PATHS=( "/home/usr1cv8/.1cv8/1C/1cv8" # Debian/Ubuntu (deb-пакет) "/var/opt/1C/v8.3/x86_64" # RPM-based (CentOS/RHEL) "/var/opt/1C/v8.3/i386" # 32-bit RPM "/opt/1cv8/srvinfo" # Ручная установка вариант 1 "/opt/1C/v8.3/x86_64/srvinfo" # Ручная установка вариант 2 "/opt/1C/v8.3/i386/srvinfo" ) # Добавляем home-директорию пользователя usr1cv8 если отличается от стандартной USR_HOME=$(getent passwd usr1cv8 2>/dev/null | cut -d: -f6 || true) if [[ -n "$USR_HOME" && "$USR_HOME" != "/home/usr1cv8" ]]; then SEARCH_PATHS+=("${USR_HOME}/.1cv8/1C/1cv8") fi DELETED=0 for base in "${SEARCH_PATHS[@]}"; do # Перебираем все кластеры reg_* внутри каждого пути for reg_dir in "${base}"/reg_*/; do [[ -d "$reg_dir" ]] || continue for snc_dir in "${reg_dir}"snccntx*/; do [[ -d "$snc_dir" ]] || continue echo " Удаление: $snc_dir" rm -rf "$snc_dir" DELETED=$((DELETED + 1)) done done done if [[ $DELETED -eq 0 ]]; then echo " Папки snccntx* не найдены (возможно уже чисто)" else echo " Удалено папок: $DELETED" fi # --- Очистка /tmp --- echo "" echo "[3/3] Очистка временных файлов 1С в /tmp..." find /tmp -name "1Cv8*" -delete 2>/dev/null \ && echo " /tmp очищен" \ || echo " /tmp — нечего удалять" # --- Запуск служб --- echo "" if [[ ${#SERVICES[@]} -gt 0 ]]; then echo "Запускаем службы..." for svc in "${SERVICES[@]}"; do systemctl start "$svc" 2>/dev/null || service "$svc" start 2>/dev/null || true done sleep 3 # Проверка статуса каждой службы ALL_OK=true for svc in "${SERVICES[@]}"; do if systemctl is-active --quiet "$svc" 2>/dev/null; then echo " ✓ $svc — запущена" else echo " ✗ $svc — не запустилась, проверьте: systemctl status $svc" ALL_OK=false fi done if [[ "$ALL_OK" == false ]]; then echo "" echo "ПРЕДУПРЕЖДЕНИЕ: Одна или несколько служб не запустились!" fi fi echo "" echo "============================================" echo " Готово! Время: $(date)" echo "============================================" |
3.4. Настройка прав и планирование
-
Права на выполнение:
chmod +x clear_1c_server_cache.sh -
Планирование в cron: для регулярной очистки (например, каждое воскресенье в 3:00):
|
1 |
0 3 * * 0 /path/to/clear_1c_server_cache.sh >> /var/log/1c_cache_clean.log 2>&1 |
4. Сравнительный анализ методов очистки
| Критерий | Пользовательский кэш (Windows) | Серверный кэш (Windows) | Серверный кэш (Linux) |
|---|---|---|---|
| Влияние на пользователей | Только на конкретном компьютере | На всех пользователей ИБ | На всех пользователей ИБ |
| Время простоя | Несколько минут (перезапуск 1С) | 5-15 минут (остановка служб) | 5-15 минут (остановка служб) |
| Сложность | Низкая (может выполнить пользователь) | Высокая (требуются права админа) | Высокая (требуются root/sudo) |
| Риски | Потеря локальных настроек | Потеря несохраненных данных всех пользователей | Потеря несохраненных данных всех пользователей |
| Частота применения | По мере необходимости (при проблемах) | Реже (при общих проблемах) | Реже (при общих проблемах) |
5. Проблемы и решения
5.1. Частые ошибки при очистке
-
«Папка используется другим процессом»
-
Решение: убедитесь, что все процессы 1С закрыты (через диспетчер задач:
1cv8.exe,1cv8c.exe)
-
-
Отсутствие прав доступа
-
Решение: запустите скрипт/проводник от имени администратора
-
-
Службы 1С не останавливаются
-
Решение: принудительно завершите процессы через
taskkill /F /IM ragent.exe(Windows) илиkill -9(Linux)
-
5.2. Профилактика проблем с кэшем
-
Регулярное обслуживание:
-
Очистка кэша по расписанию (например, раз в месяц)
-
Мониторинг свободного места на диске
-
-
Правильное завершение работы:
-
Обучение пользователей корректному закрытию 1С
-
Использование скриптов graceful shutdown для серверов
-
-
Резервное копирование:
-
Резервирование критичных локальных настроек
-
Регулярные бэкапы информационных баз
-
Заключение
Очистка кэша 1С — важная процедура технического обслуживания, которая помогает решать множество проблем с производительностью и стабильностью системы. Правильное применение описанных методов (в зависимости от типа проблемы и окружения) позволит:
-
Быстро устранять возникающие проблемы с отображением и работой 1С
-
Поддерживать стабильную работу системы в долгосрочной перспективе
-
Автоматизировать процессы обслуживания с помощью готовых скриптов
-
Минимизировать время простоя и влияние на пользователей
Представленные в статье скрипты можно адаптировать под конкретные условия вашей инфраструктуры, изменив пути, имена служб и параметры запуска. Регулярная профилактическая очистка кэша в сочетании с мониторингом системы поможет поддерживать 1С:Предприятие в оптимальном рабочем состоянии.