1С 8.3 Программное чтение записей журнала регистрации
Данные > Примеры кода 1С > 1С 8.3 Журнал регистрации
Перейти в раздел примеры кода 1С 8.3:
Получение записей из журнала регистрации (программно) в 1С 8.3:
Функция ПрочитатьСобытияЖурналаРегистрации(Результат, НачДата, КонДата) Экспорт
ИмяФайлаXML=ПолучитьИмяВременногоФайла("XML");
Результат.Очистить();
ОтборСобытий=Новый Структура;
ОтборСобытий.Вставить("ДатаНачала", НачДата);
ОтборСобытий.Вставить("ДатаОкончания", КонДата);
ОтборСобытий.Вставить("Событие", "_$Data$_.Post");
// Выгрузка журнала:
ВыгрузитьЖурналРегистрации(ИмяФайлаXML, ОтборСобытий, "Дата, Метаданные, Данные, ПредставлениеДанных, ИмяПользователя");
// Чтение журнала;
XML=Новый ЧтениеXML;
XML.ОткрытьФайл(ИмяФайлаXML);
Построитель_DOM =Новый ПостроительDOM;
Документ_DOM=Построитель_DOM .Прочитать(XML);
Запись=Документ_DOM.ПолучитьЭлементыПоИмени("v8e:Event");
Для НомерЗаписи=0 По Запись.Количество()-1 Цикл
Узлы=Запись[НомерЗаписи].ДочерниеУзлы;
Для Каждого Узел Из Узлы Цикл
Если Узел.ИмяУзла="v8e:Date" Тогда
ДатаУзла=СтрЗаменить(Узел.ТекстовоеСодержимое, "T", "");
ДатаУзла=СтрЗаменить(ДатаУзла, ":", "");
ДатаУзла=Дата(СтрЗаменить(ДатаУзла, "-", ""));
ИначеЕсли Узел.ИмяУзла="v8e:MetadataName" Тогда
МетаданныеДокумента=СтрЗаменить(Узел.ТекстовоеСодержимое, "Document.", "");
ИначеЕсли Узел.ИмяУзла="v8e:Data" Тогда
УИИД=Узел.ТекстовоеСодержимое;
ИначеЕсли Узел.ИмяУзла="v8e:DataPresentation" Тогда
ПредставлениеДанных=Узел.ТекстовоеСодержимое;
ИначеЕсли Узел.ИмяУзла="v8e:UserName" Тогда
ИмяПользователя=Узел.ТекстовоеСодержимое;
КонецЕсли;
КонецЦикла;
Ссылка=Документы[МетаданныеДокумента].ПолучитьСсылку(Новый УникальныйИдентификатор(УИИД));
ОбъектДата=Ссылка.Дата;
Результат=Результат.Добавить();
Результат.ДатаСобытия=ДатаУзла;
Результат.ДатаОбъекта=ОбъектДата;
Результат.ПредставлениеДанных=ПредставлениеДанных;
Результат.Пользователь=ИмяПользователя;
Результат.РазностьДат=Окр((ДатаУзла-ОбъектДата)/86400);
Результат.Ссылка=Ссылка;
КонецЦикла;
Возврат Результат;
КонецФункции
ИмяФайлаXML=ПолучитьИмяВременногоФайла("XML");
Результат.Очистить();
ОтборСобытий=Новый Структура;
ОтборСобытий.Вставить("ДатаНачала", НачДата);
ОтборСобытий.Вставить("ДатаОкончания", КонДата);
ОтборСобытий.Вставить("Событие", "_$Data$_.Post");
// Выгрузка журнала:
ВыгрузитьЖурналРегистрации(ИмяФайлаXML, ОтборСобытий, "Дата, Метаданные, Данные, ПредставлениеДанных, ИмяПользователя");
// Чтение журнала;
XML=Новый ЧтениеXML;
XML.ОткрытьФайл(ИмяФайлаXML);
Построитель_DOM =Новый ПостроительDOM;
Документ_DOM=Построитель_DOM .Прочитать(XML);
Запись=Документ_DOM.ПолучитьЭлементыПоИмени("v8e:Event");
Для НомерЗаписи=0 По Запись.Количество()-1 Цикл
Узлы=Запись[НомерЗаписи].ДочерниеУзлы;
Для Каждого Узел Из Узлы Цикл
Если Узел.ИмяУзла="v8e:Date" Тогда
ДатаУзла=СтрЗаменить(Узел.ТекстовоеСодержимое, "T", "");
ДатаУзла=СтрЗаменить(ДатаУзла, ":", "");
ДатаУзла=Дата(СтрЗаменить(ДатаУзла, "-", ""));
ИначеЕсли Узел.ИмяУзла="v8e:MetadataName" Тогда
МетаданныеДокумента=СтрЗаменить(Узел.ТекстовоеСодержимое, "Document.", "");
ИначеЕсли Узел.ИмяУзла="v8e:Data" Тогда
УИИД=Узел.ТекстовоеСодержимое;
ИначеЕсли Узел.ИмяУзла="v8e:DataPresentation" Тогда
ПредставлениеДанных=Узел.ТекстовоеСодержимое;
ИначеЕсли Узел.ИмяУзла="v8e:UserName" Тогда
ИмяПользователя=Узел.ТекстовоеСодержимое;
КонецЕсли;
КонецЦикла;
Ссылка=Документы[МетаданныеДокумента].ПолучитьСсылку(Новый УникальныйИдентификатор(УИИД));
ОбъектДата=Ссылка.Дата;
Результат=Результат.Добавить();
Результат.ДатаСобытия=ДатаУзла;
Результат.ДатаОбъекта=ОбъектДата;
Результат.ПредставлениеДанных=ПредставлениеДанных;
Результат.Пользователь=ИмяПользователя;
Результат.РазностьДат=Окр((ДатаУзла-ОбъектДата)/86400);
Результат.Ссылка=Ссылка;
КонецЦикла;
Возврат Результат;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник