diff --git a/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl index 7fe5c1fb..2508fd17 100644 --- a/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl @@ -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 @@ КонецЕсли; - Если Ошибка <> Неопределено Тогда + ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки); + +КонецПроцедуры + +Процедура ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки) + + Для Каждого Ошибка Из Ошибки Цикл ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка); - КонецЕсли; + КонецЦикла; КонецПроцедуры