1с записьжурналарегистрации не работает

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

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

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

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

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

2.2. Уровень важности события. Критичные события, требующие повышенного внимания администратора (ошибки бизнес-логики, сбои в программе, и т.п.), записываются в Журнал регистрации с уровнем важности «Ошибка». Потенциальные проблемы и не фатальные ошибки регистрируются как «Предупреждения». Для вывода информационных сообщений об успешном завершении той или иной операции используется уровень важности «Информация». Также возможно применять и более низкий уровень важности – «Примечание».

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. Не следует использовать выборку из журнала регистрации в тех задачах, где критична высокая скорость выполнения выборки. Поскольку при больших объемах журнала регистрации скорость выборки падает пропорционально увеличению его объема.

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

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

Источник

Программирование в 1С для всех

В этой статье я разберу особенности работы с журналом регистрации. Разберем, для каких целей нужен журнал регистрации.

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

Имейте в виду, что журнал регистрации не хранится в базе данных. Если Вы будете выгружать конфигурацию при помощи dt файла, то его в этой выгрузке не будет. Сам журнал регистрации хранится в виде файла с расширение *.lgd, когда 1С: Предприятие работает под платформой версии 8.3.5 и выше, и в виде файла *.lgf, когда 1С: Предприятие использует платформу младше версии 8.3.5 (или версию 8.3.5, если не произвели конвертацию).

Сам файл хранится в папке 1Cv8Log каталога базы данных (для файлового варианта)

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

В конфигураторе администратор или внедренец может настроить различные варианты сохранения данных в журнал регистрации. Для этого нужно зайти в настройки журнала.

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

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

Обращаю внимание! Слишком раздутый журнал регистрации может очень сильной тормозить 1С: Предприятие. Поэтому если Ваш клиент или работодатель жалуется, что какая-то база сильно тормозит, то одно из мероприятий, которое Вы должны провести – чистка журнала регистрации (не забудьте сделать копию удаляемых данных).

Читайте также:  Мультиварка скороварка редмонд rmc m110 как отремонтировать

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

— обязательный параметр, тип Строка. Можно разделять события точкой, для иерархического отображения. Например: «Обработка проведения.Провели по РН», «Обработка проведения.Провели по РС», «Обработка проведения.Провели по РБ».

— необязательный параметр, тип УровеньЖурналаРегистрации, с его помощью можно указывать, что за событие у нас произошло: Ошибка, Предупреждение, Информация и Примечание:

  • УровеньЖурналаРегистрации.Ошибка
  • УровеньЖурналаРегистрации.Информация
  • УровеньЖурналаРегистрации.Предупреждение
  • УровеньЖурналаРегистрации.Примечание

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

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

— параметр типа РежимТранзакцииЗаписиЖурналаРегистрации. Данный тип имеет два значения: Независимая – запись будет происходить независимо от текущей транзакции. Транзакционная – запись зависит от текущей транзакции.

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

Процедура ОбработкаПроведения ( Отказ , Режим )

// Создание движений в регистре накопления ТоварныеЗапасы
Движения . ТоварныеЗапасы . Записывать = Истина;
Для каждого ТекСтрокаТовары Из Товары Цикл

Движение = Движения . ТоварныеЗапасы . Добавить ();
Движение . ВидДвижения = ВидДвиженияНакопления . Приход ;
Движение . Период = Дата ;
Движение . Товар = ТекСтрокаТовары . Товар ;
Движение . Склад = Склад ;
Движение . Количество = ТекСтрокаТовары . Количество ;

//НИИ 2017-04-19 + фиксируем информаци в ЖР о движении по РН Товарные запасы

ЗаписьЖурналаРегистрации ( «Проведение документа приход товара. Запись в РН Товарные запасы» , УровеньЖурналаРегистрации . Информация ,
Метаданные . Документы . ПриходТовара , ЭтотОбъект . Ссылка ,, РежимТранзакцииЗаписиЖурналаРегистрации . Транзакционная );

// Создание движения в регистре накопления Взаиморасчеты
Движения . Взаиморасчеты . Записывать = Истина;
Движение = Движения . Взаиморасчеты . Добавить ();
Движение . ВидДвижения = ВидДвиженияНакопления . Приход ;
Движение . Период = Дата ;
Движение . Контрагент = Поставщик ;
Движение . Валюта = Валюта ;

Если Валюта . Пустая () Тогда

Движение . Сумма = Товары . Итог ( «Сумма» );

Курс = РегистрыСведений . КурсыВалют . ПолучитьПоследнее ( Дата , Новый Структура ( «Валюта» , Валюта )). Курс ;

Если Курс = 0 Тогда
Движение . Сумма = Товары . Итог ( «Сумма» );
Иначе
Движение . Сумма = Товары . Итог ( «Сумма» ) / Курс ;
КонецЕсли;

//НИИ 2017-04-19 + фиксируем информаци в ЖР о движении по РН Взаиморасчеты
ЗаписьЖурналаРегистрации ( «Проведение документа приход товара. Запись в РН Взаиморасчеты» , УровеньЖурналаРегистрации . Информация ,
Метаданные . Документы . ПриходТовара , ЭтотОбъект . Ссылка ,, РежимТранзакцииЗаписиЖурналаРегистрации . Транзакционная );

Проведем парочку документов «Приход товаров» и посмотрим на наши записи в журнале регистрации.

Обратите внимание, в журнале мы поставили режим транзакции – Транзакционная. И сообщения о записях идут после информации о проведении документа. Если же мы изменим режим на — Независимая, то картинка будет следующей.

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

Читайте также:  Почему не работает нагреватель для аквариума

Я не буду рассматривать все варианты отборов, потому что многие из них очевидно понятны (например, отбор по пользователям или по дате). Рассмотрю лишь некоторые.

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

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

Отберем записи только по нашим событиям.

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

Посмотрим на события в журнале регистрации для этого документа

Так же можно получить события какого-то конкретного объекта метаданных.

Например, получим все события для всех документов «Приход товара»

И еще один полезный отбор – по пользователю. Позволяет узнать делал ли что какой пользователь с объектами базы данных.

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

Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Источник

Оцените статью