Серверный кэш 1С:Предприятие — это временное хранилище данных, которое ускоряет работу системы, но со временем может становиться источником проблем. Накопленные устаревшие файлы кэша приводят к ошибкам типа "Объект не найден", "Заблокировано другим пользователем" или некорректному отображению отчетов. Администраторам и разработчикам регулярно приходится очищать этот кэш, особенно после обновлений платформы или конфигураций.

В этой статье мы разберем все актуальные способы очистки серверного кэша 1С 8.3 — от ручных методов через rac и chdbfl до автоматизированных скриптов для Windows Server и Linux. Особое внимание уделим типичным ошибкам, которые допускают даже опытные специалисты, и дадим рекомендации по настройке автоматической очистки. Если вы сталкиваетесь с "глюками" базы после апдейтов или заметили снижение производительности — эта инструкция поможет вернуть системе стабильность.

Почему кэш 1С требует очистки и когда это делать

Кэширование в 1С:Предприятие работает на нескольких уровнях: клиентском, серверном и уровне СУБД. Серверный кэш хранит:

  • 📊 Компилированные модули конфигурации
  • 🔄 Метаданные объектов (справочники, документы, регистры)
  • 🗄️ Временные таблицы запросов
  • 🔑 Данные сессий пользователей

Основные признаки, что кэш требует очистки:

  • ⚠️ Пользователи видят устаревшие данные в отчетах после изменений
  • 🐢 Замедление работы системы при выполнении типовых операций
  • 🚫 Ошибки вида "Не удалось заблокировать данные" или "Объект изменен другим пользователем"
  • 🔄 После обновления конфигурации изменения не применяются

Критические ситуации, когда очистка обязательна:

⚠️ Внимание: Если вы обновили платформу или конфигурацию (например, с БП 3.0 на БП 3.1), но пользователи продолжают видеть старую версию интерфейса — это верный признак "залипшего" кэша. В таких случаях очистка серверного хранилища должна выполняться до перезапуска службы.
📊 Как часто вы очищаете серверный кэш 1С?
Раз в неделю
Только после обновлений
При появлении ошибок
Никогда не очищал

Способы очистки кэша на сервере 1С (Windows)

Для Windows Server существует несколько методов очистки, отличающихся по скорости и глубине воздействия. Выбор метода зависит от версии платформы и конфигурации сервера.

Метод 1: Через утилиту rac (рекомендуемый)

Утилита rac.exe (Remote Administration Console) входит в комплект поставки 1С:Предприятие и позволяет управлять сервером из командной строки. Для очистки кэша:

  1. Откройте Командную строку от имени администратора
  2. Перейдите в каталог установки платформы (обычно C:\Program Files\1cv8\8.3.x.x\bin\)
  3. Выполните команду:
    rac cache clear -directory "C:\ProgramData\1C\1cv8\" -force

Ключи команды:

  • 📁 -directory — путь к каталогу кэша (по умолчанию %ProgramData%\1C\1cv8\)
  • 🔥 -force — принудительная очистка без подтверждения
  • 🔄 -allusers — очистка кэша всех пользователей (опционально)

Убедиться, что все пользователи вышли из системы

Остановить службу Агент сервера 1С:Предприятия

Сделать резервную копию каталога кэша (опционально)

Проверить свободное место на диске (требуется не менее 10% от объема кэша)-->

Метод 2: Ручная очистка папки кэша

Если утилита rac недоступна, можно удалить файлы кэша вручную:

  1. Остановите службу Агент сервера 1С:Предприятия 8.3 через services.msc
  2. Перейдите в папку:
    %ProgramData%\1C\1cv8\

    или для старых версий:

    C:\Documents and Settings\All Users\Application Data\1C\1cv8\
  3. Удалите все файлы с расширениями:
    • 🗃️ .cd (кэш конфигурации)
    • 📄 .fl (файлы блокировок)
    • 🔢 .lgp (логи)
⚠️ Внимание: Не удаляйте папку conf и файлы *.cf — это может привести к потере настроек кластера! Также избегайте очистки кэша во время репликации базы данных.

Метод 3: Через оснастку "Администрирование серверов 1С"

Для визуального управления:

  1. Откройте Пуск → 1С Предприятие 8.3 → Администрирование серверов 1С
  2. Подключитесь к центральному серверу кластера
  3. Выберите рабочий сервер → правой кнопкой Очистить кэш
  4. Подтвердите действие и дождитесь завершения операции
  5. Этот метод наиболее безопасен для новичков, так как оснастка сама проверяет зависимости и блокировки.

    Очистка кэша на Linux-сервере

    Для Linux-систем процесс очистки имеет свои особенности из-за различий в структуре каталогов и правах доступа. Основные методы:

    Метод 1: Через rac в терминале

    Аналогично Windows, но с учетом путей Linux:

    sudo /opt/1C/v8.3/x86_64/rac cache clear -directory /var/1C/cache/ -force

    Типичные пути кэша в Linux:

    • 📂 /var/1C/cache/ — основной каталог
    • 📂 /home/usr1cv8/.1cv8/ — кэш пользователя usr1cv8
    • 📂 /opt/1C/v8.3/x86_64/conf/ — конфигурационные файлы (не трогать!)

