Освобождаем место и память в 1С 8.3: от папки кэша до сжатия таблиц
Содержание
Чтобы почистить память 1С, закройте программу и удалите папки с длинными именами вида a1b2c3d4-… в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Это кэш конфигураций: 1С пересоздаст его при следующем запуске. Если тормоза из-за распухшей базы, а не кэша, — нужны сжатие таблиц, сокращение журнала регистрации и обслуживание СУБД.
Под словом «память» обычно прячутся четыре разные проблемы: кэш на компьютере пользователя, временные файлы, размер самой базы и оперативная память на сервере. Ниже каждая разобрана отдельно, с путями и командами. Всё описанное относится к платформе 8.3 и не зависит от конфигурации — БП, ЗУП или УТ.
1. Где хранится кэш 1С и как удалить его вручную
Кэш — это локальная копия конфигурации и служебных данных. Он ускоряет запуск, но после обновлений или сбоев начинает конфликтовать с базой. Типичные признаки:
- 🔹 после обновления видна старая форма документа или старое меню;
- 🔹 ошибки вида
Ошибка формата потокаилиНеверный формат хранилища данныхпри открытии; - 🔹 у одного пользователя база работает, у другого на этом же сервере — нет;
- 🔹 1С зависает на заставке при запуске.
Пути к папкам кэша
| Папка | Что внутри |
|---|---|
%APPDATA%\1C\1cv8 | Кэш конфигураций, пользовательские файлы |
%LOCALAPPDATA%\1C\1cv8 | Основная часть кэша, обычно самая тяжёлая |
%APPDATA%\1C\1CEStart | Список баз ibases.v8i — не удалять |
Наберите путь прямо в адресной строке Проводника или в окне Win+R — переменная раскроется сама.
Порядок очистки
- Закройте все окна 1С. Проверьте в диспетчере задач, что нет процессов
1cv8.exeи1cv8c.exe. - Откройте
%LOCALAPPDATA%\1C\1cv8. - Удалите все папки, у которых имя — набор букв и цифр через дефис (GUID). Каждая такая папка — кэш одной базы.
- Повторите то же в
%APPDATA%\1C\1cv8. - Запустите 1С. Первый вход будет дольше обычного: кэш собирается заново.
Если нужно почистить кэш только одной базы, а баз в списке двадцать, — отсортируйте папки по дате изменения. Нужная обычно та, что менялась при последнем запуске проблемной базы.
Не удаляйте папку 1CEStart и файл ibases.v8i в ней. Иначе пропадёт список информационных баз, и его придётся добавлять заново.
Пользовательские настройки (формы, отборы, варианты отчётов) хранятся в самой информационной базе, а не в этих папках. Поэтому очистка кэша их не трогает.
Очистка кэша параметром /ClearCache
Когда пользователей много, удобнее не ходить по компьютерам, а добавить параметр запуска:
- В окне запуска 1С выделите базу и нажмите
Изменить. - Пройдите мастер до последней страницы.
- В поле
Дополнительные параметры запускавпишите/ClearCache. - Нажмите
Готовои запустите базу.
Параметр чистит кэш клиентского приложения при каждом запуске. Как только проблема ушла — уберите его, иначе база будет стартовать медленнее всегда. Этот же ключ работает и в командной строке:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Base\Buh" /ClearCache
2. Временные файлы и место на диске
Помимо кэша, 1С оставляет временные файлы. Они нужны во время работы, но после аварийного закрытия часто остаются навсегда.
- 📁
%TEMP%— временные файлы клиента: распакованные отчёты, файлы для печати, выгрузки. Имена часто начинаются сv8_. - 📁
1Cv8Logв каталоге файловой базы — журнал регистрации. Может весить десятки гигабайт. - 📁 Каталог сервера
srvinfo(по умолчаниюC:\Program Files\1cv8\srvinfo) — данные кластера, журналы серверных баз и временные файлы рабочих процессов.
Папку %TEMP% безопасно чистить, когда 1С закрыта. Файлы, занятые другими программами, Windows просто не даст удалить — пропустите их.
Чтобы найти, что именно занимает место, удобно посмотреть размеры папок любым анализатором диска. Если лидер — 1Cv8Log, переходите к разделу про журнал регистрации ниже. Если 1Cv8.1CD — к сжатию базы.
3. Сжатие и оптимизация базы данных 1С
Файловая база хранится в одном файле 1Cv8.1CD. При удалении данных он не уменьшается: освободившееся место остаётся внутри файла пустым. Бывает, что база с данными на 3 ГБ занимает 12 ГБ.
Перед любыми операциями с базой сделайте резервную копию — выгрузку .dt или копию каталога базы при закрытой 1С.
Сжатие через Конфигуратор
- Убедитесь, что все пользователи вышли из базы: для тестирования и исправления нужен монопольный доступ.
- Откройте базу в Конфигураторе.
- Выберите
Администрирование → Тестирование и исправление. - Отметьте флажок
Сжатие таблиц информационной базы. Можно добавитьРеиндексацию таблиц. - Выберите режим
Тестирование и исправлениеи нажмитеВыполнить.
Для базы в 10–20 ГБ процедура занимает от нескольких минут до часа, в зависимости от диска.
Утилита chdbfl.exe
В каталоге bin установленной платформы лежит chdbfl.exe — утилита проверки файловой базы. Её запускают без Конфигуратора: указываете путь к 1Cv8.1CD, ставите флажок исправления ошибок и жмёте Выполнить. Она полезна, когда сама база не открывается. Сжимать таблицы удобнее в Конфигураторе.
Выгрузка и загрузка .dt
Самый надёжный способ «упаковать» базу — выгрузить её в .dt (Администрирование → Выгрузить информационную базу) и загрузить в новую пустую базу. Файл получается компактным, все пустоты уходят.
Удаление помеченных объектов
В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) есть обработка Администрирование → Обслуживание → Удаление помеченных объектов. Она физически удаляет документы и элементы справочников с пометкой удаления. После неё имеет смысл запустить сжатие таблиц — иначе файл базы не уменьшится.
Клиент-серверная база
Для баз на MS SQL или PostgreSQL сжатие делают средствами СУБД:
| СУБД | Что делать | Когда |
|---|---|---|
| MS SQL | Резервная копия журнала, затем DBCC SHRINKFILE для файла _log | Растёт файл .ldf |
| MS SQL | Модель восстановления SIMPLE, если не нужен откат на точку во времени | Бэкап журнала не настроен |
| PostgreSQL | VACUUM регулярно, VACUUM FULL — в окно обслуживания | Таблицы раздуты после массовых удалений |
-- MS SQL: сжать файл журнала транзакций до 1 ГБ
USE [buh];
DBCC SHRINKFILE (N'buh_log', 1024);
VACUUM FULL в PostgreSQL блокирует таблицу на время работы. Запускайте его, когда пользователи не работают в базе.
4. Журнал регистрации и история изменений объектов
Сокращение журнала регистрации
Журнал регистрации пишет каждый вход, каждую запись документа и каждую ошибку. За пару лет он легко вырастает больше самой базы.
- Откройте базу в Конфигураторе.
- Выберите
Администрирование → Журнал регистрации. - В меню
ДействиявыберитеСократить. - Укажите дату: записи раньше неё будут удалены.
- По желанию задайте файл, куда сохранить удаляемые записи, — пригодится для аудита.
Сокращать журнал можно и без монопольного доступа, но на большом журнале процедура тормозит работу пользователей. Лучше делать это вечером.
Настройка журнала, чтобы он не рос
В Конфигураторе есть пункт Администрирование → Настройка журнала регистрации. Здесь задают:
- 📝 уровень регистрации —
Ошибки,Предупреждения,ИнформацияилиПримечания. Для рабочей базы обычно хватает ошибок и предупреждений; - 📝 разделение журнала по периодам — по дням, неделям, месяцам или годам. Тогда старые файлы можно архивировать и удалять целиком.
Отключать журнал полностью не стоит: при расследовании, кто удалил документ, он будет единственным источником.
История изменений объектов
В конфигурациях на БСП есть версионирование: программа хранит каждую версию документа после записи. Хранение включается в общих настройках раздела Администрирование, там же настраивается срок хранения версий. Старые версии удаляет регламентное задание по очистке устаревших версий. Если версионирование включено для всего подряд без срока хранения, база растёт быстро.
5. Автоматическая очистка: расписание для администратора
Ручная чистка помогает один раз. Чтобы проблема не возвращалась, её ставят на расписание.
Bat-файл для очистки кэша на рабочих местах
@echo off
rem Закрыть 1С перед запуском. Удаляет только папки-GUID, список баз не трогает.
taskkill /IM 1cv8c.exe /F >nul 2>&1
taskkill /IM 1cv8.exe /F >nul 2>&1
for /d %%D in ("%LOCALAPPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
for /d %%D in ("%APPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
del /q /f "%TEMP%\v8_*" >nul 2>&1
Команды taskkill закрывают 1С без сохранения. Запускайте скрипт при входе в систему или ночью, а не днём, когда люди работают в базе.
Скрипт удобно повесить в Планировщик заданий Windows на вход пользователя или раз в неделю. В домене его раздают через групповую политику.
Обслуживание базы по графику
- 🗓️ MS SQL — план обслуживания: резервная копия базы и журнала, обновление статистик, перестроение индексов.
- 🗓️ PostgreSQL — включённый autovacuum и ночной
VACUUM ANALYZEпо расписанию. - 🗓️ Файловая база — сжатие таблиц раз в месяц-квартал через командную строку (см. следующий раздел) и Планировщик заданий.
- 🗓️ Журнал регистрации — разделение по месяцам и перенос старых файлов в архив.
6. Командная строка и сервер 1С: продвинутые способы
Тестирование и сжатие из командной строки
Конфигуратор умеет выполнять тестирование без открытия окна. Это удобно для ночного задания:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Base\Buh" /N"Администратор" /P"пароль" /IBCheckAndRepair -ReIndex -IBCompression /Out"D:\Logs\check.log"
Номер версии в пути подставьте свой. Результат пишется в файл из параметра /Out. Пользователи в момент запуска должны быть отключены.
Кэш сервера 1С
На сервере есть свой кэш — папки snccntx* в каталоге кластера, например C:\Program Files\1cv8\srvinfo\reg_1541. Их чистят, когда после обновления у всех пользователей серверной базы одна и та же странная ошибка, а очистка клиентского кэша не помогла.
- Предупредите пользователей: все сеансы оборвутся, несохранённые данные пропадут.
- Остановите службу
Агент сервера 1С:Предприятия 8.3(имя службы может включать номер версии). - Удалите папки
snccntx*в каталогеreg_1541. Остальное содержимое не трогайте. - Запустите службу.
Делайте это вне рабочего времени. Состав кластера и списки баз эта процедура не меняет.
Оперативная память рабочих процессов
Если «память» — это оперативка сервера, которую съедает rphost.exe, кэш тут ни при чём. В консоли администрирования серверов откройте свойства кластера. Там есть параметры:
| Параметр | Что делает |
|---|---|
Интервал перезапуска | Плавно перезапускает рабочие процессы раз в N секунд |
Допустимый объём памяти | Порог памяти для всех рабочих процессов кластера |
Интервал превышения допустимого объёма памяти | Сколько секунд можно держаться выше порога до перезапуска |
Перезапуск по этим параметрам идёт мягко: новые соединения уходят в новый процесс, старый завершается, когда сеансы с него переведены. Для проверки, кто сейчас занимает лицензии и сеансы, пригодится rac session list --licenses — полный список команд даст rac help.
7. Ошибки при очистке, которые обходятся дорого
- ❌ Удалить всю папку
%APPDATA%\1C. Вместе с кэшем уходит список баз. Ничего не сломается, но пользователь позвонит с вопросом «куда делись базы». - ❌ Чистить кэш при открытой 1С. Часть файлов занята, папка удалится наполовину, и ошибка останется.
- ❌ Копировать
1Cv8.1CDдля бэкапа при работающих пользователях. Копия может оказаться битой. Для живой базы используйте выгрузку.dt. - ❌ Сжимать журнал транзакций SQL при полной модели без бэкапа журнала. Файл через день вырастет обратно.
- ❌ Удалять папку
srvinfoцеликом. Пропадут настройки кластера и список зарегистрированных баз — придётся восстанавливать вручную. - ❌ Оставлять
/ClearCacheнавсегда. Каждый запуск превращается в первый — с полной загрузкой конфигурации.
8. Частые вопросы
Пропадут ли данные бухгалтерии после очистки кэша?
Нужно ли чистить кэш на каждом компьютере при работе через RDP?
Как часто сжимать файловую базу?
Почему после удаления помеченных объектов файл базы не уменьшился?
1Cv8.1CD, но не отдаёт его диску. Нужно сжатие таблиц или выгрузка-загрузка .dt.Можно ли удалять старые файлы журнала регистрации вручную?
1Cv8Log удаляют при закрытой базе. Без разделения надёжнее сокращать журнал через Конфигуратор.