From 23d8b2be543be18fb35800a2d68ec4f8b5b43a1d Mon Sep 17 00:00:00 2001 From: Alexander Osadchy Date: Tue, 20 Jan 2026 10:22:03 +0400 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA?= =?UTF-8?q?=D1=83=20=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D1=8F=D1=82=D1=8C?= =?UTF-8?q?=D0=A2=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=D0=98=D0=B7=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D1=81?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BE=D1=87=D0=BD=D0=B8=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2(#1161)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/smoke/smoke.bsp.json | 16 +++++- tests/smoke/smoke.example.json | 16 +++++- .../Ext/ObjectModule.bsl" | 52 ++++++++++++++++++ .../Ext/ObjectModule.bsl" | 53 ++++++++++++++++++- 4 files changed, 132 insertions(+), 5 deletions(-) diff --git a/tests/smoke/smoke.bsp.json b/tests/smoke/smoke.bsp.json index ed20e4c0d..87dfd9dc5 100644 --- a/tests/smoke/smoke.bsp.json +++ b/tests/smoke/smoke.bsp.json @@ -411,7 +411,13 @@ , "ИдентификаторыОбъектовМетаданных" , "ИдентификаторыОбъектовРасширений" , "ПредопределенныеВариантыОтчетов" - ] + ], + "ПроверятьТолькоИзбранные": { + "Справочники": [ + "Контрагенты", + "Номенклатура" + ] + } }, "ЗаписьГруппСправочников":{ @@ -423,7 +429,13 @@ , "ИдентификаторыОбъектовМетаданных" , "ИдентификаторыОбъектовРасширений" , "ПредопределенныеВариантыОтчетов" - ] + ], + "ПроверятьТолькоИзбранные": { + "Справочники": [ + "Контрагенты", + "Номенклатура" + ] + } }, "ФормированиеПечатныхФорм":{ diff --git a/tests/smoke/smoke.example.json b/tests/smoke/smoke.example.json index d9418c28d..117d24fa0 100644 --- a/tests/smoke/smoke.example.json +++ b/tests/smoke/smoke.example.json @@ -224,7 +224,13 @@ , "ИдентификаторыОбъектовМетаданных" , "ИдентификаторыОбъектовРасширений" , "ПредопределенныеВариантыОтчетов" - ] + ], + "ПроверятьТолькоИзбранные": { + "Справочники": [ + "Контрагенты", + "Номенклатура" + ] + } }, "ЗаписьГруппСправочников":{ @@ -236,7 +242,13 @@ , "ИдентификаторыОбъектовМетаданных" , "ИдентификаторыОбъектовРасширений" , "ПредопределенныеВариантыОтчетов" - ] + ], + "ПроверятьТолькоИзбранные": { + "Справочники": [ + "Контрагенты", + "Номенклатура" + ] + } }, "ФормированиеПечатныхФорм":{ diff --git "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\223\321\200\321\203\320\277\320\277\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\223\321\200\321\203\320\277\320\277\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/ObjectModule.bsl" "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\223\321\200\321\203\320\277\320\277\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\223\321\200\321\203\320\277\320\277\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/ObjectModule.bsl" index edf89c0fb..b04e87160 100644 --- "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\223\321\200\321\203\320\277\320\277\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\223\321\200\321\203\320\277\320\277\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/ObjectModule.bsl" +++ "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\223\321\200\321\203\320\277\320\277\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\223\321\200\321\203\320\277\320\277\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/ObjectModule.bsl" @@ -50,8 +50,21 @@ Если МожноМенять И Иерархический И ПравоДоступа("Изменение", МетаОбъект) И (Не Настройки.ОтборПоПрефиксу ИЛИ СтрНачинаетсяС(ВРег(МетаОбъект.Имя), ВРег(Настройки.Префикс))) Тогда + + ИмяМетаданного = МетаОбъект.Имя; + + ФильтрМетаданных = НайтиКоллекциюФильтрМетаданныхИзНастроек("Справочники", Настройки, "ПроверятьТолькоИзбранные"); + ЕстьОтборТолькоДляВключенияМетаданных = ЗначениеЗаполнено(ФильтрМетаданных ); + + Если ЕстьОтборТолькоДляВключенияМетаданных Тогда + ВключатьТест = НайтиИмяВКоллекции(ИмяМетаданного, ФильтрМетаданных, КонтекстЯдра); + Если Не ВключатьТест Тогда + Продолжить; + КонецЕсли; + КонецЕсли; ДобавитьТестыДляСправочника(НаборТестов, МетаОбъект); + КонецЕсли; КонецЦикла; @@ -129,6 +142,7 @@ Результат.Вставить("Исключения", Новый Массив); Результат.Вставить("Префикс", ""); Результат.Вставить("ОтборПоПрефиксу", Ложь); + Результат.Вставить("ПроверятьТолькоИзбранные", Новый Массив); Возврат Результат; КонецФункции @@ -154,6 +168,44 @@ КонецФункции +Функция НайтиКоллекциюФильтрМетаданныхИзНастроек(Знач КлючМетаданных, Знач Настройки, Знач ИмяОбщейКоллекции) + + // TODO использовать метод плагина Настройки.ЕстьНастройка + + ОбщаяКоллекция = ЗначениеИзСтруктуры(Настройки, ИмяОбщейКоллекции, Новый Структура); + + ЗначениеПоУмолчанию = Новый Массив; + + Если Не ЗначениеЗаполнено(ОбщаяКоллекция) Тогда + Возврат ЗначениеПоУмолчанию; + КонецЕсли; + + Возврат ЗначениеИзСтруктуры(ОбщаяКоллекция, КлючМетаданных, ЗначениеПоУмолчанию); + +КонецФункции + +Функция НайтиИмяВКоллекции(Знач ЧтоИщем, Знач КоллекцияДляПоиска, Знач КонтекстЯдра) + + Если Не ЗначениеЗаполнено(КоллекцияДляПоиска) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат КонтекстЯдра.ЕстьВИсключаемойКоллекции(ЧтоИщем, КоллекцияДляПоиска); + +КонецФункции + +Функция ЗначениеИзСтруктуры(Знач Структура, Знач ИмяНастройки, Знач ЗначениеПоУмолчанию) + + Результат = Неопределено; + + Если Не Структура.Свойство(ИмяНастройки, Результат) Или Не ЗначениеЗаполнено(Результат) Тогда + Результат = ЗначениеПоУмолчанию; + КонецЕсли; + + Возврат Результат; + +КонецФункции + #КонецОбласти Процедура ДобавитьТестыДляСправочника(НаборТестов, МетаОбъект) diff --git "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/ObjectModule.bsl" "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/ObjectModule.bsl" index 037cd2be3..990cf5aba 100644 --- "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/ObjectModule.bsl" +++ "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\320\270\321\201\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/ObjectModule.bsl" @@ -37,7 +37,6 @@ ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); ЗапросыИзБД.Инициализация(КонтекстЯдра); - ЗагрузитьНастройки(); Если Не НужноВыполнятьТест() Тогда @@ -49,8 +48,21 @@ Если МожноМенять И ПравоДоступа("Изменение", МетаОбъект) И (Не Настройки.ОтборПоПрефиксу ИЛИ СтрНачинаетсяС(ВРег(МетаОбъект.Имя), ВРег(Настройки.Префикс))) Тогда + + ИмяМетаданного = МетаОбъект.Имя; + + ФильтрМетаданных = НайтиКоллекциюФильтрМетаданныхИзНастроек("Справочники", Настройки, "ПроверятьТолькоИзбранные"); + ЕстьОтборТолькоДляВключенияМетаданных = ЗначениеЗаполнено(ФильтрМетаданных ); + + Если ЕстьОтборТолькоДляВключенияМетаданных Тогда + ВключатьТест = НайтиИмяВКоллекции(ИмяМетаданного, ФильтрМетаданных, КонтекстЯдра); + Если Не ВключатьТест Тогда + Продолжить; + КонецЕсли; + КонецЕсли; ДобавитьТестыДляСправочника(НаборТестов, МетаОбъект); + КонецЕсли; КонецЦикла; @@ -128,6 +140,7 @@ Результат.Вставить("ВыводитьИсключения", Ложь); Результат.Вставить("Префикс", ""); Результат.Вставить("ОтборПоПрефиксу", Ложь); + Результат.Вставить("ПроверятьТолькоИзбранные", Новый Массив); Возврат Результат; КонецФункции @@ -153,6 +166,44 @@ КонецФункции +Функция НайтиКоллекциюФильтрМетаданныхИзНастроек(Знач КлючМетаданных, Знач Настройки, Знач ИмяОбщейКоллекции) + + // TODO использовать метод плагина Настройки.ЕстьНастройка + + ОбщаяКоллекция = ЗначениеИзСтруктуры(Настройки, ИмяОбщейКоллекции, Новый Структура); + + ЗначениеПоУмолчанию = Новый Массив; + + Если Не ЗначениеЗаполнено(ОбщаяКоллекция) Тогда + Возврат ЗначениеПоУмолчанию; + КонецЕсли; + + Возврат ЗначениеИзСтруктуры(ОбщаяКоллекция, КлючМетаданных, ЗначениеПоУмолчанию); + +КонецФункции + +Функция НайтиИмяВКоллекции(Знач ЧтоИщем, Знач КоллекцияДляПоиска, Знач КонтекстЯдра) + + Если Не ЗначениеЗаполнено(КоллекцияДляПоиска) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат КонтекстЯдра.ЕстьВИсключаемойКоллекции(ЧтоИщем, КоллекцияДляПоиска); + +КонецФункции + +Функция ЗначениеИзСтруктуры(Знач Структура, Знач ИмяНастройки, Знач ЗначениеПоУмолчанию) + + Результат = Неопределено; + + Если Не Структура.Свойство(ИмяНастройки, Результат) Или Не ЗначениеЗаполнено(Результат) Тогда + Результат = ЗначениеПоУмолчанию; + КонецЕсли; + + Возврат Результат; + +КонецФункции + #КонецОбласти Процедура ДобавитьТестыДляСправочника(НаборТестов, МетаОбъект)