Имя: Пароль:
1C
1С v8
Автоматическая чистка журнала активности пользователей
0 Черника33
 
30.08.22
11:20
Задача появилась в автоматической чистки журнала активности пользователей на сервере.
Из статьи: https://www.maxblogs.ru/articles/sokrashchenie-zhurnala-registratsii-v-1spredpriyatie-versii-83

Был взят код, ну и что и требовалось ожидать подогнать под мои нужды не представилось возможным. Может, кто ни будь поможет :(

Мой вариант

#
# backup & shrink 1c logs (EDIT THIS FILE!!!)
#

param (
    [string]$1cexe = "C:\Program Files\1cv8\8.3.17.1851\bin\1cv8.exe",
    [string]$1cbase = "SRV-BD-15:1541\TestBD",
    [string]$1cuser = "Administrator",
    [string]$1cupassword = "Administrator",
    [string]$1coperlog = "D:\scripts\log\1cshrink.log",
    [string]$1cdaysoflogstore = 90,
    [string]$1clogsarchive = "D:\scripts\journal\",
    [string]$1clogfilename = $env:COMPUTERNAME.ToLower() + "-1clog-" + ($1cbase.split("\"))[1] + "-" + (get-date).Date.ToString("yyyyMMdd") + ".elf"
)

$1clog = $1clogsarchive + $1clogfilename

cmd /c "`"`"$1cexe`" CONFIG `/s$1cbase `/N`"$1cuser`" `/P`"$1cupassword`" `/Out$1coperlog `/ReduceEventLogSize $((get-date).Date.AddDays(-$1cdaysoflogstore).ToString("yyyy-MM-dd")) -saveAs`"$1clog`"`""
1 Dmitrii
 
гуру
30.08.22
12:50
А зачем все эти извращения, если в текущих версиях платформы можно настраивать режим разделения хранения журнала регистрации по периодам (час, день, неделя, месяц, год, не разделять) в результате чего получаем отдельные файлы на каждый соответствующий период (почасовые, подневные, понедельные, погодовые или один файл).
Если есть необходимость архивировать, удалять или переносить куда-то файлы журнала за прошлые периоды, задача решается множеством простейших и очевидных способов, работающих как часы. Без всяких танцев с бубнами.
2 Черника33
 
30.08.22
13:16
Более 30 баз и каждый раз при заполнении места открывать папку с каждой БД удалять/архивировать/переносить не очень удобно
3 Dmitrii
 
гуру
30.08.22
13:48
(2) Зачем делать это вручную?
Для такой задачи достаточно настроить режим разделения во всех базах (например) "день" и хоть каждый день любым автоматическим способом что-то делать с файлами ЖР, например, более чем десятидневной давности. Хоть командный файл, хоть скрипт на PowerShell, выполняемые по расписанию через планировщик винды, хоть какими-нибудь ахиваторами, которые умеют выполнять сценарии по расписанию. Да куча всяких вариантов.
Никто вручную такой фигнёй не страдает.

А вот резать существующий файл сторонними средствами - решение спорное.
У текстового формата ЖР строятся какие-то свои индексы.
4 Aleksey
 
30.08.22
13:55
(1) Это если текстовый ЖР, после конвертации на SQLite этой возможности нет, как и нет штатной возможности вернуть обратно в текстовый формат
5 Aleksey
 
30.08.22
14:00
Хотя насчет последнего погорячился, сейчас появилась возможность обратного преобразования
6 Черника33
 
30.08.22
17:58
(4) Спасибо, так и сделала
2 + 2 = 3.9999999999999999999999999999999...