mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
Исправлена внесенная ошибка вызова нескольких переопределенных обработчиков событий
This commit is contained in:
parent
9ba62c50af
commit
84b29500ad
@ -218,10 +218,19 @@
|
||||
|
||||
Процедура ВызватьОбработкуСобытий(События, ОписаниеСобытия)
|
||||
|
||||
Для каждого ИмяСобытия Из События Цикл
|
||||
ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия);
|
||||
Если ОбработчикСобытияПереопределен(ИмяСобытия) Тогда
|
||||
Прервать;
|
||||
Для ы = 0 По События.ВГраница() Цикл
|
||||
ИмяСобытия = События[ы];
|
||||
ПропуститьОбработчикТестовогоМодуля = (ы > 0 И ОбработчикСобытияПереопределен(ИмяСобытия));
|
||||
Если ПропуститьОбработчикТестовогоМодуля Тогда
|
||||
|
||||
Параметры = ЮТОбщий.ЗначениеВМассиве(ОписаниеСобытия);
|
||||
Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
|
||||
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
|
||||
|
||||
Иначе
|
||||
|
||||
ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия);
|
||||
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
@ -239,9 +248,7 @@
|
||||
Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Ошибка Из Ошибки Цикл
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка);
|
||||
КонецЦикла;
|
||||
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -254,10 +261,10 @@
|
||||
Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
|
||||
ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяСобытия);
|
||||
Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия);
|
||||
КонецЕсли;
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
Ошибки.Добавить(Ошибка);
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
Ошибки.Добавить(Ошибка);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
@ -274,25 +281,29 @@
|
||||
//
|
||||
Процедура ВызватьОбработчикТестовогоМодуля(Знач ИмяСобытия, ОписаниеСобытия)
|
||||
|
||||
ИмяМодуля = ОписаниеСобытия.Модуль.МетаданныеМодуля.Имя;
|
||||
|
||||
ОбработчикСобытияПереопределен = ОбработчикСобытияПереопределен(ИмяСобытия);
|
||||
Если ОбработчикСобытияПереопределен Тогда
|
||||
ИмяСобытия = ПереопределенноеИмяСобытия(ИмяСобытия);
|
||||
КонецЕсли;
|
||||
|
||||
ИмяМодуля = ОписаниеСобытия.Модуль.МетаданныеМодуля.Имя;
|
||||
|
||||
ЧастиКоманды = СтрРазделить(ИмяСобытия, ".");
|
||||
Если ЧастиКоманды.Количество() = 2 Тогда
|
||||
ИмяМодуля = ЧастиКоманды[0];
|
||||
ИмяСобытия = ЧастиКоманды[1];
|
||||
КонецЕсли;
|
||||
|
||||
Ошибка = Неопределено;
|
||||
Ошибки = Новый Массив();
|
||||
Команда = СтрШаблон("%1.%2()", ИмяМодуля, ИмяСобытия);
|
||||
Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
|
||||
|
||||
Ошибка = ЮТОбщий.ВыполнитьМетод(Команда);
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
Ошибки.Добавить(Ошибка);
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ОбработчикСобытияПереопределен Тогда
|
||||
|
||||
ТекстИсключения = СтрШаблон("Не найден обработчик тестового модуля %1", Команда);
|
||||
@ -300,9 +311,15 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки)
|
||||
|
||||
Для Каждого Ошибка Из Ошибки Цикл
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user