Объединить журналы регистрации 1с

Обновлено: 05.07.2024

Использование Журнала регистрации

Область применения: управляемое приложение, обычное приложение.

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

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

2.1. Строковый идентификатор типа события. Как правило, список типов событий в конфигурации может быть сколь угодно большим, поэтому типы событий рекомендуется группировать по функциональному признаку: «Название группы событий.Название события». Например, правильно записывать события с типами «Поручения.Уведомление о новых задачах» и «Поручения.Уведомление о зависших задачах» вместо двух «плоских» типов событий «Уведомление о новых задачах» и «Уведомление о зависших задачах». Текст типа события – локализуем, при этом всегда задается основной язык конфигурации.

2.3. Комментарий. Содержит текстовую неструктурированную информацию о событии. В случае ошибок в этом поле содержится информация, необходимая для расследования причины проблемы. Не следует помещать в комментарий информацию сразу о нескольких событиях. Например, неправильно записывать одно событие с комментарием вида:

[01.01.2010 00:00:01] Начало инициализации обмена данными по настройке "Обмен данными выгрузка", номер строки настройки: 1
[01.01.2010 00:00:02] Окончание инициализации обмена данными (успешно)
[01.01.2010 00:00:03] Начало процесса обмена данными по настройке "Обмен данными выгрузка", номер строки настройки: 1
[01.01.2010 00:00:04] Начало записи изменений в файл обмена
[01.01.2010 00:00:05] Окончание записи изменений в файл обмена (успешно)
[01.01.2010 00:00:06] Окончание процесса обмена данными по настройке "Обмен данными выгрузка", номер строки настройки: 1
[01.01.2010 00:00:07] Выполнено, Выгрузка данных, Обработано 1 объектов

правильно записать столько событий, сколько их реально произошло.

Текст комментария – локализуем. Для записи в Журнал регистрации информации о возникшем исключении следует использовать конструкцию:

Пример регистрации дополнительных событий в функциональной подсистеме «Мой механизм»:

