Skip to content

Commit

Permalink
refactor: исправление замечаний сонара
Browse files Browse the repository at this point in the history
  • Loading branch information
alkoleft committed Aug 26, 2024
1 parent da88a1b commit 3e97aed
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 89 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -86,20 +86,6 @@

КонецФункции

Функция ИспользованиеНастройки(Настройка, ЗначениеПоУмолчанию)

Если НЕ ЗначениеЗаполнено(Настройка) Или Настройка = Ложь Тогда
Использовать = ЗначениеПоУмолчанию;
ИначеЕсли Настройка = Истина Тогда
Использовать = Истина;
Иначе
Использовать = ЮТКоллекции.ЗначениеСтруктуры(Настройка, "Использовать", ЗначениеПоУмолчанию);
КонецЕсли;

Возврат Использовать;

КонецФункции

Функция ПрочитанБазовыеЭлементНастройки(Настройки, Ключ, Значение, Путь) Экспорт

Если СтрСравнить(Ключ, "Использовать") = 0 Тогда
Expand All @@ -122,20 +108,6 @@

КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

#Область Контекст

Функция ИмяКонтекстаНастройки()

Возврат "НастройкиДымовыхТестов";

КонецФункции

#КонецОбласти

Функция ПодходитПодНаборыИсключений(Ключ, НаборыИсключений) Экспорт

Для Каждого Набор Из НаборыИсключений Цикл
Expand All @@ -158,7 +130,7 @@

Для Каждого ОписаниеИсключения Из НаборИсключений Цикл

Если ЮТСтроки.СоответсвуетШаблону(Ключ, ОписаниеИсключения) Тогда
Если ЮТСтроки.СоответствуетШаблону(Ключ, ОписаниеИсключения) Тогда
Возврат Истина;
КонецЕсли;

Expand All @@ -168,14 +140,42 @@

КонецФункции

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

#Область Контекст

Функция ИмяКонтекстаНастройки()

Возврат "НастройкиДымовыхТестов";

КонецФункции

#КонецОбласти

Функция ИспользованиеНастройки(Настройка, ЗначениеПоУмолчанию)

Если НЕ ЗначениеЗаполнено(Настройка) Или Настройка = Ложь Тогда
Использовать = ЗначениеПоУмолчанию;
ИначеЕсли Настройка = Истина Тогда
Использовать = Истина;
Иначе
Использовать = ЮТКоллекции.ЗначениеСтруктуры(Настройка, "Использовать", ЗначениеПоУмолчанию);
КонецЕсли;

Возврат Использовать;

КонецФункции

Процедура ПрочитатьИсключения(Настройки, Исключения, Путь)

Если ТипЗнч(Исключения) = Тип("Строка") Тогда
Настройки.Исключения.Добавить(Исключения);
ИначеЕсли ТипЗнч(Исключения) = Тип("Массив") Тогда
Настройки.Исключения = Исключения;
ИначеЕсли Исключения <> Неопределено Тогда
ВызватьИсключение СтрШаблон("Некорретный тип элемента настроек `%1.Исключения`. Допустимо: Строка или Массив из Строка", Путь);
ВызватьИсключение СтрШаблон("Некорректный тип элемента настроек `%1.Исключения`. Допустимо: Строка или Массив из Строка", Путь);
КонецЕсли;

КонецПроцедуры
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,54 +67,19 @@

Функция СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры = Неопределено) Экспорт

МаксимальныйНомерЭлемента = 100;
ПолноеИмя = СтрШаблон("%1.%2", ТипОбъекта, ИмяОбъекта);
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ПолноеИмя);
РеквизитУпорядочивания = РеквизитУпорядочивания(ОписаниеОбъектаМетаданных);

Запрос = Новый Запрос;

ВыбираемыеПоля = Новый Массив;
Для Каждого Реквизит Из ОписаниеОбъектаМетаданных.Реквизиты Цикл

Если Реквизит.Значение.ЭтоКлюч Тогда
ВыбираемыеПоля.Добавить(Реквизит.Ключ);
КонецЕсли;

КонецЦикла;

Условия = "";

Если Параметры <> Неопределено И Параметры.Свойство("Отбор") Тогда

ДоступныГруппы = (ЮТМетаданные.ЭтоСправочник(ОписаниеОбъектаМетаданных)
Или ЮТМетаданные.ЭтоПланВидовХарактеристик(ОписаниеОбъектаМетаданных))
И ОписаниеОбъектаМетаданных.Реквизиты.Свойство("ЭтоГруппа");

Для Каждого Элемент Из Параметры.Отбор Цикл

Если СтрСравнить(Элемент.Ключ, "ЭтоГруппа") = 0 И НЕ ДоступныГруппы Тогда
Продолжить;
КонецЕсли;

ИмяПараметра = "Параметр_" + ЮТОбщий.ЧислоВСтроку(Запрос.Параметры.Количество() + 1);
Условия = ЮТСтроки.ДобавитьСтроку(Условия, СтрШаблон("%1 = &%2", Элемент.Ключ, ИмяПараметра), " И ");
Запрос.УстановитьПараметр(ИмяПараметра, Элемент.Значение);

КонецЦикла;

Если НЕ ПустаяСтрока(Условия) Тогда
Условия = "ГДЕ " + Условия;
КонецЕсли;

КонецЕсли;

Если РеквизитУпорядочивания <> Неопределено Тогда
ВыбираемыеПоля.Добавить(РеквизитУпорядочивания);
КонецЕсли;

РеквизитУпорядочивания = РеквизитУпорядочивания(ОписаниеОбъектаМетаданных);
ВыбираемыеПоля = ВыбираемыеПоля(ОписаниеОбъектаМетаданных, РеквизитУпорядочивания);
Условия = Условия(Параметры, ОписаниеОбъектаМетаданных, Запрос);
Реквизиты = СтрСоединить(ВыбираемыеПоля, ", ");
НомерЭлемента = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(МаксимальныйНомерЭлемента);

НомерЭлемента = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100);
// BSLLS:QueryParseError-off
Запрос.Текст = СтрШаблон(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| *
Expand All @@ -129,6 +94,7 @@
|
|УПОРЯДОЧИТЬ ПО
| %5", НомерЭлемента, Реквизиты, ПолноеИмя, Условия, РеквизитУпорядочивания);
// BSLLS:QueryParseError-on

ЗначенияРеквизитов = ЮТЗапросыСлужебныйВызовСервера.ЗначенияИзЗапроса(Запрос, Реквизиты);

Expand Down Expand Up @@ -224,6 +190,59 @@
Возврат "Ссылка";
КонецЕсли;

Возврат Неопределено;

КонецФункции

Функция Условия(Параметры, ОписаниеОбъектаМетаданных, Запрос)

Условия = "";

Если Параметры <> Неопределено И Параметры.Свойство("Отбор") Тогда

ДоступныГруппы = (ЮТМетаданные.ЭтоСправочник(ОписаниеОбъектаМетаданных)
Или ЮТМетаданные.ЭтоПланВидовХарактеристик(ОписаниеОбъектаМетаданных))
И ОписаниеОбъектаМетаданных.Реквизиты.Свойство("ЭтоГруппа");

Для Каждого Элемент Из Параметры.Отбор Цикл

Если СтрСравнить(Элемент.Ключ, "ЭтоГруппа") = 0 И НЕ ДоступныГруппы Тогда
Продолжить;
КонецЕсли;

ИмяПараметра = "Параметр_" + ЮТОбщий.ЧислоВСтроку(Запрос.Параметры.Количество() + 1);
Условия = ЮТСтроки.ДобавитьСтроку(Условия, СтрШаблон("%1 = &%2", Элемент.Ключ, ИмяПараметра), " И ");
Запрос.УстановитьПараметр(ИмяПараметра, Элемент.Значение);

КонецЦикла;

Если НЕ ПустаяСтрока(Условия) Тогда
Условия = "ГДЕ " + Условия;
КонецЕсли;

КонецЕсли;

Возврат Условия;

КонецФункции

Функция ВыбираемыеПоля(ОписаниеОбъектаМетаданных, РеквизитУпорядочивания)

ВыбираемыеПоля = Новый Массив;
Для Каждого Реквизит Из ОписаниеОбъектаМетаданных.Реквизиты Цикл

Если Реквизит.Значение.ЭтоКлюч Тогда
ВыбираемыеПоля.Добавить(Реквизит.Ключ);
КонецЕсли;

КонецЦикла;

Если РеквизитУпорядочивания <> Неопределено Тогда
ВыбираемыеПоля.Добавить(РеквизитУпорядочивания);
КонецЕсли;

Возврат ВыбираемыеПоля;

КонецФункции

#КонецОбласти
4 changes: 2 additions & 2 deletions exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -304,8 +304,8 @@
Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер);

Если Описание = Неопределено Тогда
ВызватьИсключение "Несуществующий объект метаданных, либо " +
ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер);
ВызватьИсключение "Несуществующий объект метаданных, либо "
+ ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер);
КонецЕсли;

Тип = ЮТТипыДанныхСлужебный.НовыйТипМенеджера(Описание);
Expand Down
11 changes: 9 additions & 2 deletions exts/yaxunit/src/CommonModules/ЮТСтроки/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,15 @@

КонецФункции

Функция СоответсвуетШаблону(Строка, Шаблон) Экспорт
// Проверяет что строк соответствует "простому" шаблону - тексту со звездочками.
//
// Параметры:
// Строка - Строка - Проверямая строка
// Шаблон - Строка - Шаблон
//
// Возвращаемое значение:
// Булево - Соответствует шаблону
Функция СоответствуетШаблону(Строка, Шаблон) Экспорт

Если Шаблон = "" Тогда
Возврат Ложь;
Expand All @@ -338,7 +346,6 @@
Блоки = СтрРазделить(Шаблон, "*", Истина);

Позиция = -1;
Успешно = Истина;
ПервыйБлок = 0;
ПоследнийБлок = Блоки.ВГраница();

Expand Down
28 changes: 14 additions & 14 deletions tests/src/CommonModules/ОМ_ЮТСтроки/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
.ДобавитьТест("СтрокаСимволов")
.ДобавитьТест("СравнитьВерсии")
.ДобавитьТест("УникальныеСтроки")
.ДобавитьТест("СоответсвуетШаблону")
.ДобавитьТест("СоответствуетШаблону")
;

КонецПроцедуры
Expand Down Expand Up @@ -102,32 +102,32 @@

КонецПроцедуры

Процедура СоответсвуетШаблону() Экспорт
Процедура СоответствуетШаблону() Экспорт

Строка = "123321";
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*"))
.ЭтоИстина();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*23321"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*23321"))
.ЭтоИстина();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "12332*"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "12332*"))
.ЭтоИстина();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "1*32*"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "1*32*"))
.ЭтоИстина();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "1*"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "1*"))
.ЭтоИстина();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*1"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*1"))
.ЭтоИстина();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "1*1"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "1*1"))
.ЭтоИстина();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "2*"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "2*"))
.ЭтоЛожь();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*2"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*2"))
.ЭтоЛожь();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*21*"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*21*"))
.ЭтоЛожь();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*33*"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*33*"))
.ЭтоИстина();
ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*3*3*"))
ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*3*3*"))
.ЭтоЛожь();

КонецПроцедуры
Expand Down

0 comments on commit 3e97aed

Please sign in to comment.