Сокращение журнала регистрации 1С: 8.3

06.04.16

База данных - Журнал регистрации

Работа с журналом регистрации в 1С: 8.3 изменилась по сравнению с 8.2. Рассмотрим варианты автоматического и ручного обрезания журнала регистрации.

Скачать файлы

Наименование Файл Версия Размер
Работа с журналом регистрации 1С83
.epf 7,48Kb
308
.epf 7,48Kb 308 Скачать
Сократить журнал регистрации
.epf 7,17Kb
268
.epf 7,17Kb 268 Скачать

Проблема:  На сервере растут логи баз на платформе 8.3.

Необходимо: Часть логов, например, за месяц, оставить доступными напрямую из базы, остальные обрезать и хранить на других дисках. Делать это необходимо автоматически.

Как было раньше(8.1 и 8.2): В конфигураторе можно было указать настройку: «Разделять хранение журнала по периодам» и указать период, например, Неделя. Таким образом, каждая неделя логов хранилась в отдельном файле. Батником копировались и архивировались старые логии на отдельный диск, чтобы они не занимали место на сервере. При необходимости посмотреть «древний» лог, мы возвращали файл за требуемый период на место и просматривали его стандартными средствами 1С.

Как нынче в 8.3: Журнал регистрации хранится в файле 1Cv8.lgd – это файл базы данных sqlite. Настройка «Разделять хранение журнала по периодам» в конфигураторе отсутствует. Осталась кнопка «Сократить», с помощью которой обрезается часть журнала и переносится в указанный файл. Однако после этого размер логов не уменьшается. Что нужно сделать, чтобы размер файла уменьшился, напишу чуть ниже.

Напомню, что все должно работать автоматически. Конфигурация типовая, поэтому трогать ее не будем.

Что было сделано: В планировщике заданий добавил задание, которое выполняет cmd-файл, который запускает 1С с параметрами. В параметре "/Execute", указан путь до обработки, которая копирует часть журнала регистрации в файл, затем эту часть обрезает. 

В обработке воспользовался процедурами по работе с журналом регистрации:

    Фильтр = Новый Структура("ДатаОкончания");
    Фильтр.ДатаОкончания = НачалоГода(ТекущаяДата());
    СкопироватьЖурналРегистрации(,ИмяФайлаКопииЖурнала, Фильтр);
    ОчиститьЖурналРегистрации(Фильтр);

Обработку запускаю cmd-файлом:

"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S "ServerName:PortNumber\NameBD" /N "ИмяПользователя" /P "Пароль" /Execute "D:\Сократить журнал регистрации\СократитьЖурналРегистрацииПериод.epf" /C "Период=Неделя; СохранитьЖР=D:\Сократить журнал регистрации\НашиЛоги"

 В параметре «/С» передается период деления журнала регистрации (День / Неделя / Месяц / Год) и путь до места, где будут храниться обрезанные логи.

После сокращения журнала регистрации размер файла журнала регистрации не изменяется. Чтобы он изменился, необходимо остановить агент сервера и выполнить команду vacuum. Затем запустить службу агента сервера. В планировщике заданий добавил задание, которое выполняет следующий cmd-файл:

net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
sleep 5
D:\scripts\sqlite3.exe D:\ДиректорияХраненияЛоговНаСервере\1Cv8Log\1Cv8.lgd vacuum
net start "1C:Enterprise 8.3 Server Agent (x86-64)"

Утилиту  sqlite3.exe можно скачать с официального сайта http://www.sqlite.org/

Для того чтобы в cmd-файле можно было использовать кириллицу, сохраняю его через «Notepad++» в кодировке ОЕМ866.

Что получили: Логи хранятся за каждую неделю в отдельных файлах. Размер файла 1Cv8.lgd не увеличивается.

Обрезанную часть логов, перенесенную в отдельный файл, можно просмотреть штатными средствами 1С: Все функции->Стандартные->Журнал регистрации->Еще->Просмотреть из файла.

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

 

