Выгрузка журнала регистрации lgd в базу SQL

30.08.24

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

Журнал регистрации lgd хранит данные в одном файле SQLite. Скрипт на OneScript позволяет выгрузить журнал регистрации lgd в базу SQL. А для анализа выгруженного журнала регистрации - конфигурация с отчетом на СКД.

Зачем это надо, и что помогает решить:

  1. Если один ЖР пишет на несколько серверов, то при просмотре ЖР будут видны записи только текущего активного файла.
  2. Если ЖР большой и случайно сделали что-то не то на рабочей базе, есть вероятность, что рабочий сервер зависнет. Реализация дает возможность выгружать ЖР на тестовый сервер и запускать с тестовых баз.
  3. При необходимости можно добавить/изменить индексы для быстрого поиска, в отличие от типового журнала.
  4. В cf выложен удобный отчет на СКД. Есть возможность группировать записи и анализировать проблемные места.

Скорость переноса в базу SQL зависит от мощности сервера. Например, на рабочем сервере 150000 записей обрабатывает около 1м 30секунд. На домашнем ноутбуке 150000 записей обрабатывает около 4м.

Описание

Можно загружать в одну базу сразу несколько журналов регистрации. Для этого нужно указывать уникальное ИмяИнформационнойБазы. При запуске ищем информационную базу по имени, если ее нет, то добавляем ИмяИнформационнойБазы с ПредставлениеИнформационнойБазы и ОписаниеИнформационнойБазы, иначе просто работаем с уже существующей.

ПредставлениеИнформационнойБазы и ОписаниеИнформационнойБазы заполняется только при создании(если база с таким именем уже создана не обновляет поля), если нужно изменить то через sql.

Отслеживать несколько баз - запустить несколько exe. При ошибке можно отправлять письмо на почту.

В дополнительно есть cf с внешним источником и отчетом. Отчет сделан на подобии ЖР БСП.

При завершении чтения и запуске снова продолжается с последней записи (при соответствующих настройках).

Порядок работы

В SQL создать новую базу данных.

Скопировать скрипт из файла "SQL Server. Скрипт создания базы для хранения данных журнала регистрации.sql" и запустить его для созданной базы.

Открыть файл "setting.json" и установить настройки.

"НастройкиПочты": {
    "ОтправитьТестовоеПисьмо": "Ложь", При запуске пробуем отправить письмо, можно использовать один раз для проверки
    "ОтправлятьПисьмоПриОшибке": "Истина", Отпарвляет письмо если что-то пошло не так
    "АдресSMTP": "smtp.gmail.com",
    "ПортSMTP": 465,
    "ПользовательSMTP": "test@gmail.com",
    "ПарольSMTP": "test",
    "ИспользоватьSSL": "Истина",
    "АдресЭлектроннойПочтыПолучателя": "test@gmail.com;"
},

"НастройкиЧтенияЖурнала": {
    "ЧитатьЖурнал": "Истина", - Нужно ли читать журнал. Первый раз можно указать ОтправитьТестовоеПисьмо истина и ЧитатьЖурнал ложь для проверки работы с почтой
    "ПутьКВнешнейКомпонентеSqlLite": "sql.dll", - путь к файлу. Лежит в папке. По умолчанию менять не нужно.
     "ПутьКSqlLite": "1Cv8.lgd", - Путь к файлу журнала регистрации. Пример "C:/Program Files/1cv8/srvinfo/reg_1541/9b6f817a-404b-43f4-9fb2-41d33022db41/1Cv8Log/1Cv8.lgd"
    "СтрокаСоединенияСSQL": "server=ИмяСервера;uid=ПользовательСервера;pwd=ПарольСервера;database=ИмяБазыДанныхДляЗагрузки", - подключение к sql
   "ИмяИнформационнойБазы": "МойПервыйТест", 
     "ПредставлениеИнформационнойБазы": "Мой первый тест", 
     "ОписаниеИнформационнойБазы": "моя база для тестов",
     "ЧислоСтрокДляЗаписи": 1000, - число строк которые будет переносить за один запрос к sql. Максимум 1000. Например если за паузу между загрузкой успели создать в журнале только 500 новых записей, то загрузит 500, не дожидаясь полного пакета.
     "НачатьСПервойВSQLLite": "Ложь", - Если мы загружаем базу первый раз, то Истина. Например есть журнал который сокращался и сейчас хранятся записи с id от 500 до 10000. Мы получим минимальный айди и начнем загрузку с него. Для таблицы ЗаписиДанных.
  "ОбрабатываемаяСтрокаСобытий": 0, - Если по какой то причине у нас затерлись данные или пропустили часть строк то можно начать загрузку с конкретного айди что бы догрузить. Для таблицы ЗаписиДанных.
  "ПаузаСекунд": 60, - Пауза между обращением к базам. Мы получаем таблицы последних айди для каждой таблицы в SQL и журнале регистрации. После чего проходим все таблицы по очереди загружая новые записи. После этого пауза на указанное время перед новой итерацией.
  "ВыводитьЛог": "Истина" - Если истина выводится информация по количеству итераций, загрузке таблиц.
}

 

Для windows. Тестировалось на платформе 8.3.21.1393. 

Используются библиотеки:


Утилита реализована через OneScript. Добавлен файл exe, который достаточно запустить, указав настройки.

Утилита и ее исходники выложены на github - Navakouski/Zhurnal-Registracii: Загрузка журнала регистрации 1С (lgd) в базу SQL (github.com)

Для работы с готовым exe необходимо скопировать папку "ГотоваяСборка".

ЖР lgd SQL журнал регистрации OneScript выгрузка загрузка внешний источник данных СКД чтение парсинг анализ

См. также

Журнал регистрации Системный администратор Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

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

6000 руб.

28.11.2018    21164    17    7    

42

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

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

20.11.2024    1588    user1913000    12    

20

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

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

21.10.2024    3618    leemuar    8    

24

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

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

1 стартмани

29.12.2023    2473    39    dima_gsv    3    

14

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

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

1 стартмани

19.11.2023    1720    5    AlexSTAL    0    

8

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

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

1 стартмани

13.11.2023    5289    11    AlexSTAL    0    

47

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

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

3 стартмани

26.09.2023    3134    22    doom2good    16    

14
Оставьте свое сообщение