Чистим 1С от лишнего: кэш, журнал регистрации, временные файлы и раздутые таблицы
Содержание
Чтобы очистить кэш
1С, закройте программу и запустите базу с параметром /ClearCache или удалите папки с именами-GUID в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Журнал регистрации сокращают в Конфигураторе через Администрирование → Настройка журнала регистрации, а таблицы базы сжимают в Администрирование → Тестирование и исправление.
Типичная ситуация: после обновления конфигурации у одного бухгалтера форма документа «поехала», у другого 1С пишет про несоответствие метаданных, а на соседнем компьютере всё работает. Почти всегда виноват устаревший кэш. А если база выросла с 3 до 15 ГБ за год, причина обычно в журнале регистрации и неудалённых служебных данных. Разбираемся по шагам: что чистить, в каком порядке и что трогать нельзя.
Что чистить в 1С: симптомы и порядок действий
Очистка в 1С — это несколько разных операций. Они решают разные проблемы, и путать их не стоит.
| Что очищаем | Симптом | Риск | Нужен монопольный режим |
|---|---|---|---|
| Клиентский кэш | Ошибки форм после обновления, «зависание» при входе, старые макеты | Почти нулевой | Нет |
Серверный кэш (snccntx) | Ошибки у всех пользователей сразу, странные блокировки | Обрываются все сеансы | Служба останавливается |
Временные файлы %TEMP% | Мало места на диске, ошибки записи временных файлов | Низкий | Нет |
| Журнал регистрации | База растёт, журнал открывается минутами | Теряется история действий | Нет |
| Сжатие таблиц | Файл 1Cv8.1CD больше реального объёма данных | Средний | Да |
| Тестирование и исправление | Ошибки целостности, неверные остатки | Средний — высокий | Да |
Начинайте с безопасного: клиентский кэш, затем временные файлы. К журналу и таблицам переходите, только если проблема не ушла или нужно уменьшить размер базы.
Как очистить кэш 1С на компьютере пользователя
Клиентский кэш — это копия метаданных конфигурации, форм и макетов на локальном диске. 1С хранит её, чтобы не загружать всё из базы при каждом входе. После обновления конфигурации копия иногда не обновляется целиком.
Перед очисткой закройте все окна 1С на этом компьютере. Иначе часть файлов будет занята и не удалится.
Способ 1. Параметр /ClearCache
Самый быстрый и безопасный способ:
- Откройте окно запуска 1С.
- Выделите базу и нажмите
Изменить. - Пролистайте мастер до последней страницы.
- В поле
Дополнительные параметры запускавпишите/ClearCache. - Нажмите
Готовои войдите в базу.
1С сбросит кэш этой базы и соберёт его заново. Первый вход будет дольше обычного — от нескольких секунд до пары минут на крупной конфигурации.
После успешного входа удалите /ClearCache из параметров. Иначе кэш будет сбрасываться при каждом запуске, и вход всегда будет медленным.
Способ 2. Удаление папок кэша вручную
Если программа вообще не запускается, удалите кэш руками. Он лежит в двух местах:
- 📁
%APPDATA%\1C\1cv8— роуминговый профиль; - 📁
%LOCALAPPDATA%\1C\1cv8— локальный профиль.
Вставьте путь в адресную строку Проводника. Внутри — папки с длинными именами вида 3f2a1c5e-8b4d-4e2a-9c1f-7d6e5b4a3c21. Каждая такая папка — кэш одной базы.
- Закройте 1С.
- Откройте обе папки по очереди.
- Удалите все папки с именами-GUID.
- Не трогайте файлы с расширением
.pflи папкуExtCompT— там общие настройки и внешние компоненты.
Определить, какая папка к какой базе относится, неудобно. Проще удалить все GUID-папки: 1С пересоздаст их при следующем входе в каждую базу.
Список баз хранится отдельно, в файле %APPDATA%\1C\1CEStart\ibases.v8i. Его не удаляйте, иначе пропадёт список баз в окне запуска.
Кэш веб-клиента и тонкого клиента через публикацию
При работе через браузер часть данных кэширует сам браузер. Если после обновления в веб-клиенте старые формы, очистите кэш браузера для адреса публикации или откройте её в режиме инкогнито для проверки.
Серверный кэш и временные файлы 1С
Сеансовые данные на сервере 1С:Предприятия
В клиент-серверном варианте сервер 1С хранит кэш и сеансовые данные в каталоге кластера. По умолчанию это C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\. Внутри ищите папки, имена которых начинаются на snccntx.
Их очистка помогает, когда ошибка воспроизводится у всех пользователей, а очистка клиентского кэша не дала результата.
Остановка службы обрывает сеансы всех пользователей всех баз на этом сервере. Делайте это вечером или в выходной, предупредив людей заранее.
- Попросите пользователей выйти из всех баз.
- Откройте
services.mscи найдите службу агента сервера 1С:Предприятия 8.3. - Остановите службу.
- Удалите папки
snccntx*внутри каталогов баз вreg_1541. - Запустите службу.
- Войдите в базу и проверьте работу.
Удаляйте только папки snccntx*. Не трогайте файлы 1CV8Clst.lst и 1crdbl.lst — в них список баз кластера и его настройки. Без них базы пропадут из консоли.
Если служба запущена с другим каталогом, путь смотрите в её свойствах: параметр -d в строке запуска указывает каталог srvinfo.
Временные файлы Windows
1С пишет временные файлы в папку %TEMP% текущего пользователя: выгрузки отчётов, вложения, промежуточные данные. Обычно они удаляются сами, но после аварийных завершений остаются.
- Закройте 1С.
- Откройте
%TEMP%черезWin+R. - Удалите содержимое. Файлы, занятые другими программами, Windows пропустит — это нормально.
На терминальном сервере то же самое нужно сделать в профиле каждого пользователя. Это удобнее автоматизировать скриптом (см. раздел про автоматизацию).
Журнал регистрации: как настроить и очистить
Журнал регистрации хранит, кто, когда и что делал в базе. На активной базе он растёт на сотни мегабайт в месяц и легко становится тяжелее самих данных.
Где он лежит:
- 📂 файловая база — папка
1Cv8Logрядом с файлом1Cv8.1CD; - 📂 серверная база — папка
1Cv8Logв каталоге базы внутриsrvinfo\reg_1541.
Посмотрите размер этой папки. Если она весит несколько гигабайт — вы нашли основную причину роста.
Уровень регистрации
Первое, что стоит сделать — убрать регистрацию лишнего. В Конфигураторе: Администрирование → Настройка журнала регистрации.
| Уровень | Что пишет | Когда выбирать |
|---|---|---|
| Не регистрировать | Ничего | Почти никогда: теряется возможность разбора инцидентов |
| Регистрировать ошибки | Только ошибки | Минимум для экономии места |
| Регистрировать ошибки и предупреждения | Плюс предупреждения | Разумный баланс для малых баз |
| Регистрировать ошибки, предупреждения и информацию | Плюс входы, записи объектов | Когда нужно видеть, кто что менял |
| Регистрировать все события | Включая примечания | Только на время отладки |
Для бухгалтерии обычно нужен уровень с информацией: он показывает, кто изменил документ. Но держать «все события» постоянно незачем.
Сокращение журнала
В том же окне настройки есть кнопка Сократить.
- Нажмите
Сократить. - Укажите дату: события до неё будут удалены.
- Если историю нужно сохранить, отметьте выгрузку удаляемых событий в файл и выберите путь.
- Подтвердите.
Перед сокращением договоритесь с главбухом и службой безопасности о сроке хранения. Часто оставляют 6–12 месяцев, а старые события выгружают в архив на отдельный диск.
В пользовательском режиме журнал можно посмотреть через Администрирование → Обслуживание (раздел с протоколами и журналами), но сокращение и уровень логирования удобнее менять в Конфигураторе.
Если журнал повреждён
Иногда журнал открывается с ошибкой или бесконечно долго. В этом случае можно закрыть базу, переименовать папку 1Cv8Log (например, в 1Cv8Log_old) и войти снова. Платформа создаст новый пустой журнал. Старую папку сохраните в архиве — её можно открыть позже для разбора.
Сжатие таблиц и уменьшение размера базы
Когда в 1С удаляют данные, место внутри файла базы не освобождается сразу. Файл 1Cv8.1CD сохраняет прежний размер, а внутри остаются пустые страницы. Сжатие перестраивает таблицы и отдаёт место обратно.
Сделайте резервную копию перед сжатием: Администрирование → Выгрузить информационную базу в Конфигураторе или простое копирование папки базы при закрытой программе.
Файловая база
Сжатие делается через тестирование и исправление (подробнее в следующем разделе): отметьте только флажок Сжатие таблиц информационной базы. Нужен монопольный доступ — все пользователи должны выйти.
Ещё один рабочий приём — выгрузить базу в .dt и загрузить её обратно в пустую базу. Файл получается компактным, а заодно проверяется, что выгрузка вообще проходит без ошибок.
Серверная база на MS SQL или PostgreSQL
В клиент-серверном варианте сжатие делается средствами СУБД, а не 1С.
| СУБД | Чем сжимать | Особенность |
|---|---|---|
| MS SQL Server | DBCC SHRINKFILE или задача сжатия в плане обслуживания | Сначала разберитесь с журналом транзакций: при модели восстановления FULL без регулярных бэкапов журнала он растёт бесконечно |
| PostgreSQL | VACUUM FULL | Блокирует таблицы на время работы — только в нерабочее время |
Пример для MS SQL: сжать файл данных до 1 ГБ свободного места сверх занятого.
USE [buh_base];
-- посмотреть логические имена файлов
SELECT name, size/128 AS size_mb FROM sys.database_files;
-- сжать файл данных (размер в МБ)
DBCC SHRINKFILE (N'buh_base', 1024);
Регулярное сжатие SQL-базы по расписанию — плохая практика. Оно фрагментирует индексы. Сжимайте разово, после крупной чистки данных, а потом перестраивайте индексы.
Тестирование и исправление информационной базы
Это главный встроенный инструмент «генеральной уборки». Открывается в Конфигураторе: Администрирование → Тестирование и исправление.
Флажки и их смысл:
- 🔧
Реиндексация таблиц информационной базы— перестраивает индексы, помогает при медленных отборах; - 🔍
Проверка логической целостности информационной базы— ищет повреждённые структуры; - 🔗
Проверка ссылочной целостности— находит «битые» ссылки на удалённые объекты; - 🧮
Пересчёт итогов— пересчитывает итоги регистров, лечит неверные остатки; - 🗜
Сжатие таблиц информационной базы— освобождает пустое место; - 🏗
Реструктуризация таблиц информационной базы— полностью пересоздаёт таблицы, самая долгая операция.
Ниже флажков выбирается режим: только тестирование или тестирование с исправлением. Для первого прогона выберите только тестирование и посмотрите отчёт.
При найденных битых ссылках 1С предложит варианты: создать объекты-заглушки, очистить ссылки или не изменять. «Очистить ссылки» стирает поле в документах без возможности восстановления. Безопаснее создавать объекты: потом их можно найти и разобрать.
Для файловой базы есть ещё утилита chdbfl.exe из папки bin платформы. Она проверяет физическую целостность файла 1Cv8.1CD и запускается, когда база закрыта. Её используют, если 1С вообще не открывает базу.
Служебные данные и регистры: что можно удалить, а что нельзя
Кроме журнала, база растёт за счёт служебных данных, которые копит сама конфигурация. Здесь важно не перестараться.
Что можно чистить штатными средствами:
- 🗑 помеченные на удаление объекты —
Администрирование → Обслуживание, обработка удаления помеченных объектов. Она проверяет ссылки и не даст удалить используемое; - 📜 устаревшие версии объектов — если включено версионирование, история изменений документов копится годами. Очистка устаревших версий есть в настройках версионирования в разделе администрирования;
- 🔄 регистрация изменений в планах обмена — если обмен с другой базой давно отключён, а узел остался, изменения продолжают регистрироваться и копиться. Удалите неиспользуемый узел обмена или снимите с него регистрацию.
Чего не делать никогда:
- ❌ удалять записи регистров накопления и бухгалтерии через консоль запросов или обработки «очистки регистров». Остатки и обороты считаются по ним, отчётность «поедет»;
- ❌ удалять документы прошлых закрытых периодов ради уменьшения базы. Для этого есть свёртка базы, и проводят её только с бухгалтером и после полной копии;
- ❌ чистить таблицы напрямую в SQL. 1С не узнает об этом, и целостность базы будет нарушена.
Перед удалением чего-либо в рабочей базе прогоните ту же операцию на копии. Сравните оборотно-сальдовую ведомость до и после — она должна совпасть до копейки.
Как автоматизировать очистку 1С
Ручная очистка на 20 рабочих местах отнимает полдня. Её можно поставить на скрипты.
Скрипт очистки клиентского кэша
PowerShell-скрипт удаляет только GUID-папки кэша текущего пользователя:
$paths = "$env:APPDATA\1C\1cv8", "$env:LOCALAPPDATA\1C\1cv8"
$guid = '^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$'
foreach ($p in $paths) {
if (Test-Path $p) {
Get-ChildItem $p -Directory |
Where-Object { $_.Name -match $guid } |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
}
}
Его удобно запускать при входе пользователя через групповую политику или по ярлыку «Сбросить кэш 1С» на рабочем столе. Если 1С открыта, занятые папки просто пропустятся.
Тестирование и исправление из командной строки
Пакетный режим Конфигуратора позволяет запускать проверку по расписанию через Планировщик заданий Windows:
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER ^
/F "D:\Bases\Buh" /N "Администратор" /P "пароль" ^
/IBCheckAndRepair -ReIndex -LogIntegrity -RecalcTotals -IBCompression ^
/Out "D:\Logs\check.log" /DisableStartupMessages
Номер версии в пути замените на свой. Пароль в открытом виде храните только в скрипте с ограниченными правами доступа.
Такой запуск требует монопольного доступа. Ставьте задание на ночь и проверяйте утром файл /Out — в нём результат.
Что ещё стоит поставить на расписание
- ⏰ ночная выгрузка
.dtили бэкап СУБД — до любой чистки; - ⏰ перестроение индексов и обновление статистики в плане обслуживания SQL;
- ⏰ еженедельная очистка
%TEMP%на терминальном сервере.