Попытка
ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие с возможной ошибкой'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Начато действие'"));
ДействиеСВозможнойОшибкой(ОбъектДействия);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие с возможной ошибкой'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Завершено действие'");
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие с возможной ошибкой'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Ошибка, , ,
НСтр("ru = '"Во время выполнения действия произошла неизвестная ошибка.'") + Символы.ПС +
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
КонецПроцедуры

где переменная КодОсновногоЯзыка содержит код языка для хранения данных в информационной базе. Подробнее см. Автогенерированные данные в информационной базе: требования по локализации, п. 1.

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

Рекомендуется заводить отдельный регистр для протоколирования интересующих событий или обращаться к специализированным объектам платформы (например, МенеджерФоновыхЗаданий для выборки истории выполнения фоновых заданий).

Эту особенность нужно также учитывать при разработке отчетов по журналу регистрации.

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

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

Примеры статьи актуальны для серверных и файловых баз.

Материал статьи я разделил на две части - в первой части описаны методы записи в журнал, а во второй - получение данных из журнала посредством методов библиотеки стандартных подсистем.

Итак, перейдем к первой части - методам записи в журнал регистрации:

Часть 1. Методы записи в журнал регистрации.

Самый простой метод регистрации в журнале возможен при выполнении такой процедуры

код исполнения выглядит вот так:

Результат исполнения процедуры записи выглядит вот так:


Рассмотрим еще один способ пакетной записи в журнал регистрации через структуру с помощью процедуры ЗаписатьСобытияВЖурналРегистрации(СобытияДляЖурналаРегистрации) Экспорт.

код исполнения выглядит вот так:

Убедимся, что работает. Результат исполнения данной процедуры аналогичен предыдущей - запись появилась.


Рис.2. Данная запись создана процедурой ЗаписатьСобытияВЖурналРегистрации.

С методами записи в журнал считаю, что достаточно. Предлагаю перейти ко второй части статью - методам получения информации из журнала регистрации.

Часть 2. Методы получения информации из журнала регистрации.

Для начала рассмотрим самый простой способ получения информации по отбору в форме самого журнала. Для этого воспользуемся процедурой ОткрытьЖурналРегистрации(Знач Отбор = Неопределено, Владелец = Неопределено) Экспорт

Код с отбором выглядит вот так:

Результат выполнения кода вот такой:


Рис.3. Программное открытие формы журнала регистрации с заданным отбором.

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

Для этого воспользуемся стандартной процедурой БСП ПрочитатьСобытияЖурналаРегистрации, которая вернет нам структуру записей журнала. Да-Да, именно вернет.

Данная типовая процедура помещает результат выполнения (в данном случае - это структура записей журнала регистрации) в хранилище. Код этой типовой процедуры выглядит вот так:

ПрочитатьСобытияЖурналаРегистрации (БСП)

Чтобы получить результат, воспользуемся возможностями БСП - ДлительныеОперации. Общий код получения выглядит вот так:

Результат, который мы получим (вернули структуру с записями журнала):


Рис.4. Структура записей событий журнала.

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

Заключение и выводы

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

Так же в статье затронута еще одна подсистема конфигурации - ДлительныеОперации. О ДлительныхОперациях вы можете прочитать мои статьи. Список полезных статей приведен в конце статьи.

Все эксперименты для написания этой статьи проводились на платформе 1С - 8.3.19.1264 и "чистой конфигурации" БСП 3.1.5.208.

Спасибо за прочтение данного материала. Если статья вам понравилась - прошу поддержать ее.

Другие мои материалы по подсистемам БСП

Также прошу ознакомиться с другими моими статьями по функционалу библиотеки стандартных подсистем и типовым конфигурациям по разделам:

Журнал регистрации в 1С 8.3 хранится в виде базы данных SQLite , в отличие от 1С 8.2, где журнал регистрации хранится в двух и более файлов не совсем очевидной структуры. Данная обработка предназначена для дополнения приемника информацией из источника. Источником может служить журнал регистрации обеих версий (выбирается lgf в случае 8.2 и lgd в случае 8.3). Приемником - только журнал регистрации 1С 8.3 и он обязательно должен существовать (обработка не создает новый файл, а дополняет существующий корректный файл, созданный самой 1С-кой). Что может обработка:

  • Добавление журнала регистрации 1С 8.2 в журнал регистрации 1С 8.3
  • Добавление журнала регистрации 1С 8.3 в журнал регистрации 1С 8.3

Для чего может быть использована обработка:

  • Конвертация старого журнала регистрации в новый на SQLite . Для тех, кто поленился сделать это непосредственно при переходе на новую платформу, а теперь хранит старые журналы отдельно и ищет в них информацию вручную. Ну или для эстетов =)
  • Объединение старых журналов регистрации с целью прямого доступа посредством SQLite (в т.ч. на платформе 8.2). Это пригодится тем, кто хочет делать отчеты по журналу регистрации в 1С 8.2, но желает быстродействия.
  • Объединение новых журналов регистрации после каких-либо манипуляций с ними. Подойдет тем, кто постоянно переносит журнал регистрации на отдельный диск в целях экономии места на сервере. Ну и тем, у кого просто по каким-либо причинам журналы от одной разделились.

Проблем с русскими буквами нет, я их пофиксил еще на этапе разработки (кстати, метод требует очень много дисковых операций). Для использования обработки необходимо установить SQLite на клиент, с которого будет осуществляться запуск. Используется для подключения "DSN=SQLite3 Datasource", вроде при установке SQLite она должна будет прописаться самостоятельно. Если нет, то прописывать нужно будет для 32-битной версии. Собственно, правильная установка SQLite уже за рамками данной публикации.

Из практики. Обработка использовалась для конвертации журнала 3.2 Гб старого формата в новый. Занимало это до 15 часов. При этом выходной файл будет в полтора-два раза больше или около того, потому что это уже база данных и у нее присутствует индексация. При слиянии двух новых журналов регистрации совсем не важно, кто будет источником, а кто приемником - на хронологию событий в отображении это не повлияет. Всего через нее прошло 20 Гб старых журналов и примерно столько же новых. Ошибок обнаружено не было.

Если файл SQLite не открывается и выдает ошибку (после вытаскивания его из под базы), то его можно восстановить при помощи утилиты из комплекта SQLite3, информация есть в сети. Не спешите его хоронить. Если же сбой произошел при работе данной обработки, то операцию конвертации следует повторить с самого начала. Не забывайте сохранять копию файла-приемника для таких случаев.

Если с программой 1С работает большое число людей, то периодически приходится отслеживать операции, совершенные сотрудниками. Благо вышеуказанная утилита позволяет выполнять подобные операции. Ведь ее разработчики создали особый инструмент, который записывает изменения, появляющиеся при редактировании документов. Он называется журнал регистрации. Что дает возможность посмотреть, кем делались правки, какие недочеты исправлены.

Где находится журнал регистрации ошибок в 1С?

Проверять работу коллег можно разными методами. Например, для этого используется меню «Администрирование». Именно оно содержит пункт «Обслуживание», перейдя в которое пользователь обнаружит «Журнал регистрации»:

Журнал регистрации 1С

Также можно зайти из общего меню, воспользовавшись опцией «Все функции»:

Журнал регистрации 1С

Вдобавок открыть вышеупомянутый журнал можно из конфигуратора. Достаточно перейти на вкладку «Администрирование», пролистать пункты, найти «Журнал регистрации»:



Но намного разумнее использовать функцию «Избранное». Что ускорит нахождение (открытие) журнала. Поэтому данную опцию рекомендуется использовать при частых проверках действий сотрудников.



Кстати, файл с записанными данными может располагаться в каталоге «1Cv8Log» или отдельной папке на сервере. Это зависит оттого, какой тип баз используется. Первое обычно характерно для файловых систем. Второе – для клиент-серверных баз.

Как открыть журнал регистраций в 1С?

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



Кстати, сверху устанавливается интервал (период), за который необходимо просмотреть информацию. Слева отмечаются события, имеющие особую важность (представляющие повышенный интерес). А справа можно выбрать следующие данные:

• Список событий;
• Перечень пользователей;
• Приложения;
• Компьютеры;
• Завершенные сеансы.

А вот в разделе «Данные» обычно выставляется список документов, которые нужно отслеживать. В «Транзакциях» можно просматривать записанные операции. Пункт «Прочие» позволяет искать информацию по серверам.



Как выключить журнал регистраций?

Ведение журнала требует много системных ресурсов. Поэтому некоторые организации стараются его отключить. Конечно, это не совсем верное решение. Поскольку тогда невозможно отслеживать правки, ошибки, сбои. Но если сервер не обладает достаточной мощностью, приходится поступать именно так. Благо выключить опцию несложно.

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



Затем придется отыскать опцию «Не регистрировать», нажать ее, подтвердить решение. После сделанных манипуляций запись исправлений, изменений, правок остановится.



Как выгрузить журнал регистраций

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



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

Как восстановить журнал регистраций

Если оборудование, программное обеспечение или сам журнал работает некорректно, приходится выполнять восстановление данных. В большинстве случае помогает простой перенос содержимого папки 1Cv8Log в другой каталог ИБ. Иначе нужно обращаться к логам и искать причину возникших проблем.

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

Как сократить журнал регистраций?

Даже располагая мощным сервером и запасом места на диске, необходимо оптимизировать объем журнала. Иначе уже через пару лет он разрастется до внушительных размеров. Но делать это нужно аккуратно и через конфигуратор.

Для начала следует отыскать опцию «Настройка журнала регистрации», которая расположена в меню «Администрирование»:



Затем необходимо выполнить приведенную ниже инструкцию:

• Удаляем данные, которые устарели и не нужны;
• Устанавливаем период разделения журнала. Оптимально выставлять значение «День». Это позволит перемещать или архивировать неактуальные сведения без лишних усилий.



Как выполнить очистку журнала регистраций?

Администратору поможет кнопка «Сократить». Достаточно открыть конфигуратор, применить инструкцию, размещенную чуть выше. Что позволит моментально очистить журнал. Хотя стоит сказать, что данный способ неединственный.

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

Как добавить программно запись в журнал?

Иногда требуется записать в текущий журнал не только действия сотрудников, но и иные значимые события. Сделать это можно при помощи специальных команд, встроенных в функционал 1С. Для чего отлично подойдет опция «ЗаписьЖурналаРегистрации()» с набором параметров:

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

Как вернуть старый формат журнала регистраций?

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

Вернуть старый формат не проблема. Достаточно выполнить следующие действия:

1. Отыскать, открыть 1Cv8Log;
2. Удалить скопившиеся файлы;
3. Создать файл типа 1Cv8.lgf.

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

Как перенести журнал регистраций в отдельную базу?

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

Конечно, перенос 1Cv9Log тоже имеет нюансы. Например, при файловом варианте достаточно скопировать вышеуказанный объект и добавить его в соответствующую директорию на новом сервере. Это самый простой способ.

В случае если используется клиент-серверная база, придется немного повозиться. Сначала необходимо отыскать на сервере 1Cv8Reg, затем открыть этот файл. В нем следует вписать правильный идентификатор ИБ (с указанием ID), сохранить изменения. Только после выполнения данных действий папку 1Cv8Log можно перетаскивать в новую директорию.

Хотя если сделать что-то не получается, лучше обратиться к специалистам 1С, заказав соответствующую услугу. Это позволит оперативно устранить неисправность, сбой, проблему. А также сэкономит нервы и деньги. Ведь доработка 1С стоит недорого.

Читайте также: