Глобальный контекст.ПолучитьИспользованиеЖурналаРегистрации

Методы · GetEventLogUsing

Проверяет, осуществляется ли в журнале регистрация события заданного уровня важности.

Синтаксис

ПолучитьИспользованиеЖурналаРегистрации()
Полное описание, параметры и ограничения

Глобальный контекст.ПолучитьИспользованиеЖурналаРегистрации (Global context.GetEventLogUsing)

Глобальный контекст (Global context)

ПолучитьИспользованиеЖурналаРегистрации (GetEventLogUsing)

Доступен, начиная с версии 8.1.

Синтаксис:
ПолучитьИспользованиеЖурналаРегистрации()
Возвращаемое значение:
Тип: Массив.
Массив состоит из значений типа УровеньЖурналаРегистрации. для которых включена регистрация событий в журнале.
Если регистрация отключена, возвращается пустой массив.
Описание:

Проверяет, осуществляется ли в журнале регистрация события заданного уровня важности.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Проверить, что независимая запись журнала не исчезает при отмене транзакции

Отмена прикладной транзакции не обязана удалять диагностику. В собственной базе задаём Независимая явно и проверяем одно событие после отмены, не записывая прикладные объекты.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ отдельную пустую файловую базу на 8.5.1.1343. Корневое имя конфигурации УчебныйЖурнал85. Рабочий журнал УТ/КА2/УНФ/БП не используйте.

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

  3. Фрагмент вставьте в тело процедуры; каждый урок запускайте отдельно. Код НЕ включает регистрацию автоматически и НЕ меняет настройки журнала.

  4. Уроки с ЗаписьЖурналаРегистрации оставляют собственные события в журнале учебной базы. Это реальная диагностическая запись, не запись прикладного документа. Очистка/сокращение журнала не выполняются.

  5. В тексты/Данные не добавляйте токены, пароли, персональные сведения или полные ответы сервисов. Выгрузка ограничена собственным случайным именем события и безопасными колонками, XML-файл не создаётся.

Уровни = ПолучитьИспользованиеЖурналаРегистрации();
Если Уровни.Найти(УровеньЖурналаРегистрации.Информация) = Неопределено Тогда
    ВызватьИсключение "В собственной учебной базе уровень Информация не разрешён. Настройки кодом не менялись";
КонецЕсли;
Если ТранзакцияАктивна() Тогда
    ВызватьИсключение "Запускайте урок без внешней активной транзакции";
КонецЕсли;
ИмяСобытия = "УчебныйЖурнал85.Отмена." + Строка(Новый УникальныйИдентификатор);
НачатьТранзакцию();
Попытка
    ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация, , ,
        "Независимая учебная диагностика до отмены", РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
    ОтменитьТранзакцию();
Исключение
    Если ТранзакцияАктивна() Тогда ОтменитьТранзакцию(); КонецЕсли;
    ВызватьИсключение;
КонецПопытки;
Сообщить(Не ТранзакцияАктивна());
События = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(События, Новый Структура("Событие", ИмяСобытия), "Событие,Комментарий", , 1);
Сообщить(События.Количество() = 1);
Если События.Количество() = 1 Тогда
    Сообщить(События[0].Комментарий = "Независимая учебная диагностика до отмены");
КонецЕсли;

Разбор по шагам

  1. Проверяем отсутствие внешней транзакции, чтобы не отменить чужую работу.

  2. Начинаем собственную транзакцию, но не записываем документы/регистры.

  3. У записи журнала явно задан режим Независимая: её сохранение не связано с отменой прикладной транзакции.

  4. Отменяем собственную транзакцию на обычном пути и при исключении; фиксации нет.

  5. После отмены выгружаем максимум одно событие только своего UUID и проверяем комментарий.

Как проверить результат

  1. Три логические проверки дают Истина при разрешённом уровне и доступном журнале.

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

Ожидаемый результат

На отдельном событии разобрана граница между отменой транзакции и жизнью независимой диагностики.

На что обратить внимание

  1. Отмена транзакции не является очисткой журнала и не откатывает внешние HTTP-вызовы/файлы.

  2. Не переносите вывод на другие режимы записи журнала без отдельной проверки.

  3. Если уровень выключен или журнал недоступен, отсутствие строки не доказывает её удаление отменой.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Различить идентификатор события и его представление для отбора

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

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ отдельную пустую файловую базу на 8.5.1.1343. Корневое имя конфигурации УчебныйЖурнал85. Рабочий журнал УТ/КА2/УНФ/БП не используйте.

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

  3. Фрагмент вставьте в тело процедуры; каждый урок запускайте отдельно. Код НЕ включает регистрацию автоматически и НЕ меняет настройки журнала.

  4. Уроки с ЗаписьЖурналаРегистрации оставляют собственные события в журнале учебной базы. Это реальная диагностическая запись, не запись прикладного документа. Очистка/сокращение журнала не выполняются.

  5. В тексты/Данные не добавляйте токены, пароли, персональные сведения или полные ответы сервисов. Выгрузка ограничена собственным случайным именем события и безопасными колонками, XML-файл не создаётся.

Уровни = ПолучитьИспользованиеЖурналаРегистрации();
Если Уровни.Найти(УровеньЖурналаРегистрации.Информация) = Неопределено Тогда
    ВызватьИсключение "В собственной учебной базе уровень Информация не разрешён. Настройки кодом не менялись";
КонецЕсли;
ИмяСобытия = "УчебныйЖурнал85.Маркер." + Строка(Новый УникальныйИдентификатор);
ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация, , , "Собственный маркер без секретов");
Представление = ПредставлениеСобытияЖурналаРегистрации(ИмяСобытия);
Сообщить("Идентификатор: " + ИмяСобытия);
Сообщить("Представление: " + Представление);
Сообщить("Использование события: " + Строка(ПолучитьИспользованиеСобытияЖурналаРегистрации(ИмяСобытия)));
ЗначенияОтбора = ПолучитьЗначенияОтбораЖурналаРегистрации("Событие");
СписокСобытий = Неопределено;
Если Не ЗначенияОтбора.Свойство("Событие", СписокСобытий) Тогда
    ВызватьИсключение "В результате отсутствует запрошенная колонка Событие";
КонецЕсли;
НайденМаркер = Ложь;
Для Каждого Пара Из СписокСобытий Цикл
    Если Пара.Ключ = ИмяСобытия Тогда
        НайденМаркер = Истина;
        Сообщить("Представление из отбора: " + Строка(Пара.Значение));
    КонецЕсли;
КонецЦикла;
Сообщить(НайденМаркер);

Разбор по шагам

  1. Записываем случайное собственное имя события без системного префикса и без секретов.

  2. ПредставлениеСобытияЖурналаРегистрации используется для отображения; точный идентификатор сохраняем отдельно для отбора.

  3. ПолучитьИспользованиеСобытияЖурналаРегистрации читает режим, не включает событие.

  4. ПолучитьЗначенияОтбора возвращает Структура. Её Событие содержит Соответствие идентификатор → представление.

  5. Выводим только свою пару. Параметр Колонки не расширяем до Пользователь/Компьютер/портов/разделителей.

Как проверить результат

  1. НайденМаркер даёт Истина при разрешённой регистрации и доступном журнале.

  2. В сообщениях показан только новый собственный UUID события, его представление и режим; чужие события из цикла не печатаются.

Ожидаемый результат

Показан контракт вложенного результата значений отбора и разделение кода/подписи события.

На что обратить внимание

  1. Идентификатор и локализованное представление не всегда совпадают; для отбора используйте идентификатор.

  2. Режим события и разрешённый уровень — разные настройки; существование имени не гарантирует регистрацию любого уровня.

  3. Собственный маркер остаётся в журнале учебной базы. Не очищайте рабочий журнал.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.