1С 8.3 Программное чтение записей журнала регистрации - Программист 1С Минск. Автоматизация бизнеса.

Популярные страницы:
Перейти к контенту

1С 8.3 Программное чтение записей журнала регистрации

Данные > Примеры кода 1С > 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);
       Результат.Ссылка=Ссылка;
   КонецЦикла;

   Возврат Результат;

КонецФункции
Поиск кода
0
Комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 14.11.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Назад к содержимому