Skip to content

Commit

Permalink
Merge pull request #475 from bia-technologies/feature/474
Browse files Browse the repository at this point in the history
474 / Исправлена ошибка инициализации логирования при указании недоступного файла вывода
  • Loading branch information
alkoleft authored Dec 24, 2024
2 parents ab80185 + b924b2f commit ed43933
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 137 deletions.
139 changes: 22 additions & 117 deletions exts/smoke/src/CommonModules/ДТОткрытиеФорм/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -61,82 +61,6 @@

КонецФункции

//Процедура ЗарегистрироватьТестыФормы(ОписаниеОбъекта, ТипТеста)
//
//
// ТипыТестов = ДТОткрытиеФормСлужебныйКлиентСервер.ТипыТестов();
//
// Если ОписаниеФормы.ЭтоФормаОбъекта И ОписаниеФормы.ЭтоФормаГруппы Тогда
//
// ОписаниеФормы.ТипФормы = "ФормаГруппы";
//
// Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "новой группы");
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированной группы");
// КонецЕсли;
// Если ОписаниеОбъектаМетаданных.Редактирование Тогда
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующей группы");
// Иначе
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующей группы");
// КонецЕсли;
//
// ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда
//
// ОписаниеФормы.ТипФормы = "ФормаОбъекта";
// Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "нового объекта");
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированного объекта");
// КонецЕсли;
// Если ОписаниеОбъектаМетаданных.Редактирование Тогда
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующего объекта");
// Иначе
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующего объекта");
// КонецЕсли;
//
// ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора И ОписаниеФормы.ЭтоФормаГруппы Тогда
//
// ОписаниеФормы.ТипФормы = "ФормаВыбораГруппы";
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Выбор, "выбора группы");
//
// ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора Тогда
//
// ОписаниеФормы.ТипФормы = "ФормаВыбора";
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Выбор, "выбора");
//
// ИначеЕсли ОписаниеФормы.ЭтоФормаСписка Тогда
//
// ОписаниеФормы.ТипФормы = "ФормаСписка";
// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Список, "списка");
//
// КонецЕсли;
//
//КонецПроцедуры
//
//Функция ИсключитьТипТеста(Настройки, ТипМетаданного, ТипТеста)
//
// НастройкаТипаТеста = Неопределено;
// НастройкаТипаМетаданных = Неопределено;
//
// Возврат (Настройки.Свойство(ТипТеста, НастройкаТипаТеста) И НЕ НастройкаТипаТеста.Использовать)
// Или (Настройки.Свойство(ТипМетаданного, НастройкаТипаМетаданных)
// И НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста)
// И НЕ НастройкаТипаТеста.Использовать);
//
//КонецФункции
//
//Функция ТестПодходитПодИсключения(Настройки, ОписаниеФормы, ТипТеста)
//
// НастройкаТипаМетаданных = Неопределено;
// НастройкаТипаТеста = Неопределено;
// Если Настройки.Свойство(ОписаниеФормы.Владелец.Тип, НастройкаТипаМетаданных) Тогда
// НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста);
// КонецЕсли;
//
// Возврат НастройкаТипаТеста <> Неопределено И
// ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодИсключения(ОписаниеФормы.Владелец.Имя, НастройкаТипаТеста.Исключения);
//
//КонецФункции
//
Процедура ЗарегистрироватьТест(ОписаниеОбъекта, ТипТеста, Представление)

ИмяМетода = СтрШаблон("ОткрытьФорму_%1", ТипТеста);
Expand All @@ -147,28 +71,6 @@

КонецПроцедуры

//Функция ОтборМетаданных(Настройки)
//
// Отбор = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки();
// ТипыМетаданных = ЮТМетаданные.ТипыМетаданных();
// Отбор.Исключения = Настройки.Исключения;
//
// Для Каждого Элемент Из Настройки Цикл
//
// Если ТипыМетаданных.Свойство(Элемент.Ключ) Тогда
// ОтборТипаМетаданных = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки();
// ОтборТипаМетаданных.Использовать = Элемент.Значение.Использовать;
// ОтборТипаМетаданных.Исключения = Элемент.Значение.Исключения;
//
// Отбор.Вставить(Элемент.Ключ, ОтборТипаМетаданных);
// КонецЕсли;
//
// КонецЦикла;
//
// Возврат Отбор;
//
//КонецФункции
//
#Область Тесты

Процедура ОткрытьФорму_Новый(ОписаниеОбъекта) Экспорт
Expand Down Expand Up @@ -280,47 +182,50 @@
Параметры = Новый Структура("Ключ", Ключ);

