Куда уходит место на сервере 1С и как вернуть его без вреда для баз
Содержание
Чтобы очистить диск 1С, начните с пяти мест, где копится больше всего: каталог технологического журнала (его путь задан в logcfg.xml), журнал регистрации баз (папка 1Cv8Log), кэш кластера в srvinfo\reg_1541\snccntx*, шаблоны обновлений в %APPDATA%\1C\1cv8\tmplts и старые версии платформы в C:\Program Files\1cv8. На сервере с SQL добавьте к списку файл журнала транзакций .ldf — он часто весит больше самой базы.
Удалять логи, кэш и временные файлы можно не все и не всегда на ходу. Ниже — что безопасно стирать сразу, что только при остановленной службе, а что нужно сокращать штатными средствами.
Сначала найдите, что именно съело место на сервере 1С
Не чистите вслепую. За 5 минут можно понять, где реальная проблема, и не тратить время на папки по 200 МБ.
Удобные инструменты:
- 📊 WinDirStat или TreeSize Free — показывают дерево папок по размеру, работают от администратора;
- 💻 PowerShell — если на сервер нельзя ставить программы;
- 🗄 SQL Server Management Studio → свойства базы → вкладка «Файлы» — размер данных и журнала транзакций отдельно.
Команда PowerShell, которая покажет 20 самых крупных файлов на диске D:
Get-ChildItem -Path D:\ -Recurse -File -ErrorAction SilentlyContinue |
Sort-Object Length -Descending |
Select-Object -First 20 FullName, @{N='GB';E={[math]::Round($_.Length/1GB,2)}}
Типичная картина на сервере 1С:
| Где копится | Что там лежит | Как быстро растёт |
|---|---|---|
Каталог из logcfg.xml | технологический журнал, *.log по процессам | до десятков ГБ в сутки при широком отборе |
...\reg_1541\<GUID базы>\1Cv8Log | журнал регистрации базы | сотни МБ – десятки ГБ за годы |
...\reg_1541\snccntx* | сеансовые данные и кэш кластера | обычно ГБ, но бывает больше |
%APPDATA%\1C\1cv8\tmplts | шаблоны конфигураций и обновлений | 1–3 ГБ на каждый релиз |
C:\Program Files\1cv8\8.3.x.xxxx | старые версии платформы | около 0,5–1 ГБ на версию |
Папка TEMP пользователя службы | временные файлы рабочих процессов | зависит от отчётов и выгрузок |
Файлы .ldf SQL Server | журнал транзакций | неограниченно при полной модели восстановления |
Каталог кластера по умолчанию — C:\Program Files\1cv8\srvinfo. Если при установке его перенесли, точный путь виден в параметре -d в свойствах службы «Агент сервера 1С:Предприятия 8.3» (оснастка services.msc).
Как очистить технологический журнал 1С и ограничить его рост
Технологический журнал (ТЖ) — главный виновник внезапно заполненного диска. Его включают для разбора ошибок или блокировок, а потом забывают выключить.
Где найти настройки ТЖ
ТЖ управляется файлом logcfg.xml. Платформа ищет его в каталоге conf:
- общий для всех версий:
C:\Program Files\1cv8\conf\logcfg.xml; - для конкретной версии:
C:\Program Files\1cv8\8.3.xx.xxxx\bin\conf\logcfg.xml.
В файле есть тег <log location="..." history="...">. Атрибут location — папка с журналом, history — сколько часов хранить файлы.
Пошаговая очистка
- Откройте
logcfg.xmlи посмотрите путь вlocation. - Решите, нужен ли журнал. Если расследование закончено — удалите файл
logcfg.xmlили переименуйте его вlogcfg.xml.off. - Подождите около минуты: платформа перечитывает настройки сама, перезапуск службы не нужен.
- Удалите содержимое папки из
location. Файлы, которые ещё заняты процессом, Windows не даст удалить — это нормально, оставьте их.
Если ТЖ нужен постоянно, ограничьте его. Пример настройки, которая пишет только исключения и хранит их сутки:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1C_TechLog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Не пишите ТЖ на системный диск C:. При отборе «все события» журнал нагруженного сервера за ночь способен занять весь свободный объём, и тогда остановится не только 1С, но и Windows.
Дампы процессов
Отдельно проверьте дампы: при падениях rphost и ragent платформа пишет файлы .mdmp. Их каталог задаётся тегом <dump location="..."> в том же logcfg.xml. Старые дампы, по которым уже не идёт разбор, можно удалить целиком.
Временные файлы и кэш платформы: что удалять и когда
Кэш кластера на сервере
Каталог srvinfo\reg_1541 содержит папки snccntx* — сеансовые данные кластера. Со временем они разрастаются, а иногда и портятся, из-за чего база ведёт себя странно.
Порядок очистки:
- Предупредите пользователей: при остановке службы оборвутся все сеансы на всех базах кластера. Делайте это вечером или в выходной.
- Остановите службу «Агент сервера 1С:Предприятия 8.3».
- Удалите папки
snccntx*вreg_1541. Другие файлы (1CV8Clst.lst,1CV8Reg.lst) и папки с GUID баз не трогайте — в них список баз и настройки кластера. - Запустите службу и откройте одну базу для проверки.
Временные файлы рабочих процессов
Рабочие процессы пишут временные файлы (обычно вида v8_*.tmp) в папку TEMP пользователя, от которого запущена служба, например USR1CV8. Путь: C:\Users\USR1CV8\AppData\Local\Temp.
Файлы старше суток при работающей службе удалять можно — занятые просто не удалятся. Свежие лучше не трогать: их может использовать формирующийся прямо сейчас отчёт.
Шаблоны обновлений и старые платформы
- 📦
%APPDATA%\1C\1cv8\tmplts— сюда распаковываются дистрибутивы конфигураций. Для обновления нужен только последний релиз; папки старых релизов удаляйте вручную. Каждая лежит в подкаталоге с именем поставщика и конфигурации, внутри — папки по номерам версий. - 🧹 Старые версии платформы удаляйте через «Программы и компоненты» Windows, а не удалением папки. Перед этим убедитесь, что служба сервера и все клиенты уже работают на новой версии.
Клиентский кэш на терминальном сервере
На терминальном сервере у каждого пользователя есть кэш в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 — папки с длинными именами-GUID. При 30 пользователях и 5 базах это легко 10–20 ГБ.
Чистить их можно, когда пользователь вышел из 1С. Платформа воссоздаст кэш при следующем входе, первый запуск будет чуть медленнее. Для одного пользователя проще запустить 1С с параметром /ClearCache.
Журнал регистрации: сократить, а не стереть
Журнал регистрации нельзя просто удалить папкой, если по нему нужна история изменений. Правильный путь — сокращение.
Вручную через Конфигуратор:
- Откройте базу в режиме «Конфигуратор».
Администрирование→Журнал регистрации…, в открывшемся окне выберите команду «Сократить».- Укажите дату, до которой удалить события, и при желании файл, куда их сохранить.
Из командной строки — для скрипта в Планировщике Windows:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /ReduceEventLogSize 2025-01-01 -KeepSplitting /Out"D:\logs\reduce.txt"
Ограничить рост на будущее можно там же: Администрирование → Настройка журнала регистрации. Уровень «Ошибки» вместо «Информация» резко уменьшает объём, но и расследовать, кто что поменял, станет труднее. Включите разделение журнала по периодам — тогда старые периоды удобно архивировать.
Если в организации журнал регистрации используют для контроля действий сотрудников, согласуйте срок хранения с руководством до сокращения. Удалённые события не восстановить.
Автоматическая очистка: регламентные задания 1С и Планировщик Windows
Часть мусора копится внутри самих баз. Это убирают регламентные задания типовых конфигураций.
Список заданий в БП 3.0, ЗУП 3.1 и УТ 11: Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Найдите в списке по слову «удаление» или «очистка» задания, которые чистят устаревшие данные, и проверьте:
- ✅ задание включено;
- ✅ у него задано расписание (например, ежедневно ночью);
- ✅ в колонке состояния нет ошибок последнего запуска.
Особенно полезны удаление помеченных на удаление объектов и очистка устаревших версий объектов, если в базе включено версионирование. Таблица версий в больших базах вырастает до десятков гигабайт.
Файлы на диске сервера регламентными заданиями 1С не чистятся. Для них — Планировщик заданий Windows и PowerShell-скрипт:
# Удаляет файлы старше N дней из указанных папок
$days = 3
$folders = @("D:\1C_TechLog", "C:\Users\USR1CV8\AppData\Local\Temp")
foreach ($f in $folders) {
Get-ChildItem -Path $f -Recurse -File -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$days) } |
Remove-Item -Force -ErrorAction SilentlyContinue
}
Создайте задание в taskschd.msc: запуск ежедневно в 03:00, от имени учётной записи с правами на эти папки, действие — powershell.exe -ExecutionPolicy Bypass -File D:\scripts\clean1c.ps1.
База на SQL Server и PostgreSQL: журнал транзакций и сжатие
В клиент-серверном варианте самый тяжёлый файл часто не 1С, а СУБД.
SQL Server. Если у базы полная модель восстановления (Full), а резервное копирование
журнала транзакций не настроено, файл .ldf растёт бесконечно. Варианты:
| Ситуация | Что делать | Риск |
|---|---|---|
| Нужно восстановление на любой момент времени | настроить регулярный бэкап журнала транзакций, затем сжать .ldf | нет, это штатная схема |
| Достаточно ночной полной копии | перевести базу в простую модель (Simple) и сжать .ldf | теряется восстановление на момент между копиями |
| Разово освободить место | DBCC SHRINKFILE по файлу журнала после бэкапа | без смены модели журнал вырастет снова |
Пример сжатия журнала в простой модели:
USE [buh];
ALTER DATABASE [buh] SET RECOVERY SIMPLE;
DBCC SHRINKFILE (N'buh_log', 1024); -- целевой размер в МБ
Логическое имя файла (buh_log) смотрите в свойствах базы на вкладке «Файлы».
Регулярно сжимать файл данных .mdf не нужно: это фрагментирует индексы, а база всё равно снова займёт место.
PostgreSQL. Место освобождает VACUUM FULL по таблицам — с блокировкой на время выполнения. Обычный VACUUM и autovacuum место на диске не возвращают, а только позволяют использовать его повторно.
Файловая база: особенности очистки
В файловом режиме всё хранится в каталоге базы, и мусор выглядит иначе.
- 🗂
1Cv8.1CD— сама база. После массового удаления данных файл не уменьшается: место остаётся внутри. - 📝
1Cv8Log— журнал регистрации, сокращается так же, как описано выше. - 🧾
1Cv8tmp.1CD— временный файл, при работающей базе его не трогают. - 💾 Папки резервных копий — типовые конфигурации при обновлении могут сохранять копию базы
. Проверьте путь в
Администрирование→Обслуживание→Резервное копирование и восстановлениеи удалите устаревшие копии.
Чтобы уменьшить 1Cv8.1CD, есть два способа:
- Сжатие таблиц.
Конфигуратор→Администрирование→Тестирование и исправление…→ флажок «Сжатие таблиц информационной базы». Нужен монопольный доступ: все пользователи должны выйти. - Выгрузка и загрузка .dt.
Администрирование→Выгрузить информационную базу…, затем загрузить файл обратно в новую пустую базу. Файл после этого обычно заметно меньше.
Перед сжатием и перезагрузкой базы сделайте копию каталога базы. Если процесс прервётся из-за нехватки места, без копии можно потерять данные. Под сжатие нужен свободный объём не меньше размера 1Cv8.1CD.
Если база лежит в общей папке, проверьте ещё теневые копии и корзину сетевого ресурса: удалённые пользователями выгрузки часто остаются там.
Мониторинг свободного места, чтобы не чистить в аврале
Когда на диске остаётся 0 байт, 1С падает с ошибками записи, журнал регистрации обрывается, а SQL Server может перевести базу в состояние, требующее восстановления. Лучше узнать заранее.
Простые способы:
- 🔔 Скрипт в Планировщике — проверяет диски раз в час и пишет событие в журнал Windows или шлёт письмо:
Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" |
Where-Object { $_.FreeSpace / $_.Size -lt 0.15 } |
ForEach-Object { Write-EventLog -LogName Application -Source "Clean1C" -EntryType Warning -EventId 100 -Message "Мало места на $($_.DeviceID)" }
Перед первым запуском источник событий регистрируют один раз: New-EventLog -LogName Application -Source "Clean1C".
- 📈 Системы мониторинга (Zabbix и аналоги) — порог 15–20% свободного места на диске с базами.
- 🧭 Разнесение по дискам — СУБД, журналы транзакций, ТЖ и резервные копии лучше держать на разных томах. Переполнение одного не остановит остальные.
Профилактика раз в месяц:
- Сверить размеры папок из таблицы в начале с прошлым месяцем.
- Удалить шаблоны конфигураций, кроме двух последних релизов.
- Удалить платформы, которыми никто не пользуется.
- Проверить, не включён ли кем-то ТЖ «на минутку».