Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
File renamed without changes.
93 changes: 93 additions & 0 deletions 1c/Clear1CCache.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
<#
.SYNOPSIS
Очистка кэша клиента 1С:Предприятие 8 (тонкий/толстый клиент).

.DESCRIPTION
Закрывает запущенные процессы 1С и удаляет кэш из
%APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.
Список информационных баз (ibases.v8i в каталоге 1CEStart) НЕ затрагивается.

.PARAMETER Base
Часть имени/GUID папки конкретной базы. Если не задан — чистится весь кэш.

.PARAMETER Force
Не спрашивать подтверждение перед закрытием процессов 1С.

.EXAMPLE
.\Clear-1CCache.ps1
Чистит весь кэш с подтверждением закрытия процессов.

.EXAMPLE
.\Clear-1CCache.ps1 -Force
Чистит весь кэш без вопросов (для автозапуска).

.EXAMPLE
.\Clear-1CCache.ps1 -Base "a1b2c3"
Чистит только папки, в имени которых встречается "a1b2c3".
#>

[CmdletBinding()]
param(
[string]$Base,
[switch]$Force
)

$ErrorActionPreference = 'Stop'

# Процессы клиента/сервера 1С
$procNames = @('1cv8', '1cv8c', '1cv8s')

$running = Get-Process -Name $procNames -ErrorAction SilentlyContinue
if ($running) {
Write-Host "Запущены процессы 1С:" -ForegroundColor Yellow
$running | Format-Table Id, ProcessName, StartTime -AutoSize | Out-String | Write-Host
if (-not $Force) {
$ans = Read-Host "Закрыть их и продолжить? (y/N)"
if ($ans -notmatch '^[YyДд]') { Write-Host "Отменено."; exit 1 }
}
$running | Stop-Process -Force
Start-Sleep -Seconds 1
Write-Host "Процессы 1С закрыты." -ForegroundColor Green
}

# Каталоги кэша
$roots = @(
(Join-Path $env:APPDATA '1C\1cv8'),
(Join-Path $env:LOCALAPPDATA '1C\1cv8')
)

$freed = 0
$removed = 0

foreach ($root in $roots) {
if (-not (Test-Path $root)) { continue }
Write-Host "`nОбработка: $root" -ForegroundColor Cyan

$items = Get-ChildItem -LiteralPath $root -Force -ErrorAction SilentlyContinue
if ($Base) {
$items = $items | Where-Object { $_.Name -like "*$Base*" }
}

foreach ($item in $items) {
try {
$size = 0
if ($item.PSIsContainer) {
$size = (Get-ChildItem -LiteralPath $item.FullName -Recurse -Force -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum).Sum
} else {
$size = $item.Length
}
Remove-Item -LiteralPath $item.FullName -Recurse -Force -ErrorAction Stop
if ($size) { $freed += $size }
$removed++
Write-Host " удалено: $($item.Name)" -ForegroundColor DarkGray
}
catch {
Write-Warning " не удалось удалить $($item.Name): $($_.Exception.Message)"
}
}
}

$mb = [math]::Round($freed / 1MB, 1)
Write-Host "`nГотово. Удалено объектов: $removed, освобождено ~$mb МБ." -ForegroundColor Green
Write-Host "Кэш пересоздастся при следующем запуске 1С." -ForegroundColor Gray
13 changes: 13 additions & 0 deletions 1c/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# 1c/

Windows-скрипты для администрирования 1С:Предприятие (клиент и рабочие места).

| Файл | Назначение |
|---|---|
| `1CDefenderExclusion.ps1` | Добавляет исключения 1С в Windows Defender: каталоги платформы и файловых баз (из `ibases.v8i` всех профилей), расширения и процессы. Запуск от администратора. |
| `1CDefenderExclusion.bat` | Лаунчер для `1CDefenderExclusion.ps1` (запуск двойным кликом). |
| `Replace-1C-Ibases.ps1` | Раздаёт эталонный `ibases.v8i` (список баз 1С) пользователям группы `1C_all` с бэкапом старых файлов. Интерактивный выбор пользователей. |
| `Clear1CCache.ps1` | Очистка кэша клиента 1С (`%APPDATA%\1C\1cv8`, `%LOCALAPPDATA%\1C\1cv8`) с закрытием процессов, фильтром по базе (`-Base`) и режимом без подтверждения (`-Force`). |
| `clear_1c_cache.bat` | Быстрая очистка кэша 1С двойным кликом: закрывает процессы и удаляет кэш без подтверждений. |

