Skip to content

Commit

Permalink
поиск исключений по шаблону с *
Browse files Browse the repository at this point in the history
в любых вариациях При*ет, *ривет, Прив*, Пр*в*т
заменил код из #877
#445
  • Loading branch information
artbear committed Aug 24, 2021
1 parent d9c77a2 commit 287fc74
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1050,35 +1050,7 @@
КонецЕсли;
Если ТипЗнч(МассивИсключений) = Тип("Массив") И ЗначениеЗаполнено(МассивИсключений) Тогда
Результат = Новый СписокЗначений;
Для Каждого лИмяИсключения Из МассивИсключений Цикл
лЗвездаВНачале = СтрНачинаетсяС(лИмяИсключения, "*");
лЗвездаВКонце = СтрЗаканчиваетсяНа(лИмяИсключения, "*");
Если лЗвездаВНачале Или лЗвездаВКонце Тогда
Если СтрНайти(лИмяИсключения, ".") > 0 Тогда
ВызватьИсключение "Исключения метаданных со * и . пока не поддерживаются";
КонецЕсли;

лИмяИсключения = НРег(СтрЗаменить(лИмяИсключения, "*", ""));

Для Каждого лМД Из Метаданные[ВидМетаданного] Цикл
Если лЗвездаВНачале И лЗвездаВКонце Тогда
лПодходит = (СтрНайти(НРег(лМД.Имя), лИмяИсключения) > 0);
ИначеЕсли лЗвездаВНачале Тогда
лПодходит = СтрЗаканчиваетсяНа(НРег(лМД.Имя), лИмяИсключения);
ИначеЕсли лЗвездаВКонце Тогда
лПодходит = СтрНачинаетсяС(НРег(лМД.Имя), лИмяИсключения);
Иначе
лПодходит = Ложь;
КонецЕсли;

Если лПодходит Тогда
Результат.Добавить(лМД.Имя);
КонецЕсли;
КонецЦикла;
Иначе
Результат.Добавить(лИмяИсключения);
КонецЕсли;
КонецЦикла;
Результат.ЗагрузитьЗначения(МассивИсключений);
ИначеЕсли МассивИсключений = Ложь Тогда
Результат = Ложь;
КонецЕсли;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -521,7 +521,7 @@
Функция ДобавитьИменаМетаФормДляОдногоОбъектаМетаданного(СписокИменМетаФорм, ОсновнойОбъект, МетаОбъект,
ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм)

Если СписокИсключений = Ложь Или СписокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда
Если ИсключаемПоИмени(МетаОбъект.Имя, СписокИсключений) Тогда
Возврат Ложь;
КонецЕсли;

Expand Down Expand Up @@ -832,6 +832,7 @@
//}

//{ РаботаСНастройками
#Область Настройки

&НаКлиенте
Функция КлючНастройки() Экспорт
Expand Down Expand Up @@ -959,6 +960,10 @@
Возврат Объект().ПолучитьНастройкуГруппировки(Объект.Настройки);
КонецФункции

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

#Область Исключения

&НаКлиенте
Функция ВидМетаданныхИсключенИзТестирования(ВидМетаданных)
Если ЕстьНастройка(ВидМетаданных) Тогда
Expand All @@ -972,6 +977,20 @@
Возврат Объект().ПропускаемОшибкуПоТекстуИсключения(ТекстИсключения);
КонецФункции

&НаСервереБезКонтекста
Функция ИсключаемПоИмени(Знач ЧтоИщем, Знач КоллекцияДляПоиска, Знач КонтекстЯдра = Неопределено)

Если КоллекцияДляПоиска = Ложь Тогда
Возврат Истина;
КонецЕсли;

КонтекстЯдра = КонтекстЯдраНаСервере(КонтекстЯдра);
Возврат КонтекстЯдра.ЕстьВИсключаемойКоллекции(ЧтоИщем, КоллекцияДляПоиска);

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

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

//}

//{ блок юнит-тестов - САМИ ТЕСТЫ
Expand Down Expand Up @@ -1330,3 +1349,13 @@
Возврат СтрокаРезультат;

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

&НаСервереБезКонтекста
Функция КонтекстЯдраНаСервере(Знач КонтекстЯдра = Неопределено)

Если КонтекстЯдра = Неопределено Тогда
Возврат ВнешниеОбработки.Создать("xddTestRunner");
КонецЕсли;
Возврат КонтекстЯдра;

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

0 comments on commit 287fc74

Please sign in to comment.