Есть идея более простого обрезания и сохранения логов без запуска 1С на сервере с обработкой: можно останавливать агент сервера, переименовывать файл 1Cv8.lgd и запускать сервер. При первом запуске 1С будет создан новый пустой файл журнала регистрации. Главный минус этого варианта: если после переименования файла потребуется посмотреть журнал регистрации, то придется открывать журнал из внешнего файла, который может лежать на недоступном для пользователя диске сервера. В варианте же приведенном выше, в журнале будет храниться история не меньше, чем за указанный период (День / Неделя / Месяц / Год).

В общем-то и все. Если есть замечания и дополнения, добро пожаловать в комментарии. Все важные нюансы обязательно добавлю в статью. Спасибо.

Журнал регистрации логи 8.3 сократить журнал

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

19200 руб.

15.05.2017    42521    10    24    

38

Версионирование объектов для Альфа-авто, ред 4 и 5.

Оптовая торговля Розничная торговля Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Автомобили, автосервисы Управленческий учет Платные (руб)

Подсистема версионирования объектов для конфигураций Рарус: Альфа-авто на базе типовой подсистемы от 1С. Позволяет хранить историю изменений документов и справочников, кто, что, когда и какие данные изменял, а так же вернуться к предыдущим версиям объекта.

4800 руб.

03.09.2016    42254    33    24    

37

LogManager - Внешний журнал регистрации в SQL

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Журнал регистрации платформы 1С в SQL. Общая база хранения всех журналов. Через com-подключение регламентным заданием периодически догружает журналы регистраций из рабочих баз. Предоставляет настраиваемый доступ к журналам по правам подразделений. Формирует отчеты по пользователям и данным.

10000 руб.

23.05.2014    55470    52    16    

47

Мониторинг баз и серверов 1С

Журнал регистрации Мониторинг Платформа 1С v8.3 Платные (руб)

В сферу обязанностей при работе с клиентами входит контроль работы баз данных и серверов 1С. Нужно понимать что происходит в базах, есть ли ошибки, зависания у пользователей и фоновых задач, блокировки или какое-то необычное поведение системы, получение информации о причинах возникновения проблем и их оперативное устранение и т.д. В качестве источников информации использую консоль кластеров 1С, технологический журнал 1С, журналы регистрации базы 1С. Для автоматизации части операций мониторинга и анализа создал инструмент на основе 1С.

9000 руб.

28.08.2019    30955    14    21    

66

LogiCH - хранение и анализ журнала регистрации в сверхбыстрой СУБД ClickHouse

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Конфигурация LogiCH эффективно решает проблему хранения и анализа записей журналов регистрации. Разработка использует столбцовую СУБД ClickHouse, одну из самых быстрых Big Data OLAP СУБД. Любой анализ журнала можно выполнить в одном отчете, в котором доступны все возможности СКД с учетом ограничений RLS. Количество подключаемых баз не ограничено и не влияет на скорость построения анализа.

5000 руб.

28.11.2018    19544    13    6    

36

Регламентное сокращение журнала регистрации

Инструменты администратора БД Журнал регистрации Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Внешняя обработка для регламентного сокращения журнала регистрации для конфигураций на базе БСП и платформы 8.3.20+

1 стартмани

29.12.2023    1243    12    dima_gsv    1    

12

Магия преобразований: ЖР, ТЖ, RAS/RAC, логи - универсальное решение Vector

Мониторинг Журнал регистрации Технологический журнал Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    2969    4    AlexSTAL    0    

42

Мониторинг состояния с отправкой в telegram

Журнал регистрации Инструменты администратора БД Мониторинг Мессенджеры и боты Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Абонемент ($m)

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

3 стартмани

26.09.2023    1753    11    doom2good    10    

13
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. oldfornit 06.04.16 11:56 Сейчас в теме
в принципе не обязательно выполнять vacuum - новые записи будут добавляться в освободившееся внутри файла базы место
Xershi; erazh; softgarant; solary; +4 Ответить
2. TODD22 18 06.04.16 12:13 Сейчас в теме
(1) oldfornit,
в принципе не обязательно выполнять vacuum

Это когда базу не раздуло. А то у меня например она занимает 90Гб. Из 240 Гб дискового места.... мне она такая большая за год не нужна....
3. oldfornit 06.04.16 13:37 Сейчас в теме
(2) TODD22, настройте очистку по регламенту, один раз сожмите и в будущем будет занимать ровно столько места, сколько надо. по аналогии с журналом транзакции в MS SQL
5. solary 186 07.04.16 07:40 Сейчас в теме
(2) TODD22, обработка как раз писалась в то время, когда 1С выпустили проблемное обновление платформы и логи баз росли по 300МБ в день...
6. solary 186 07.04.16 07:41 Сейчас в теме
(1) oldfornit, хороший вариант, особенно для тех, кто не перезапускает агент сервера каждый день.
4. CheBurator 3119 06.04.16 20:38 Сейчас в теме
7. heavymetal 86 13.04.16 08:40 Сейчас в теме
Полезная штука. Тем более заметил, что иногда начинаются непонятные глюки с сервером 1с и зависанием сеансов. Но каким-то странным образом после удаления логов эти глюки уходят, а через некоторое время возвращаются. И каждый раз чистка логов помогает на время.
Не знаю от чего это, мистика просто. Релизы платформ причем могут быть разные. Но на некоторых серверах такого нет. То ли еще и ОС замешали что ли
8. karapuzzzz 63 13.04.16 12:40 Сейчас в теме
Вот я не пойму. Раз уж сделала 1С хранение журнала в SQLite, почему не хранить журнал в отдельной СУБД вообще на другом сервере?
9. solary 186 14.04.16 08:00 Сейчас в теме
(8) karapuzzzz,
почему не хранить журнал в отдельной СУБД вообще на другом сервере

предполагаю, что это сделано для универсальности работы с журналом регистрации для серверных и файловых баз.
10. oldfornit 14.04.16 08:52 Сейчас в теме
(9) а как насчет скорости? Все-таки писать в локальную sqlite/текстовые файлы быстрее, чем на удаленный сервер.
11. solary 186 18.04.16 14:18 Сейчас в теме
(10) oldfornit, возможно. Скорость действительно тут очень важна.
Но когда у вас файловый вариант базы, больше некуда писать, кроме как в локальную sqlite.
12. TODD22 18 26.04.16 09:57 Сейчас в теме
Если я удалю(перемещу) файл журнала регистрации который на sqlite. У меня при перезапуске сервер новый файл создаст?
А то старый не сжимается. Вываливается при сжатии платформой с ошибкой.
13. oldfornit 26.04.16 10:37 Сейчас в теме
(12) TODD22, да, сервер создаст новый файл. При желании можно сделать так, чтобы новый журнал был в старом (текстовом формате). Для этого достаточно положить в каталог журналов файл с именем "1с.LGP" (если не напутал)
14. TODD22 18 26.04.16 10:40 Сейчас в теме
(13) oldfornit, Да создал новый файл.
Мне старый формат не нужен. Лог стал 100Гб и никак не хотел урезаться. При сжатии падал с ошибкой.
15. danya1606 25 20.07.16 15:06 Сейчас в теме
Я так понял обработка при операции копирования журнала регистрации просто заменяет данные в старом журнале регистрации т.е удаляет старые и добавляет новые записи, сделанной аналогичным образом, а не дополняет?
16. solary 186 21.07.16 15:28 Сейчас в теме
(15) danya1606, верно, копирует часть журнала регистрации текущей базы в файл. Если файл уже существует, то он будет заменен. Если установлена галка "Скопировать и сократить", то ЖР будет скопирован в файл и затем удален из базы до указанной даты.
17. danya1606 25 26.07.16 10:44 Сейчас в теме
(16) А можно ли как то добиться того что - архивный файл ЖР будет дополняться записями допустим делать такой перенос каждый квартал?
18. solary 186 27.07.16 12:31 Сейчас в теме
(17) danya1606, стандартная процедура СкопироватьЖурналРегистрации(<ИмяВходногоФайла>, <ИмяВыходногоФайла>, <Фильтр>) заменяет файл, если он существует. Можно восстанавливать ЖР из файла в базу, а потом снова обрезать но большим периодом))) Но в чем смысл?
19. danya1606 25 29.07.16 16:51 Сейчас в теме
(18) Смысл в том чтобы держать копить один файл журнала регистрации допустим за год, ну а с функцией скопировать получается что он делает копию ЖР а не дополняет тот архивный. Объясню по простому например учет в программе 1С начнем с 01-01-2016, т.е. от это даты и начинается ЖР:
1)01-04-2016 делаем первый - срезку ЖР
2)01-07-2016 делаем вторую срезку ЖР получается второй отдельный файл
3)01-10-2016 делаем третью срезку ЖР получается третий отдельный файл
В итоге если вдруг нам понадобиться проанализировать за целый год разом ЖР по определенному объекту нам придется три раз файлы подменять для данной операции.
20. herfis 498 29.07.16 17:59 Сейчас в теме
Чтобы не иметь гемора с настройкой ротации логов, я просто веду ЖР в старом формате (можно стопорнуть сервак и подложить пустой файлик со старым названием, после старта ЖР будет вести в него запись в старом формате). И вообще считаю перевод логов на SQLite ошибкой.
kuzyara; uri1978; mrnovel; Grigoripal; RodinMax; Infected; +6 Ответить
21. enzain 11.08.16 11:28 Сейчас в теме
Никто не реализовывал службу переноса всех данных из файла в, например, MS-SQL?
А то логи, за пару месяцев в 90 гиг немножко утомили, если честно уже ....
22. oldfornit 11.08.16 12:42 Сейчас в теме
(21) enzain, реализовывал. Не стоит оно того. Запись в базу данных происходит достаточно медленно - практически день в день. Итоговые размеры базы - по размеру больше чем в SQLITE.

Есть решение по переносу ЖР в elasticsearch - посмотрите тут вебинар по big data
23. odinarhitektor 28.11.17 12:33 Сейчас в теме
Пишу скрипт так, как указано в статье не выполняет команду, в чем может быть проблема?
Прикрепленные файлы:
24. solary 186 29.11.17 08:53 Сейчас в теме
(23) Вы запускаете sqlite3.exe, в статье же описывается как запустить сжатие из командной строки D:\scripts\sqlite3.exe D:\ДиректорияХраненияЛоговНаСервере\1Cv8Log\1Cv8.lgd vacuum
На больших базах логов (десятки ГБ) мне не удавалось дождаться сжатия, приходилось писать журнал с нуля, а потом вовремя обрезать.
25. odinarhitektor 30.11.17 15:02 Сейчас в теме
(24) sqlite ругается "unreconized token" на открытие файла
26. odinarhitektor 30.11.17 15:58 Сейчас в теме
(25)
(24) sqlite ругается "unreconized token" на открытие файла
по команде .open 1cv8.lgd (при этом файл лога лежит в той же папке где и sqlite) и затем с новой строки vacuum; у меня получилось, но скриптом не удается выполнить действия в две строки.
27. AlexO 135 05.09.18 14:18 Сейчас в теме
копирует часть журнала регистрации в файл, затем эту часть обрезает
обработка копирует только неделю, и какую неделю - последнюю, 7 дней от запуска, с начала? Или копирует определенное количество строк?
Что остается - лог .lgd без недели, который потом ужимается, или неделя забирается в отдельный файл, остается тоже условная "неделя", а остальное стирается?
28. b-dm 171 07.02.19 14:11 Сейчас в теме
поясните пожалуйста, в чем разница между обработками, из описания откровенно говоря не понял...
29. solary 186 08.02.19 10:11 Сейчас в теме
(28) Обработка "Работа с журналом регистрации 1С83" - это обработка в которой можно ВРУЧНУЮ:
- восстановить журнал из файла,
- очистить журнал до даты(место не освободится, если не выполнить vacuum),
- скопировать часть журнала регистрации в файл.

При запуске обработки "Сократить журнал регистрации" сразу запустится сокращение журнала регистрации по параметрам, которые передаются при открытии 1С.
30. user1234203 05.07.19 10:52 Сейчас в теме
Поставили задачу сократить журнал регистрации. Впервые с таким столкнулся вообще и вот те на! Ваша статья. Спасибо большое, буду пробовать сейчас.
31. Alv_prog 22.01.20 13:01 Сейчас в теме
При попытке сократить журнал регистрации в формате lgd, сталкиваюсь с ошибкой "Ошибка совместного доступа к файлу 'C:\Users\[имя пользователя службы сервера 1с]\AppData\Local\Temp\v8_6E3E_da64.tmp'. 32(0x00000020): The process cannot access the file because it is being used by another process." Платформа 8.3.16.1063
32. Toliban 06.02.20 09:12 Сейчас в теме
(31)
0x00000020

Та же ошибка (0x00000020) при попытки отбора по журналу регистрации. При это сам журнал (без отбора) открывается нормально. Платформа 8.3.16.1063. Журнал регистрации в формате lgd
33. Fox-trot 156 06.02.20 09:24 Сейчас в теме
38. user1430187 30.06.20 22:18 Сейчас в теме
(31) (32) Ребят, получилось решить проблему с совместным доступом?
41. DennyPhilord 65 25.11.20 22:22 Сейчас в теме
(31) Да, это проблема платформы 8.3.16.1063
34. Shecurok 12.03.20 13:12 Сейчас в теме
Не пойму, что указывается в ENTERPRISE /S "ServerName:PortNumber\NameBD"
База серверная. Надо ли оставлять ServerName? номер порта я понял, а namebd это наименование базы данных на русском? или как?
37. solary 186 10.06.20 18:28 Сейчас в теме
(34) Например, ENTERPRISE /S "server-1C:1641\ZUP"
35. improg 568 29.04.20 15:06 Сейчас в теме
(0) вопрос к автору, не возникала ли у вас проблема как в этой ветке, интересует именно момент копирования

https://forum.infostart.ru/forum9/topic240289/#message2435336
36. solary 186 10.06.20 18:20 Сейчас в теме
(35) Нет, такой проблемы не возникало.
39. exhoric 22.09.20 11:15 Сейчас в теме
В версии 8.3.15.1830 - не работает.
Прикрепленные файлы:
40. dr_Ed 07.10.20 14:40 Сейчас в теме
Мы перенесли сервер 1С на новый сервер.
Хотим загрузить журнал регистраций со старого сервера в новый.
Поможет ли мне эта обработка?
Версия сервера 8.3.17.1549
42. 127.0.0.0 01.12.20 22:03 Сейчас в теме
(40) почему бы его просто не перенести (особенно если это одна 1-2 базы )
1. останавливаем сервер.
2. журналы архивируем.
3. переносим сервер
4. запускаем сервер (в это время появляются новые каталоги для журнала)
5. останавливаем и раскидываем журнал в соответствующие базы.
понятно что если баз 1С в районе 1-10 не особо много займет времени
если больше .. к примеру 30 баз.. то процесс может стать утомительным и вероятность закинуть журнал не в ту базу вырастит )
43. Luniona 17.10.21 00:12 Сейчас в теме
Спасибо! 2021 год и до сих пор актуально!
44. G_109164077908670969909 30.08.23 13:01 Сейчас в теме
В версии 8.3.22.1709 так же не работает

Ошибка при вызове метода контекста (ОчиститьЖурналРегистрации)
{ВнешняяОбработка.СокращениеЖР.Форма.Форма.Форма(30)}:ОчиститьЖурналРегистрации(Фильтр);
{ВнешняяОбработка.СокращениеЖР.Форма.Форма.Форма(19)}:СократитьЖурналНаСервере(СократьЖурналДоДаты);

по причине:
Ошибка очистки журнала регистрации.
по причине:
Метод не поддерживается данной реализацией журнала регистрации
Оставьте свое сообщение