1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-03-17 20:48:01 +02:00

Исправлена внесенная ошибка вызова нескольких переопределенных обработчиков событий

This commit is contained in:
Potoyalo 2023-07-30 17:04:14 +07:00
parent 9ba62c50af
commit 84b29500ad

View File

@ -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 @@
КонецЕсли;
Если Ошибка <> Неопределено Тогда
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
КонецПроцедуры
Процедура ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки)
Для Каждого Ошибка Из Ошибки Цикл
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка);
КонецЕсли;
КонецЦикла;
КонецПроцедуры