diff --git a/tests/smoke/smoke.example.json b/tests/smoke/smoke.example.json index d1dcc4675..f4ff44604 100644 --- a/tests/smoke/smoke.example.json +++ b/tests/smoke/smoke.example.json @@ -789,8 +789,20 @@ "Тесты_ПроверкаПраваИнтерактивногоУдаленияПомеченных": { "Используется": false, - "ПроверятьОсновныеРоли": true + "ПроверятьОсновныеРоли": true, + "ПрефиксОбъекта": "", + "ОтборПоПрефиксуОбъекта": false, + "ПрефиксРоли": "", + "ОтборПоПрефиксуРоли": false, + "ИсключенияИзПроверок":{ + "Справочники":[ + "Справочник1" + ], + "Документы":[ + "Документ1" + ] + } }, "Тесты_ПроверкаПравНаПредопределенныеДанныеОбъектов": { diff --git "a/tests/smoke/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/tests/smoke/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index b84aff38e..cc5f29e2a 100644 --- "a/tests/smoke/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/tests/smoke/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -8,6 +8,16 @@ Перем СтроковыеУтилиты; &НаКлиенте Перем ПроверятьОсновныеРоли; +&НаКлиенте +Перем ОтборПоПрефиксуОбъекта; +&НаКлиенте +Перем ПрефиксОбъекта; +&НаКлиенте +Перем ОтборПоПрефиксуРоли; +&НаКлиенте +Перем ПрефиксРоли; +&НаКлиенте +Перем ИсключенияИзПроверок; #КонецОбласти @@ -33,7 +43,7 @@ Возврат; КонецЕсли; - ОбъектыМетаданных = ОбъектыМетаданных(); + ОбъектыМетаданных = ОбъектыМетаданных(ОтборПоПрефиксуОбъекта, ПрефиксОбъекта, ИсключенияИзПроверок); Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл Если ОбъектМетаданных.Значение.Количество() = 0 Тогда @@ -61,7 +71,13 @@ Возврат; КонецЕсли; - ПроверятьОсновныеРоли = Истина; + ПрефиксОбъекта = ""; + ОтборПоПрефиксуОбъекта = Ложь; + ПрефиксРоли = ""; + ОтборПоПрефиксуРоли = Ложь; + ИсключенияИзПроверок = Новый Структура; + ПроверятьОсновныеРоли = Истина; + ПлагинНастроек = КонтекстЯдра.Плагин("Настройки"); Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки); Настройки = Объект.Настройки; @@ -75,6 +91,26 @@ ПроверятьОсновныеРоли = Настройки.ПроверятьОсновныеРоли; КонецЕсли; + Если Настройки.Свойство("ПрефиксОбъекта") Тогда + ПрефиксОбъекта = ВРег(Настройки.ПрефиксОбъекта); + КонецЕсли; + + Если Настройки.Свойство("ОтборПоПрефиксуОбъекта") Тогда + ОтборПоПрефиксуОбъекта = Настройки.ОтборПоПрефиксуОбъекта; + КонецЕсли; + + Если Настройки.Свойство("ПрефиксРоли") Тогда + ПрефиксРоли = ВРег(Настройки.ПрефиксРоли); + КонецЕсли; + + Если Настройки.Свойство("ОтборПоПрефиксуРоли") Тогда + ОтборПоПрефиксуРоли = Настройки.ОтборПоПрефиксуРоли; + КонецЕсли; + + Если Настройки.Свойство("ИсключенияИзПроверок") Тогда + ИсключенияИзПроверок = Настройки.ИсключенияИзПроверок; + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -84,14 +120,14 @@ &НаКлиенте Процедура ТестДолжен_ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных) Экспорт - Результат = ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных, ПроверятьОсновныеРоли); + Результат = ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных, ОтборПоПрефиксуРоли, ПрефиксРоли, ПроверятьОсновныеРоли); ШаблонСообщения = НСтр("ru = 'Есть право на интерактивное удаление помеченных объектов:%1'"); Утверждения.Проверить(Результат = "", СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат)); КонецПроцедуры &НаСервереБезКонтекста -Функция ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных, ПроверятьОсновныеРоли) +Функция ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных, ОтборПоПрефиксуРоли, ПрефиксРоли, ПроверятьОсновныеРоли) ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМетаданных); ЕстьПраво = Ложь; @@ -100,7 +136,10 @@ Для Каждого Роль Из Метаданные.Роли Цикл Если Не ПроверятьОсновныеРоли И Метаданные.ОсновныеРоли.Содержит(Роль) Тогда Продолжить; - КонецЕсли; + КонецЕсли; + Если ОтборПоПрефиксуРоли И Не СтрНачинаетсяС(ВРег(Роль.Имя), ВРег(ПрефиксРоли)) Тогда + Продолжить; + КонецЕсли; ЕстьПраво = ПравоДоступа("ИнтерактивноеУдалениеПомеченных", ОбъектМетаданных, Роль); Если ЕстьПраво Тогда Результат = Результат + Символы.ПС + Роль.Имя; @@ -116,8 +155,10 @@ #Область СлужебныеПроцедурыИФункции &НаСервереБезКонтекста -Функция ОбъектыМетаданных() +Функция ОбъектыМетаданных(ОтборПоПрефиксуОбъекта, ПрефиксОбъекта, ИсключенияИзПроверок) + ЛокальныйКонтекстЯдра = ВнешниеОбработки.Создать("xddTestRunner"); + СтроковыеУтилиты = СтроковыеУтилиты(); Пояснение = НСтр("ru = 'Проверка права интерактивного удаления помеченных'"); @@ -133,14 +174,26 @@ Для Каждого Элемент Из ОбъектыМетаданных Цикл Для Каждого ОбъектМетаданных Из Метаданные[Элемент.Ключ] Цикл - ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ОбъектМетаданных.ПолноеИмя(), Пояснение); + ПолноеИмяОбъекта = ОбъектМетаданных.ПолноеИмя(); + Если ОтборПоПрефиксуОбъекта И Не СтрНачинаетсяС(ВРег(ОбъектМетаданных.Имя), ВРег(ПрефиксОбъекта)) Тогда + Продолжить; + КонецЕсли; + Если ИсключенияИзПроверок.Свойство(Элемент.Ключ) + И ТипЗнч(ИсключенияИзПроверок[Элемент.Ключ]) = Тип("Массив") + И ЛокальныйКонтекстЯдра.ЕстьВИсключаемойКоллекции(ОбъектМетаданных.Имя, ИсключенияИзПроверок[Элемент.Ключ]) Тогда + Продолжить; + КонецЕсли; + // + ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ПолноеИмяОбъекта, Пояснение); СтруктураЭлемента = Новый Структура; СтруктураЭлемента.Вставить("ИмяТеста", ИмяТеста); - СтруктураЭлемента.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя()); + СтруктураЭлемента.Вставить("ПолноеИмя", ПолноеИмяОбъекта); ОбъектыМетаданных[Элемент.Ключ].Добавить(СтруктураЭлемента); КонецЦикла; КонецЦикла; + ЛокальныйКонтекстЯдра = Неопределено; + Возврат ОбъектыМетаданных; КонецФункции @@ -185,4 +238,4 @@ КонецФункции -#КонецОбласти \ No newline at end of file +#КонецОбласти