Метод 2: Скрипт для автоматической очистки

Создайте файл /usr/local/bin/clear_1c_cache.sh со следующим содержимым:

#!/bin/bash

service srv1cv83 stop

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

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

service srv1cv83 start

Затем сделайте его исполняемым:

chmod +x /usr/local/bin/clear_1c_cache.sh

Для автоматического запуска по расписанию добавьте задачу в cron:

0 3   0 root /usr/local/bin/clear_1c_cache.sh

Этот скрипт будет очищать кэш каждый понедельник в 3:00.

⚠️ Внимание: В многопользовательских системах очистка кэша через rm -rf может привести к потере активных сессий. Всегда останавливайте службу перед очисткой!
Что будет если не останавливать службу 1С перед очисткой?

При активных сессиях пользователей удаление файлов кэша может привести к:

1. Падению рабочего процесса ragent

2. Потере несохраненных данных в открытых документах

3. Повреждению файлов блокировок (.fl), что потребует ручного восстановления через chdbfl

4. Зависанию кластера при следующем подключении пользователей

Очистка кэша для конкретной базы данных

Иногда требуется очистить кэш только для одной базы, не затрагивая остальные. Это актуально для хостинг-провайдеров или серверов с множеством клиентских баз.

Через rac с указанием базы

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

rac cache clear -directory "C:\ProgramData\1C\1cv8\" -infobase "ИмяБазы" -force

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

rac infobase summary list

Через утилиту chdbfl

Утилита chdbfl.exe (Check DataBase Files) позволяет работать с файлами базы напрямую. Для очистки кэша конкретной базы:

  1. Остановите службу агента 1С
  2. Выполните:
    chdbfl.exe "ПутьКФайлуБазы.1CD" -clearCache
  3. Перезапустите службу

Пример для файлового варианта:

chdbfl.exe "C:\Bases\Trade\1Cv8.1CD" -clearCache -ibname "Торговля"
Метод очистки Применимость Время выполнения Риски
rac cache clear Все версии 8.3 1-5 минут Минимальные
Ручное удаление файлов Windows/Linux 2-10 минут Средние (риск удалить лишнее)
Оснастка администрирования Только Windows 3-7 минут Низкие
chdbfl -clearCache Файловые базы 5-15 минут Высокие при активных сессиях

Типичные ошибки и как их избежать

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

Ошибка 1: Удаление системных файлов кэша

Часто вместе с кэшем случайно удаляют:

  • 🚫 Файлы .cf и .cnf — конфигурационные файлы кластера
  • 🚫 Папку conf — содержит настройки сервера
  • 🚫 Файлы *.lgp — логи, нужные для диагностики

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

Ошибка 2: Очистка кэша без остановки службы

Удаление активных файлов кэша во время работы сервера 1С в 90% случаев приводит к повреждению блокировок и требует восстановления базы через chdbfl -recover. Всегда останавливайте службу ragent перед очисткой!

Ошибка 3: Неправильные права доступа (Linux)

В Linux после очистки кэша может не хватать прав на создание новых файлов. Проверяйте:

chown -R usr1cv8:grp1cv8 /var/1C/cache/

chmod -R 775 /var/1C/cache/

Ошибка 4: Игнорирование кэша пользователей

Кэш хранится не только на сервере, но и на рабочих станциях в профилях пользователей: C:\Users\<ИмяПользователя>\AppData\Local\1C\1cv8\

При массовых проблемах очищайте его тоже.

💡

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

Автоматизация очистки кэша

Ручная очистка кэша отнимает время и требует контроля. Для крупных инсталляций (100+ пользователей) лучше настроить автоматическое выполнение.

Способ 1: Планировщик задач Windows

Создайте задачу в taskschd.msc:

  1. Действие: Запуск программы
  2. Программа: C:\Program Files\1cv8\8.3.x.x\bin\rac.exe
  3. Аргументы: cache clear -directory "%ProgramData%\1C\1cv8\" -force
  4. Условие: Только при простое компьютера

Способ 2: Скрипт на PowerShell

Скрипт с проверкой активных сессий:

$service = Get-Service -Name "1C:Enterprise 8.3 Server Agent"

if ($service.Status -eq "Running") {

Stop-Service -Name $service.Name -Force

Remove-Item -Path "C:\ProgramData\1C\1cv8\*" -Recurse -Force

Start-Service -Name $service.Name

}

Способ 3: Через 1С:Диспетчер задач

В конфигурациях на управляемых формах (например, 1С:УТ 11) можно создать регламентное задание:

  1. Открыть Администрирование → Поддержка и обслуживание → Регламентные задания
  2. Создать новое задание с типом Выполнение кода
  3. Вставить код:
    Попытка
    

    ВыполнитьКоманду("""C:\Program Files\1cv8\8.3.x.x\bin\rac.exe"" cache clear -directory ""%ProgramData%\1C\1cv8\"" -force");

    Исключение

    ЗаписатьЖурналРегламентныхЗаданий(НСтр("ru = 'Ошибка очистки кэша: '") + ОписаниеОшибки(), УровеньЖурналаРегламентныхЗаданий.Ошибка);

    КонецПопытки;

Преимущество этого метода — интеграция с системой оповещений и логирование результатов.

💡

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

Проверка результатов очистки

После очистки кэша необходимо убедиться, что:

  1. Служба Агент сервера 1С запущена без ошибок
  2. Пользователи могут подключиться к базе
  3. В журнале событий Windows/Linux нет ошибок типа:
    • 🚨 Failed to create cache directory
    • 🚨 Access denied to 1C cache files
    • 🚨 Cluster registry corrupted
  • Тестовые операции (проведение документа, формирование отчета) выполняются корректно
  • Для диагностики используйте:

    • 🔍 Журналы 1С: C:\ProgramData\1C\1cv8\log\
    • 🔍 Журналы Windows: Просмотр событий → Приложения → 1C:Enterprise
    • 🔍 Команду проверки кластера:
      rac cluster check

    Если после очистки появились новые ошибки, восстановите кэш из резервной копии или выполните восстановление базы через chdbfl -recover.

    FAQ: Частые вопросы по очистке кэша 1С

    Как часто нужно очищать серверный кэш 1С?

    Рекомендуемая частота зависит от интенсивности использования:

    • 📅 Для баз с 50+ пользователями — раз в неделю
    • 📅 После каждого обновления платформы или конфигурации — обязательно
    • 📅 При появлении ошибок типа "Объект не найден"немедленно
    • 📅 Для тестовых баз — перед каждым тестированием

    Для небольших баз (до 10 пользователей) достаточно очистки раз в месяц или по мере необходимости.

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

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

    1. Убедитесь, что в базе нет активных пользователей (через rac session list)
    2. Очищайте только файлы с расширением .cd (кэш конфигурации)
    3. Не трогайте файлы .fl (блокировки) и .lgp (логи)

    Даже в этом случае возможны сбои при следующем подключении пользователей. Рекомендуем всегда останавливать службу.

    Что делать, если после очистки кэша база не открывается?

    Возможные причины и решения:

    🚫 Ошибка🔧 Решение
    Не удалось подключиться к информационной базе

    1. Проверьте, запущена ли служба ragent

    2. Убедитесь, что права на папку кэша верные (chmod 775 для Linux)

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

    Файл базы данных поврежден

    Выполните восстановление через:

    chdbfl.exe "ПутьКБазе.1CD" -recover
    Не найден кластер серверов

    Проверьте файл srvinfo.ini в папке кэша

    При необходимости перерегистрируйте кластер через оснастку администрирования

    Если проблема сохраняется, восстановите кэш из резервной копии или обратитесь в поддержку .

    Как очистить кэш для конкретного пользователя?

    Кэш пользователя хранится:

    • 🖥️ На Windows: C:\Users\<ИмяПользователя>\AppData\Local\1C\1cv8\
    • 🐧 На Linux: /home/<ИмяПользователя>/.1cv8/

    Для очистки:

    1. Закройте все сеансы 1С у пользователя
    2. Удалите содержимое указанной папки
    3. При следующем входе кэш будет пересоздан автоматически

    Для серверного кэша конкретного пользователя используйте:

    rac cache clear -directory "C:\ProgramData\1C\1cv8\" -user "DOMAIN\Username"
    Есть ли разница в очистке кэша для файловой и клиент-серверной базы?

    Да, подходы отличаются:

    Тип базыОсобенности очистки
    📄 Файловая (.1CD)
    • Кэш хранится локально на каждой рабочей станции
    • Очистка на сервере не требуется (если база не в сетевом каталоге)
    • Для сетевой файловой базы очищайте кэш на сервере и на всех клиентах
    🖥️ Клиент-серверная (SQL)
    • Основной кэш на сервере 1С (папка ProgramData\1C\1cv8\)
    • Дополнительно очищайте кэш СУБД (для MS SQLDBCC FREEPROCCACHE)
    • Требуется перезапуск службы ragent и SQL Server Agent