Подробный гайд: Автоматически очищать кэш 1С: скрипты, планировщик, GPO, перезапуск служб и IIS
Настроить автоматическое очищение кэша в 1С можно, но важно понимать одну ключевую вещь: в самой платформе 1С нет встроенной «галочки» или штатной кнопки для автоматической очистки физического кэша. Поэтому автоматизация реализуется средствами операционной системы (скрипты, планировщик задач, групповые политики) или веб-сервера.
Часть 1. Понимание: какой именно кэш мы чистим?
Проблемы в 1С обычно связаны с тремя видами кэша:
- Клиентский кэш (локальные папки на ПК пользователей или терминальном сервере). Самый частый источник «глюков» (белые экраны, ошибки при запуске).
- Серверный кэш (оперативная память серверов 1С: процессы
rphost,rmngr). Со временем может «раздуваться», вызывая утечки памяти. - Кэш веб-сервера (если 1С опубликована через IIS или Apache).
Разберем настройку для каждого из них.
Часть 2. Автоматическая очистка КЛИЕНТСКОГО кэша (ПК и Терминальные серверы)
Клиентский кэш хранится по путям:
%LocalAppData%\1C\1cv8%AppData%\1C\1cv8
Главное правило:
Кэш нельзя удалять, пока пользователь работает в 1С (файлы заблокированы, база может зависнуть). Лучше всего удалять кэш при выходе пользователя из системы (Logoff).
Способ А: Через групповые политики (GPO) в домене — Идеальный вариант
Если у вас доменная сеть, настройте выполнение скрипта при выходе из системы (Сеанс работы -> Завершение работы).
1. Создайте файл Clear1CCache.bat со следующим кодом:
@echo off
:: Закрываем процессы 1С на всякий случай (если зависли)
taskkill /F /IM 1cv8.exe /T 2>nul
taskkill /F /IM 1cv8c.exe /T 2>nul
:: Удаляем папки кэша
rd /s /q "%LocalAppData%\1C\1cv8" 2>nul
rd /s /q "%AppData%\1C\1cv8" 2>nul
:: Удаляем старые файлы списков баз (опционально, если нужно сбросить список)
:: del /q "%AppData%\1C\1CEStart\ibases.v8i" 2>nul
exit
- Откройте Управление групповой политикой (на контроллере домена).
- Создайте или измените GPO, применимую к пользователям (или компьютерам терминальных серверов).
- Перейдите в: Конфигурация пользователя -> Политики -> Конфигурация Windows -> Сценарии (вход/выход) -> Завершение работы (Сеанс работы).
- Добавьте созданный скрипт
Clear1CCache.bat. - На терминальных серверах (если они не в этом GPO) добавьте скрипт в Конфигурация компьютера -> Конфигурация Windows -> Сценарии -> Завершение работы.
Способ Б: Через Планировщик задач (Локально)
Если домена нет, можно настроить очистку на самом ПК.
- Создайте
.batфайл (код выше). - Откройте Планировщик задач (
taskschd.msc). - Создайте базовую задачу. Триггер: «При входе в систему» (или по расписанию ночью, если ПК не выключается, но тогда нужно условие «Выполнять только если компьютер не используется»).
- Действие: Запуск программы -> ваш
.batфайл. - В свойствах задачи поставьте галочку «Выполнять с наивысшими правами».
Часть 3. Автоматическая очистка СЕРВЕРНОГО кэша (Память сервера 1С)
Сервер 1С (процессы rmngr и rphost) держит кэш метаданных и сеансов в оперативной памяти. Со временем происходят утечки памяти. Самый надежный способ сбросить серверный кэш — перезапуск службы Агента сервера 1С.
Внимание:
Перезапуск службы разорвет соединения всех активных пользователей. Делать это нужно только в нерабочее время (например, в 03:00 ночи).
Настройка через Планировщик задач (на сервере 1С):
- Узнайте точное имя службы. Откройте
services.mscи найдите службу 1С. Обычно она называетсяАгент сервера 1С:Предприятия 8.3или1C:Enterprise 8.3 Server Agent(иногда имеет нестандартное имя, если задано при установке). - Создайте файл
Restart1CService.bat:
@echo off
:: Остановка службы (замените имя на ваше, если отличается)
net stop "1C:Enterprise 8.3 Server Agent"
:: Ждем 15 секунд для полного завершения процессов
timeout /t 15
:: Запуск службы
net start "1C:Enterprise 8.3 Server Agent"
exit
- Откройте Планировщик задач на сервере.
- Создайте задачу по расписанию (ежедневно/еженедельно ночью).
- Укажите запуск от имени Администратора (или System) с наивысшими правами.
- В действиях укажите путь к скрипту.
Совет:
Если у вас кластер серверов 1С (несколько серверов за балансировщиком), скрипт нужно запускать на каждом сервере по очереди, чтобы пользователи не теряли доступность.
Часть 4. Очистка кэша ВЭБ-СЕРВЕРА (если 1С работает через браузер)
Если пользователи заходят в 1С через браузер (тонкий или веб-клиент), база публикуется через веб-сервер (обычно IIS на Windows). IIS очень агрессивно кэширует данные, и при обновлении 1С или публикации новых расширений кэш часто «залипает».
Настройка автоочистки кэша IIS:
- Создайте скрипт
ClearIISCache.bat:
@echo off
:: Перезапуск службы IIS (занимает пару секунд)
iisreset /restart
:: Альтернатива: Очистка кэша конкретного пула приложений 1С (без полного рестарта)
:: appcmd stop apppool /apppool.name:"1C_AppPool"
:: timeout /t 5
:: appcmd start apppool /apppool.name:"1C_AppPool"
exit
- Настройте запуск этого скрипта через Планировщик задач (например, каждую ночь или сразу после ночного обновления баз 1С).
Часть 5. Можно ли очистить кэш средствами самой 1С (Регламентные задания)?
Частый вопрос: можно ли написать регламентное задание внутри 1С, чтобы оно само чистило кэш?
Ответ: Нет, физический файловый кэш платформа очистить не может.
Однако, внутри 1С есть механизмы очистки пользовательских настроек, которые часто путают с кэшем:
- Если у пользователя пропали кнопки, сбились права или окно открывается криво, проблема часто не в системном кэше, а в хранилище системных настроек.
- Это можно очищать автоматически через обработки в режиме Конфигуратора или Предприятия (например, очистка таблиц
ХранилищеСистемныхНастроекиХранилищеНастроекДанныхФормдля конкретного пользователя). - Но: Это не решает проблему «забитого» файлового кэша платформы.
Важно
- Не чистите клиентский кэш каждый день без необходимости. Платформа 1С при каждом запуске заново генерирует кэш для ускорения работы. Ежедневное удаление приведет к тому, что 1С будет запускаться дольше (пока не создаст кэш заново). Оптимально: удалять кэш при выходе из системы (через GPO) раз в неделю или по пятницам.
- Используйте SSD. Кэш 1С производит огромное количество операций ввода-вывода (IOPS). Если вы автоматизируете очистку кэша, пользователям придется каждый раз ждать его генерации. На медленных жестких дисках (HDD) это превратится в зависание на 2-5 минут при каждом входе. На SSD очистка/генерация происходит незаметно.
- Очистка кэша не заменяет оптимизацию. Если кэш «бьется» (появляются ошибки вида
Конфликты обновлений,Ошибка форматирования) постоянно — проблема чаще всего в нестабильной сети (потеря пакетов между клиентом и сервером) или в том, что пользователи работают с базой через нестабильный RDP.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.