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

06.04.16

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Работа с журналом регистрации 1С83
.epf 7,48Kb
314
314 Скачать (1 SM) Купить за 1 850 руб.
Сократить журнал регистрации
.epf 7,17Kb
273
273 Скачать (1 SM) Купить за 1 850 руб.

Проблема:  На сервере растут логи баз на платформе 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 сократить журнал

См. также

Журнал регистрации Мониторинг Системный администратор Программист Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 Платные (руб)

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

9000 руб.

28.08.2019    34066    22    21    

75

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

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

5000 руб.

28.11.2018    20824    17    6    

42

Журнал регистрации Программист Россия Бесплатно (free)

В материале рассматривается сравнение двух инструментов для работы с журналом регистрации 1С: утилиты ibcmd и платформы Vector. Описаны их функциональные возможности, тестирование производительности и практическое применение для преобразования логов в формат JSON.

20.11.2024    1037    user1913000    11    

18

Журнал регистрации Тестирование QA Программист Бесплатно (free)

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

21.10.2024    2986    leemuar    8    

22

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

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

1 стартмани

29.12.2023    2191    31    dima_gsv    3    

13

Журнал регистрации Мониторинг Системный администратор Программист Абонемент ($m)

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

1 стартмани

19.11.2023    1478    5    AlexSTAL    0    

8

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

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

1 стартмани

13.11.2023    4811    9    AlexSTAL    0    

47

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

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

3 стартмани

26.09.2023    2885    19    doom2good    16    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. oldfornit 06.04.16 11:56 Сейчас в теме
в принципе не обязательно выполнять vacuum - новые записи будут добавляться в освободившееся внутри файла базы место
Xershi; erazh; softgarant; solary; +4 Ответить
2. TODD22 19 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 2712 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 19 26.04.16 09:57 Сейчас в теме
Если я удалю(перемещу) файл журнала регистрации который на sqlite. У меня при перезапуске сервер новый файл создаст?
А то старый не сжимается. Вываливается при сжатии платформой с ошибкой.
13. oldfornit 26.04.16 10:37 Сейчас в теме
(12) TODD22, да, сервер создаст новый файл. При желании можно сделать так, чтобы новый журнал был в старом (текстовом формате). Для этого достаточно положить в каталог журналов файл с именем "1с.LGP" (если не напутал)
14. TODD22 19 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 513 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 174 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 163 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 711 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)}:СократитьЖурналНаСервере(СократьЖурналДоДаты);

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