Linux-скрипты для 1С — в [`../linux/1c/`](../linux/1c/).
File renamed without changes.
16 changes: 16 additions & 0 deletions 1c/clear_1c_cache.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
@echo off
chcp 65001 >nul
title Ochistka kesha 1C

echo Zakryvayu processy 1C...
taskkill /F /IM 1cv8.exe >nul 2>&1
taskkill /F /IM 1cv8c.exe >nul 2>&1
taskkill /F /IM 1cv8s.exe >nul 2>&1

echo Chishchu kesh...
if exist "%APPDATA%\1C\1cv8" rd /s /q "%APPDATA%\1C\1cv8"
if exist "%LOCALAPPDATA%\1C\1cv8" rd /s /q "%LOCALAPPDATA%\1C\1cv8"

echo.
echo Gotovo. Kesh peresozdastsya pri sleduyushchem zapuske 1C.
pause
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# scripts

Коллекция скриптов для администрирования инфраструктуры: PostgreSQL для 1С, Windows (1С, RD Gateway, развёртывание), MikroTik RouterOS, Proxmox, мониторинг Zabbix.
Коллекция скриптов для администрирования инфраструктуры: 1С, PostgreSQL для 1С, Windows (RD Gateway, развёртывание), MikroTik RouterOS, Proxmox, мониторинг Zabbix.

Сюда консолидировано содержимое репозиториев `RouterOS`, `proxmox` и `win` — теперь всё в одном месте.

Expand All @@ -10,7 +10,8 @@

| Папка | Содержимое |
|---|---|
| [`windows/`](windows/) | PowerShell-скрипты для Windows (1С, RD Gateway) + `oobe/` — автоустановка Windows. |
| [`1c/`](1c/) | Windows-скрипты для 1С:Предприятие (исключения Defender, раздача баз, очистка кэша). |
| [`windows/`](windows/) | PowerShell-скрипты для Windows (RD Gateway) + `oobe/` — автоустановка Windows. |
| [`pgsql/`](pgsql/) | PostgreSQL / Postgres Pro: установка, бэкапы, отказоустойчивость (`failover/`, `pgpro/`). |
| [`routeros/`](routeros/) | Скрипты и конфиги MikroTik RouterOS + `docs/` (Obsidian-документация). |
| [`proxmox/`](proxmox/) | Скрипты для Proxmox VE. |
Expand Down
7 changes: 3 additions & 4 deletions windows/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# windows/

PowerShell-скрипты для Windows (1С, RD Gateway) и автоустановка Windows.
PowerShell-скрипты для Windows (RD Gateway) и автоустановка Windows.

Скрипты для 1С вынесены в [`1c/`](../1c/).

| Скрипт | Назначение |
|---|---|
| `1CDefenderExclusion.ps1` | Добавляет исключения 1С в Windows Defender: каталоги платформы и файловых баз (из `ibases.v8i` всех профилей), расширения и процессы. Запуск от администратора. |
| `Replace-1C-Ibases.ps1` | Раздаёт эталонный `ibases.v8i` (список баз 1С) пользователям группы `1C_all` с бэкапом старых файлов. Интерактивный выбор пользователей. |
| `Update-RDGWCertificate.ps1` | Получение/продление сертификата Let's Encrypt через Posh-ACME (DNS-плагин Beget) и установка на RD Gateway. Для планировщика: одно задание раз в сутки с наивысшими правами. Сохранять в UTF-8 with BOM. |
| `1CDefenderExclusion.bat` | Лаунчер для `1CDefenderExclusion.ps1` (запуск двойным кликом). |

## oobe/

Expand Down
Loading