Попытка
//@skip-check use-non-recommended-method
Форма = ПолучитьФорму(ПолноеИмяФормы, Параметры, , Новый УникальныйИдентификатор); // BSLLS:GetFormMethod-off
//@skip-check use-non-recommended-method
Форма = ПолучитьФорму(ПолноеИмяФормы, Параметры, , Новый УникальныйИдентификатор); // BSLLS:GetFormMethod-off
Исключение
ЮТЛогирование.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Ошибка получения (создания) формы");
ВызватьИсключение
КонецПопытки;

Если Форма = Неопределено Тогда
ВызватьИсключение "Не удалось получить форму";
КонецЕсли;
ЮТест.ОжидаетЧто(Форма)
.НеРавно(Неопределено, "Не удалось получить форму");

ЭтоУправляемаяФорма = ЭтоУправляемаяФорма(Форма);
ЮТЛогирование.Отладка(" Тип формы: " + Формат(ЭтоУправляемаяФорма, "БЛ='Обычная форма'; БИ='Управляемая форма';"));

Попытка
Форма.Открыть();
Исключение
ЮТЛогирование.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Ошибка открытия формы");
ВызватьИсключение
КонецПопытки;

Если Форма.Открыта() Тогда
Попытка
ЮТест.ОжидаетЧто(Форма.Открыта(), "Не удалось открыть форму")
.ЭтоИстина();

Попытка
Если ЭтоУправляемаяФорма Тогда
Форма.ОбновитьОтображениеДанных();
Иначе
Форма.Обновить();
КонецЕсли;
Исключение
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Ошибка обновления данных формы");
ВызватьИсключение;
КонецПопытки;

Форма.Модифицированность = Ложь;
КонецПопытки;

Форма.Модифицированность = Ложь;
Попытка
Форма.Закрыть();
Если Форма.Открыта() Тогда
ВызватьИсключение "Не удалось закрыть форму";
КонецЕсли;
Иначе
ВызватьИсключение "Не удалось открыть форму";
КонецЕсли;
Исключение
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Ошибка закрытия формы");
ВызватьИсключение;
КонецПопытки;

ЮТест.ОжидаетЧто(Форма.Открыта(), "Не удалось закрыть форму")
.ЭтоЛожь();

КонецПроцедуры

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,10 @@
// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
Процедура Инициализация(ПараметрыЗапуска) Экспорт

УровниЛога = ЮТЛогирование.УровниЛога();

ДанныеКонтекста = НовыйДанныеКонтекста();
ДанныеКонтекста.ФайлЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file");
ДанныеКонтекста.ВыводВКонсоль = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь);
ДанныеКонтекста.Включено = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено);
УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка);

Если ДанныеКонтекста.Включено = Неопределено Тогда
ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога);
Expand All @@ -99,23 +96,8 @@
Возврат;
КонецЕсли;

Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 99;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 10;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Предупреждение) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 20;
Иначе
ДанныеКонтекста.УровеньЛога = 0;
КонецЕсли;

ЗначениеПроверки = Строка(Новый УникальныйИдентификатор());
ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь);

Если ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога) Тогда
ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога,
ЗначениеПроверки);
КонецЕсли;
ОпределитьУровеньЛоги(ДанныеКонтекста, ПараметрыЗапуска);
ОпределитьДоступностьЛогированияВФайл(ДанныеКонтекста);

ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);

Expand Down Expand Up @@ -407,4 +389,45 @@

#КонецОбласти

Процедура ОпределитьУровеньЛоги(ДанныеКонтекста, ПараметрыЗапуска)

УровниЛога = ЮТЛогирование.УровниЛога();
УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка);

Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 99;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 10;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Предупреждение) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 20;
Иначе
ДанныеКонтекста.УровеньЛога = 0;
КонецЕсли;

КонецПроцедуры

Процедура ОпределитьДоступностьЛогированияВФайл(ДанныеКонтекста)

ЗначениеПроверки = Строка(Новый УникальныйИдентификатор());
Попытка
ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь);
ДанныеЗаписаны = Истина;
Исключение
Сообщение = СтрШаблон("Не удалось записать данные в лог файл: %1.
|Логирование в файл отключено", ДанныеКонтекста.ФайлЛога);
ЮТОбщий.СообщитьПользователю(Сообщение);
Если ДанныеКонтекста.ВыводВКонсоль Тогда
ЗаписатьЛогВКонсоль(Сообщение);
КонецЕсли;
ДанныеКонтекста.ФайлЛога = Неопределено;
ДанныеЗаписаны = Ложь;
КонецПопытки;

Если ДанныеЗаписаны И ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога) Тогда
ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога,
ЗначениеПроверки);
КонецЕсли;

КонецПроцедуры

#КонецОбласти

0 comments on commit ed43933

Please sign in to comment.