1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-12-03 08:45:31 +02:00

Исправил ошибку определения предиката для массива

This commit is contained in:
Lyubanevich Dmitri 2023-06-08 16:45:19 +03:00
parent 768e6f6183
commit 660f807d0c

View File

@ -64,11 +64,11 @@
ТипПараметра = ТипЗнч(Предикаты);
Если ТипПараметра = Тип("ОбщийМодуль") И Предикаты = ЮТПредикаты Тогда
Если ЭтоПредикатОбщийМодуль(ТипПараметра, Предикаты) Тогда
Результат = ЮТПредикаты.Получить();
ИначеЕсли ТипПараметра = Тип("Массив") И (Предикаты.Количество() = 0 ИЛИ ЮТОбщий.ТипСтруктуры(Предикаты[0]) = "Предикат") Тогда
ИначеЕсли ЭтоПредикатМассив(ТипПараметра, Предикаты) Тогда
Результат = Предикаты;
ИначеЕсли ТипПараметра = Тип("Структура") И ЮТОбщий.ТипСтруктуры(Предикаты) = "Предикат" Тогда
ИначеЕсли ЭтоПредикатСтруктура(ТипПараметра, Предикаты) Тогда
Результат = ЮТОбщий.ЗначениеВМассиве(Предикаты);
Иначе
ВызватьИсключение "Некорректный параметр метода `ЮТПредикатыКлиентСервер.НаборПредикатов`";
@ -78,12 +78,20 @@
КонецФункции
// Это предикат
//
// Параметры:
// Предикаты - Произвольный - значение, для которого будет определено является ли оно предикатом или нет
//
// Возвращаемое значение:
// Булево
Функция ЭтоПредикат(Предикаты) Экспорт
ТипПараметра = ТипЗнч(Предикаты);
Возврат (ТипПараметра = Тип("ОбщийМодуль") И Предикаты = ЮТПредикаты)
ИЛИ (ТипПараметра = Тип("Массив") И Предикаты.Количество() И ЮТОбщий.ТипСтруктуры(Предикаты[0]) = "Предикат")
ИЛИ (ТипПараметра = Тип("Структура") И ЮТОбщий.ТипСтруктуры(Предикаты) = "Предикат");
Возврат ЭтоПредикатОбщийМодуль(ТипПараметра, Предикаты)
Или ЭтоПредикатМассив(ТипПараметра, Предикаты)
Или ЭтоПредикатСтруктура(ТипПараметра, Предикаты);
КонецФункции
@ -167,6 +175,29 @@
КонецФункции
// Параметры сообщений об ошибке.
//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
// ТекстПроверяемоеЗначение - Строка - Человекочитаемое описание проверяемого значения
// ПредставлениеПроверяемогоЗначения - Неопределено - Представление проверяемого значения
//
// Возвращаемое значение:
// Структура - Параметры сообщений об ошибке:
// * ОписаниеПроверки - Неопределено, Строка - Описание конкретной проверки
// * ТекстПроверяемоеЗначение - Неопределено, Строка - Человекочитаемое описание проверяемого значения
// * ПредставлениеПроверяемогоЗначения - Неопределено, Строка -
Функция ПараметрыСообщенийОбОшибке(ОписаниеПроверки = Неопределено,
ТекстПроверяемоеЗначение = "проверяемое значение",
ПредставлениеПроверяемогоЗначения = Неопределено) Экспорт
Возврат Новый Структура("ОписаниеПроверки, ТекстПроверяемоеЗначение, ПредставлениеПроверяемогоЗначения",
ОписаниеПроверки,
ТекстПроверяемоеЗначение,
ПредставлениеПроверяемогоЗначения);
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@ -257,26 +288,25 @@
КонецПроцедуры
// Параметры сообщений об ошибке.
//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
// ТекстПроверяемоеЗначение - Строка - Человекочитаемое описание проверяемого значения
// ПредставлениеПроверяемогоЗначения - Неопределено - Представление проверяемого значения
//
// Возвращаемое значение:
// Структура - Параметры сообщений об ошибке:
// * ОписаниеПроверки - Неопределено, Строка - Описание конкретной проверки
// * ТекстПроверяемоеЗначение - Неопределено, Строка - Человекочитаемое описание проверяемого значения
// * ПредставлениеПроверяемогоЗначения - Неопределено, Строка -
Функция ПараметрыСообщенийОбОшибке(ОписаниеПроверки = Неопределено,
ТекстПроверяемоеЗначение = "проверяемое значение",
ПредставлениеПроверяемогоЗначения = Неопределено) Экспорт
Функция ЭтоПредикатОбщийМодуль(ТипПредикатов, Предикаты)
Возврат Новый Структура("ОписаниеПроверки, ТекстПроверяемоеЗначение, ПредставлениеПроверяемогоЗначения",
ОписаниеПроверки,
ТекстПроверяемоеЗначение,
ПредставлениеПроверяемогоЗначения);
Возврат ТипПредикатов = Тип("ОбщийМодуль")
И Предикаты = ЮТПредикаты;
КонецФункции
Функция ЭтоПредикатМассив(ТипПредикатов, Предикаты)
Возврат ТипПредикатов = Тип("Массив")
И Предикаты.Количество()
И ЭтоПредикатСтруктура(ТипЗнч(Предикаты[0]), Предикаты[0]);
КонецФункции
Функция ЭтоПредикатСтруктура(ТипПредикатов, Предикаты)
Возврат ТипПредикатов = Тип("Структура")
И ЮТОбщий.ТипСтруктуры(Предикаты) = "Предикат";
КонецФункции