diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl index 59360f29..f2a096b0 100644 --- a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl @@ -163,6 +163,7 @@ Процедура ВызватьСледующийОбработчик(ПараметрыИсполнения, Результат = Неопределено) Обработчик = СледующийОбработчик(ПараметрыИсполнения); + ЮТЛогирование.Отладка("Вызов обработчика исполнителя: " + Обработчик.ИмяПроцедуры); ВыполнитьОбработкуОповещения(Обработчик, Результат); КонецПроцедуры @@ -170,7 +171,10 @@ Функция СледующийОбработчик(ПараметрыИсполнения) ПараметрыИсполнения.ИндексСледующегоОбработчика = ПараметрыИсполнения.ИндексСледующегоОбработчика + 1; - Возврат ПараметрыИсполнения.Цепочка[ПараметрыИсполнения.ИндексСледующегоОбработчика]; + Обработчик = ПараметрыИсполнения.Цепочка[ПараметрыИсполнения.ИндексСледующегоОбработчика]; + ЮТЛогирование.Отладка("Следующий обработчик исполнителя: " + Обработчик.ИмяПроцедуры); + + Возврат Обработчик; КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl index 91098951..f10639a6 100644 --- a/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl @@ -60,6 +60,11 @@ #КонецЕсли Объект = ДанныеКонтекста(); + + Если Объект = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + Ключи = СтрРазделить(ИмяРеквизита, "."); Для Инд = 0 По Ключи.Количество() - 2 Цикл Объект = Объект[Ключи[Инд]]; diff --git a/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl index 78372383..95f1806b 100644 --- a/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl @@ -60,15 +60,16 @@ Файл = Новый Файл(ПутьКФайлу); #Если Клиент Тогда - Если Обработчик = Неопределено Тогда - Возврат Файл.ЭтоКаталог(); - Иначе - Файл.НачатьПроверкуЭтоКаталог(Обработчик); + Если Обработчик <> Неопределено Тогда + ОбработчикПолученияАтрибута = ОбработчикПолученияАтрибута(Файл, "ЭтоКаталог", Обработчик, Ложь); + Файл.НачатьПроверкуСуществования(ОбработчикПолученияАтрибута); + + Возврат Неопределено; КонецЕсли; -#Иначе - Возврат Файл.ЭтоКаталог(); #КонецЕсли + Возврат Файл.Существует() И Файл.ЭтоКаталог(); + КонецФункции // Возвращает путь к вложенному элементу @@ -103,3 +104,31 @@ КонецФункции #КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Если Клиент Тогда +Функция ОбработчикПолученияАтрибута(Файл, ИмяАтрибута, Обработчик, ЗначениеПоУмолчанию = Неопределено) + + Параметры = Новый Структура("Файл, ИмяАтрибута, Обработчик", Файл, ИмяАтрибута, Обработчик); + Параметры.Вставить("ЗначениеПоУмолчанию", ЗначениеПоУмолчанию); + + Возврат Новый ОписаниеОповещения("ПолучитьАтрибутФайла", ЮТФайлы, Параметры); + +КонецФункции + +Процедура ПолучитьАтрибутФайла(Результат, Параметры) Экспорт + + Если НЕ Результат Тогда + ВыполнитьОбработкуОповещения(Параметры.Обработчик, Параметры.ЗначениеПоУмолчанию); + Возврат; + КонецЕсли; + + Если Параметры.ИмяАтрибута = "ЭтоКаталог" Тогда + Параметры.Файл.НачатьПроверкуЭтоКаталог(Параметры.Обработчик); + КонецЕсли; + +КонецПроцедуры +#КонецЕсли + +#КонецОбласти