Чистим 1С от лишнего: кэш, журнал регистрации, временные файлы и раздутые таблицы

· 10 мин

Содержание

Чтобы очистить кэш 1С, закройте программу и запустите базу с параметром /ClearCache или удалите папки с именами-GUID в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Журнал регистрации сокращают в Конфигураторе через Администрирование → Настройка журнала регистрации, а таблицы базы сжимают в Администрирование → Тестирование и исправление.

Типичная ситуация: после обновления конфигурации у одного бухгалтера форма документа «поехала», у другого 1С пишет про несоответствие метаданных, а на соседнем компьютере всё работает. Почти всегда виноват устаревший кэш. А если база выросла с 3 до 15 ГБ за год, причина обычно в журнале регистрации и неудалённых служебных данных. Разбираемся по шагам: что чистить, в каком порядке и что трогать нельзя.

Что чистить в 1С: симптомы и порядок действий

Очистка в 1С — это несколько разных операций. Они решают разные проблемы, и путать их не стоит.

Что очищаемСимптомРискНужен монопольный режим
Клиентский кэшОшибки форм после обновления, «зависание» при входе, старые макетыПочти нулевойНет
Серверный кэш (snccntx)Ошибки у всех пользователей сразу, странные блокировкиОбрываются все сеансыСлужба останавливается
Временные файлы %TEMP%Мало места на диске, ошибки записи временных файловНизкийНет
Журнал регистрацииБаза растёт, журнал открывается минутамиТеряется история действийНет
Сжатие таблицФайл 1Cv8.1CD больше реального объёма данныхСреднийДа
Тестирование и исправлениеОшибки целостности, неверные остаткиСредний — высокийДа

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

Что у вас происходит?

Как очистить кэш 1С на компьютере пользователя

Клиентский кэш — это копия метаданных конфигурации, форм и макетов на локальном диске. 1С хранит её, чтобы не загружать всё из базы при каждом входе. После обновления конфигурации копия иногда не обновляется целиком.

Перед очисткой закройте все окна 1С на этом компьютере. Иначе часть файлов будет занята и не удалится.

Способ 1. Параметр /ClearCache

Самый быстрый и безопасный способ:

  1. Откройте окно запуска 1С.
  2. Выделите базу и нажмите Изменить.
  3. Пролистайте мастер до последней страницы.
  4. В поле Дополнительные параметры запуска впишите /ClearCache.
  5. Нажмите Готово и войдите в базу.

1С сбросит кэш этой базы и соберёт его заново. Первый вход будет дольше обычного — от нескольких секунд до пары минут на крупной конфигурации.

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

Способ 2. Удаление папок кэша вручную

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

  • 📁 %APPDATA%\1C\1cv8 — роуминговый профиль;
  • 📁 %LOCALAPPDATA%\1C\1cv8 — локальный профиль.

Вставьте путь в адресную строку Проводника. Внутри — папки с длинными именами вида 3f2a1c5e-8b4d-4e2a-9c1f-7d6e5b4a3c21. Каждая такая папка — кэш одной базы.

  1. Закройте 1С.
  2. Откройте обе папки по очереди.
  3. Удалите все папки с именами-GUID.
  4. Не трогайте файлы с расширением .pfl и папку ExtCompT — там общие настройки и внешние компоненты.

Определить, какая папка к какой базе относится, неудобно. Проще удалить все GUID-папки: 1С пересоздаст их при следующем входе в каждую базу.

Список баз хранится отдельно, в файле %APPDATA%\1C\1CEStart\ibases.v8i. Его не удаляйте, иначе пропадёт список баз в окне запуска.

Кэш веб-клиента и тонкого клиента через публикацию

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

Серверный кэш и временные файлы 1С

Сеансовые данные на сервере 1С:Предприятия

В клиент-серверном варианте сервер 1С хранит кэш и сеансовые данные в каталоге кластера. По умолчанию это C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\. Внутри ищите папки, имена которых начинаются на snccntx.

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

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

  1. Попросите пользователей выйти из всех баз.
  2. Откройте services.msc и найдите службу агента сервера 1С:Предприятия 8.3.
  3. Остановите службу.
  4. Удалите папки snccntx* внутри каталогов баз в reg_1541.
  5. Запустите службу.
  6. Войдите в базу и проверьте работу.

Удаляйте только папки snccntx*. Не трогайте файлы 1CV8Clst.lst и 1crdbl.lst — в них список баз кластера и его настройки. Без них базы пропадут из консоли.

Если служба запущена с другим каталогом, путь смотрите в её свойствах: параметр -d в строке запуска указывает каталог srvinfo.

Временные файлы Windows

1С пишет временные файлы в папку %TEMP% текущего пользователя: выгрузки отчётов, вложения, промежуточные данные. Обычно они удаляются сами, но после аварийных завершений остаются.

  1. Закройте 1С.
  2. Откройте %TEMP% через Win+R.
  3. Удалите содержимое. Файлы, занятые другими программами, Windows пропустит — это нормально.

На терминальном сервере то же самое нужно сделать в профиле каждого пользователя. Это удобнее автоматизировать скриптом (см. раздел про автоматизацию).

Журнал регистрации: как настроить и очистить

Журнал регистрации хранит, кто, когда и что делал в базе. На активной базе он растёт на сотни мегабайт в месяц и легко становится тяжелее самих данных.

Где он лежит:

  • 📂 файловая база — папка 1Cv8Log рядом с файлом 1Cv8.1CD;
  • 📂 серверная база — папка 1Cv8Log в каталоге базы внутри srvinfo\reg_1541.

Посмотрите размер этой папки. Если она весит несколько гигабайт — вы нашли основную причину роста.

Уровень регистрации

Первое, что стоит сделать — убрать регистрацию лишнего. В Конфигураторе: Администрирование → Настройка журнала регистрации.

УровеньЧто пишетКогда выбирать
Не регистрироватьНичегоПочти никогда: теряется возможность разбора инцидентов
Регистрировать ошибкиТолько ошибкиМинимум для экономии места
Регистрировать ошибки и предупрежденияПлюс предупрежденияРазумный баланс для малых баз
Регистрировать ошибки, предупреждения и информациюПлюс входы, записи объектовКогда нужно видеть, кто что менял
Регистрировать все событияВключая примечанияТолько на время отладки

Для бухгалтерии обычно нужен уровень с информацией: он показывает, кто изменил документ. Но держать «все события» постоянно незачем.

Сокращение журнала

В том же окне настройки есть кнопка Сократить.

  1. Нажмите Сократить.
  2. Укажите дату: события до неё будут удалены.
  3. Если историю нужно сохранить, отметьте выгрузку удаляемых событий в файл и выберите путь.
  4. Подтвердите.

Перед сокращением договоритесь с главбухом и службой безопасности о сроке хранения. Часто оставляют 6–12 месяцев, а старые события выгружают в архив на отдельный диск.

В пользовательском режиме журнал можно посмотреть через Администрирование → Обслуживание (раздел с протоколами и журналами), но сокращение и уровень логирования удобнее менять в Конфигураторе.

Если журнал повреждён

Иногда журнал открывается с ошибкой или бесконечно долго. В этом случае можно закрыть базу, переименовать папку 1Cv8Log (например, в 1Cv8Log_old) и войти снова. Платформа создаст новый пустой журнал. Старую папку сохраните в архиве — её можно открыть позже для разбора.

Сжатие таблиц и уменьшение размера базы

Когда в 1С удаляют данные, место внутри файла базы не освобождается сразу. Файл 1Cv8.1CD сохраняет прежний размер, а внутри остаются пустые страницы. Сжатие перестраивает таблицы и отдаёт место обратно.

Сделайте резервную копию перед сжатием: Администрирование → Выгрузить информационную базу в Конфигураторе или простое копирование папки базы при закрытой программе.

Файловая база

Сжатие делается через тестирование и исправление (подробнее в следующем разделе): отметьте только флажок Сжатие таблиц информационной базы. Нужен монопольный доступ — все пользователи должны выйти.

Ещё один рабочий приём — выгрузить базу в .dt и загрузить её обратно в пустую базу. Файл получается компактным, а заодно проверяется, что выгрузка вообще проходит без ошибок.

Серверная база на MS SQL или PostgreSQL

В клиент-серверном варианте сжатие делается средствами СУБД, а не 1С.

СУБДЧем сжиматьОсобенность
MS SQL ServerDBCC SHRINKFILE или задача сжатия в плане обслуживанияСначала разберитесь с журналом транзакций: при модели восстановления FULL без регулярных бэкапов журнала он растёт бесконечно
PostgreSQLVACUUM 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% на терминальном сервере.
Регламент очистки 1С на месяц
Выполнено: 0 / 6

Частые вопросы об очистке 1С

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