RDT1C/DataProcessors/ирКонсольЗаданий/Ext/ObjectModule.bsl
Администратор f2cd194eef .
2020-09-07 08:00:19 +03:00

99 lines
8.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//ирПортативный Перем ирПортативный Экспорт;
//ирПортативный Перем ирОбщий Экспорт;
//ирПортативный Перем ирСервер Экспорт;
//ирПортативный Перем ирКэш Экспорт;
//ирПортативный Перем ирПривилегированный Экспорт;
Перем ТаблицаАктивныхФоновыхЗаданий Экспорт;
Функция ДлительностьФоновогоЗадания(ФоновоеЗадание) Экспорт
#Если Сервер И Не Сервер Тогда
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору();
#КонецЕсли
Если Не ЗначениеЗаполнено(ФоновоеЗадание.Конец) Тогда
Длительность = ТекущаяДата() - ФоновоеЗадание.Начало;
Иначе
Длительность = ФоновоеЗадание.Конец - ФоновоеЗадание.Начало;
КонецЕсли;
Возврат Длительность;
КонецФункции
Процедура ОбновитьСтрокуФоновогоЗадания(Знач СтрокаСпискаФоновыхЗаданий, Знач ФоновоеЗадание = Неопределено, Знач Длительность = Неопределено) Экспорт
Если ФоновоеЗадание = Неопределено Тогда
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Новый УникальныйИдентификатор(СтрокаСпискаФоновыхЗаданий.Идентификатор));
КонецЕсли;
Если Длительность = Неопределено Тогда
Длительность = ДлительностьФоновогоЗадания(ФоновоеЗадание);
КонецЕсли;
СтрокаСпискаФоновыхЗаданий.Наименование = ФоновоеЗадание.Наименование;
СтрокаСпискаФоновыхЗаданий.Ключ = ФоновоеЗадание.Ключ;
СтрокаСпискаФоновыхЗаданий.ИмяМетода = ФоновоеЗадание.ИмяМетода;
СтрокаСпискаФоновыхЗаданий.Начало = ФоновоеЗадание.Начало;
СтрокаСпискаФоновыхЗаданий.Конец = ФоновоеЗадание.Конец;
СтрокаСпискаФоновыхЗаданий.Длительность = Длительность;
СтрокаСпискаФоновыхЗаданий.Сервер = ФоновоеЗадание.Расположение;
Если ФоновоеЗадание.ИнформацияОбОшибке <> Неопределено Тогда
СтрокаСпискаФоновыхЗаданий.Ошибка = ПодробноеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке);
КонецЕсли;
Если ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
СтрокаАктивногоФоновогоЗадания = ТаблицаАктивныхФоновыхЗаданий.Найти(ФоновоеЗадание.УникальныйИдентификатор, "Идентификатор");
Если СтрокаАктивногоФоновогоЗадания <> Неопределено Тогда
СтрокаСпискаФоновыхЗаданий.НомерСеанса = СтрокаАктивногоФоновогоЗадания.НомерСеанса;
СтрокаСпискаФоновыхЗаданий.НомерСоединения = СтрокаАктивногоФоновогоЗадания.НомерСоединения;
КонецЕсли;
КонецЕсли;
СтрокаСпискаФоновыхЗаданий.Идентификатор = ФоновоеЗадание.УникальныйИдентификатор;
СтрокаСпискаФоновыхЗаданий.СостояниеЗадания = ФоновоеЗадание.Состояние;
СтрокаСпискаФоновыхЗаданий.СостояниеПредставление = ФоновоеЗадание.Состояние;
СтрокаСпискаФоновыхЗаданий.РазделениеДанных = ФоновоеЗадание.РазделениеДанных;
СтрокаСпискаФоновыхЗаданий.РазделениеДанныхПредставление = ирОбщий.РасширенноеПредставлениеЗначенияЛкс(ФоновоеЗадание.РазделениеДанных);
КонецПроцедуры
Функция ОтборДляЖурналаПоФоновымЗаданиям(Знач ТекущаяСтрока = Неопределено) Экспорт
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("ИмяПриложения", "BackgroundJob");
Если Истина
И ТекущаяСтрока <> Неопределено
И ЗначениеЗаполнено(ТекущаяСтрока.НомерСеанса)
Тогда
СтруктураОтбора.Вставить("Сеанс", ТекущаяСтрока.НомерСеанса);
КонецЕсли;
Возврат СтруктураОтбора;
КонецФункции
Процедура ОткрытьОшибкиЖРПоЗаданию(Знач ВыбраннаяСтрока) Экспорт
СтруктураОтбора = ОтборДляЖурналаПоФоновымЗаданиям(ВыбраннаяСтрока);
СтруктураОтбора.Вставить("Уровень", "Ошибка");
АнализЖурналаРегистрации = ирОбщий.ПолучитьОбъектПоПолномуИмениМетаданныхЛкс("Обработка.ирАнализЖурналаРегистрации");
#Если Сервер И Не Сервер Тогда
АнализЖурналаРегистрации = Обработки.ирАнализЖурналаРегистрации.Создать();
#КонецЕсли
АнализЖурналаРегистрации.ОткрытьСОтбором(ВыбраннаяСтрока.Начало, ВыбраннаяСтрока.Конец, СтруктураОтбора);
КонецПроцедуры
//ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла);
//ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули\")) + "ирПортативный.epf";
//ирПортативный #Если Клиент Тогда
//ирПортативный Контейнер = Новый Структура();
//ирПортативный Оповестить("ирПолучитьБазовуюФорму", Контейнер);
//ирПортативный Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда
//ирПортативный ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля);
//ирПортативный ирПортативный.Открыть();
//ирПортативный КонецЕсли;
//ирПортативный #Иначе
//ирПортативный ирПортативный = ВнешниеОбработки.Создать(ПолноеИмяФайлаБазовогоМодуля, Ложь); // Это будет второй экземпляр объекта
//ирПортативный #КонецЕсли
//ирПортативный ирОбщий = ирПортативный.ПолучитьОбщийМодульЛкс("ирОбщий");
//ирПортативный ирКэш = ирПортативный.ПолучитьОбщийМодульЛкс("ирКэш");
//ирПортативный ирСервер = ирПортативный.ПолучитьОбщийМодульЛкс("ирСервер");
//ирПортативный ирПривилегированный = ирПортативный.ПолучитьОбщийМодульЛкс("ирПривилегированный");