Куда уходит место на сервере 1С и как вернуть его без вреда для баз

· 10 мин

Содержание

Чтобы очистить диск 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 — сколько часов хранить файлы.

Пошаговая очистка

  1. Откройте logcfg.xml и посмотрите путь в location.
  2. Решите, нужен ли журнал. Если расследование закончено — удалите файл logcfg.xml или переименуйте его в logcfg.xml.off.
  3. Подождите около минуты: платформа перечитывает настройки сама, перезапуск службы не нужен.
  4. Удалите содержимое папки из 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. Предупредите пользователей: при остановке службы оборвутся все сеансы на всех базах кластера. Делайте это вечером или в выходной.
  2. Остановите службу «Агент сервера 1С:Предприятия 8.3».
  3. Удалите папки snccntx* в reg_1541. Другие файлы (1CV8Clst.lst, 1CV8Reg.lst) и папки с GUID баз не трогайте — в них список баз и настройки кластера.
  4. Запустите службу и откройте одну базу для проверки.

Временные файлы рабочих процессов

Рабочие процессы пишут временные файлы (обычно вида 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.

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

Журнал регистрации нельзя просто удалить папкой, если по нему нужна история изменений. Правильный путь — сокращение.

Вручную через Конфигуратор:

  1. Откройте базу в режиме «Конфигуратор».
  2. Администрирование → Журнал регистрации…, в открывшемся окне выберите команду «Сократить».
  3. Укажите дату, до которой удалить события, и при желании файл, куда их сохранить.

Из командной строки — для скрипта в Планировщике 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.

Автоочистка сервера 1С настроена
Выполнено: 0 / 6

База на 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, есть два способа:

  1. Сжатие таблиц. Конфигуратор → Администрирование → Тестирование и исправление… → флажок «Сжатие таблиц информационной базы». Нужен монопольный доступ: все пользователи должны выйти.
  2. Выгрузка и загрузка .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% свободного места на диске с базами.
  • 🧭 Разнесение по дискам — СУБД, журналы транзакций, ТЖ и резервные копии лучше держать на разных томах. Переполнение одного не остановит остальные.

Профилактика раз в месяц:

  1. Сверить размеры папок из таблицы в начале с прошлым месяцем.
  2. Удалить шаблоны конфигураций, кроме двух последних релизов.
  3. Удалить платформы, которыми никто не пользуется.
  4. Проверить, не включён ли кем-то ТЖ «на минутку».

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

Диагностика: выберите симптом
Можно ли удалить всю папку srvinfo, чтобы почистить кэш?
Нет. В ней хранится реестр кластера: список баз, настройки и рабочие серверы. Удаляют только папки snccntx* при остановленной службе.
Сколько места нужно держать свободным на сервере 1С?
Ориентир — не меньше 15–20% тома и не меньше размера самой крупной базы: этот объём понадобится для выгрузки .dt или сжатия.
Влияет ли очистка кэша на данные в базе?
Нет. Кэш клиента и сеансовые данные кластера — служебные файлы, документы и справочники хранятся в СУБД или в 1Cv8.1CD.
Безопасно ли удалять старые платформы, если на сервере несколько баз?
Да, если служба сервера и все клиенты запускаются на новой версии. Проверьте путь к ragent.exe в свойствах службы перед удалением.
Как часто сокращать журнал регистрации?
Обычно раз в квартал или год, оставляя период, который требуют внутренние правила. При разделении журнала по периодам старые части проще архивировать.