Skip to content

Commit 3d82163

Browse files
committed
Добавлена фича - возможность исключения форм, зависящих от отключенных функциональных опций #718
Добавлена настройка "ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций" в файл настроек
1 parent e9c7d16 commit 3d82163

File tree

7 files changed

+99
-6
lines changed

7 files changed

+99
-6
lines changed

Tests/Smoke/readme.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,30 @@
4343

4444
Это файл json-формата с различными коллекциями и массивами
4545

46-
В нем могут быть 4 коллекции – Справочники, Документы, Отчеты, Обработки
46+
#### В нем могут быть 4 коллекции – Справочники, Документы, Отчеты, Обработки
4747

4848
И подразделы/простые массивы-перечисления (для справочников и документов) – Списки, Существующие, Новые, ПеренестиДату (для документов)
4949

5050
В перечислении уже указываются конкретные имена метаданных, которые не нужно открывать, а нужно пропустить.
5151

52-
Примерный текст файла (текст и картинка):
52+
#### Отдельная настройка `ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций`
53+
54+
Она отвечает за исключение форм, которые зависят от отключенных функциональных опций.
55+
56+
Тип: Булево (true или false)
57+
58+
По умолчанию настройка не используется, т.е. проверки функциональных опций не выполняется.
59+
60+
Настройка важна для `толстых` конфигураций, например, ERP или УХ.
61+
62+
#### Примерный текст файла
5363

5464
```json
5565
{
5666
"smoke": {
67+
68+
"ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций" : true,
69+
5770
"Справочники": {
5871
"Списки": [
5972
"ПростойСправочник",
Binary file not shown.

smoke.example.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"smoke": {
3+
"ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций" : true,
34
"Справочники": {
45
"Списки": [
56
"ПростойСправочник"

src/Tests/Smoke/тесты_ОткрытиеФормКонфигурации/Form/ПолучениеФорм/form

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
{0}
7171
},
7272
{0}
73-
},266,134,1,0,1,4,4,50,266,134,96},
73+
},266,134,1,0,1,4,4,52,266,134,96},
7474
{
7575
{-1},1,
7676
{0},

src/Tests/Smoke/тесты_ОткрытиеФормКонфигурации/ObjectModule.bsl

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -605,16 +605,76 @@
605605
КонецЕсли;
606606
КонецЕсли;
607607
Если ЗначениеЗаполнено(МассивИсключений) Тогда
608-
Результат = Новый СписокЗначений; // TODO возвращать сразу массив, а не список исключений
608+
Результат = Новый СписокЗначений;
609609
Для Каждого ИмяМетаданного Из МассивИсключений Цикл
610610
Результат.Добавить(ИмяМетаданного);
611611
//Сообщить(СтрШаблон("Исключения %1.%2 - %3", ВидМетаданного, ВидПроверки, ИмяМетаданного));
612612
КонецЦикла;
613613
КонецЕсли;
614614
КонецЕсли;
615+
616+
ДобавитьИсключенияПоОтключеннымФункциональнымОпциям(ВидМетаданного, Результат);
617+
618+
Если Не ЗначениеЗаполнено(Результат) Тогда
619+
Результат = Неопределено;
620+
КонецЕсли;
615621
Возврат Результат;
616622
КонецФункции
617623

624+
Процедура ДобавитьИсключенияПоОтключеннымФункциональнымОпциям(ВидМетаданного, СписокЗначений)
625+
ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций = Ложь;
626+
ЕстьНастройка = Настройки.Свойство("ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций", ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций);
627+
Если Не ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций Тогда
628+
Возврат;
629+
КонецЕсли;
630+
631+
Если Не ЗначениеЗаполнено(СписокЗначений) Тогда
632+
СписокЗначений = Новый СписокЗначений;
633+
КонецЕсли;
634+
635+
Если ФормыОтключенныеЧерезФункциональныеОпции = Неопределено Тогда
636+
ФормыОтключенныеЧерезФункциональныеОпции = Новый Структура;
637+
КонецЕсли;
638+
639+
СписокМетаданного = Неопределено;
640+
Если Не ФормыОтключенныеЧерезФункциональныеОпции.Свойство(ВидМетаданного, СписокМетаданного) Тогда
641+
СписокМетаданного = Новый СписокЗначений;
642+
ФормыОтключенныеЧерезФункциональныеОпции.Вставить(ВидМетаданного, СписокМетаданного);
643+
644+
Для каждого ФО Из Метаданные.ФункциональныеОпции Цикл
645+
Попытка
646+
Значение = ПолучитьФункциональнуюОпцию(ФО.ИМЯ) ;
647+
Исключение
648+
Продолжить;
649+
КонецПопытки;
650+
Если ТипЗнч( Значение) = Тип("Булево") И Не Значение Тогда
651+
Для каждого СтрОбъект Из ФО.Состав Цикл
652+
Если Метаданные[ВидМетаданного].Содержит(СтрОбъект.Объект) Тогда
653+
654+
МДИмяОбъекта = СтрОбъект.Объект.Имя;
655+
656+
СписокМетаданного.Добавить(МДИмяОбъекта);
657+
658+
КонецЕсли;
659+
КонецЦикла;
660+
КонецЕсли;
661+
КонецЦикла;
662+
КонецЕсли;
663+
664+
СписокМетаданного = Неопределено;
665+
Если ФормыОтключенныеЧерезФункциональныеОпции.Свойство(ВидМетаданного, СписокМетаданного) Тогда
666+
667+
Для Каждого Элемент Из СписокМетаданного Цикл
668+
МДИмяОбъекта = Элемент.Значение;
669+
Если СписокЗначений.НайтиПоЗначению(МДИмяОбъекта) = Неопределено Тогда
670+
СписокЗначений.Добавить(МДИмяОбъекта);
671+
КонецЕсли;
672+
КонецЦикла;
673+
674+
КонецЕсли;
675+
676+
КонецПроцедуры
677+
618678
Функция ВидыМетаданных() Экспорт
619679
Если ВидыМетаданных = Неопределено Тогда
620680
ВидыМетаданных = Новый Структура;

src/Tests/Smoke/тесты_ОткрытиеФормКонфигурации/und/eb6420d9-ff9e-4c68-b025-2c1608cec69f

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
1212
{3daea016-69b7-4ed4-9453-127911372fe6,1,724d5548-5d6b-4e19-98cf-0ea3ae12c0a7},
1313
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,be1492ab-bedd-4e13-8827-ed025cda688a,45cb56ba-09f2-4931-88c4-1e63a1a8f37c},
14-
{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,8,
14+
{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,9,
1515
{
1616
{0,
1717
{27,
@@ -165,6 +165,25 @@
165165
{0,0},0,
166166
{0},
167167
{"S",""},0,0,0}
168+
},0},
169+
{
170+
{0,
171+
{27,
172+
{2,
173+
{1,
174+
{0,0,9e5d7f0d-da20-4aeb-b366-5e3769aef9a2},"ФормыОтключенныеЧерезФункциональныеОпции",
175+
{1,"ru","Формы, отключенные через функциональные опции"},"",0,0},
176+
{"Pattern"}
177+
},0,
178+
{0},
179+
{0},0,"",0,
180+
{"U"},
181+
{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
182+
{5004,0},
183+
{3,0,0},
184+
{0,0},0,
185+
{0},
186+
{"S",""},0,0,0}
168187
},0}
169188
}
170189
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{1,15,"",79953add-08cf-448d-843a-ecfb480a7996,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c",8dad3a66-ea6b-4205-9372-0c98f3e857a4,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0",635a4696-f56b-44c5-a4df-f1f2859abd70,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7",e904a740-be9c-4a47-bb85-2b525e305c07,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0",a9431188-1c16-4f35-88c5-95a6b5721851,"be1492ab-bedd-4e13-8827-ed025cda688a",152cb499-56cf-4c17-bfeb-1d82d002445d,"be1492ab-bedd-4e13-8827-ed025cda688a.0",906d5071-db57-40ba-9781-d21d16b7e0ff,"be1492ab-bedd-4e13-8827-ed025cda688a.1",0e88792e-dd94-4a89-986a-1d559f2cafdc,"copyinfo",b95ab719-bb6d-4af5-a373-8f1428df4bed,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff",950cbccd-96c4-452a-960d-5052c58af474,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0",8581a3bc-bc45-40f2-a02b-14bf710af6ab,"eb6420d9-ff9e-4c68-b025-2c1608cec69f",96e53afa-1a2b-42bf-a0cf-88cc37e3039e,"root",ab247d90-340d-41f2-bafd-19742936647c,"version",d79bdc6a-5d8d-472f-8a8c-c96566449317,"versions",62b15e24-0b8b-474b-8acf-a172f3b028d0}
1+
{1,15,"",5e66c5c8-1630-4acd-9b57-26a332da5604,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c",37478a77-4718-4464-add6-8f797ef30315,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0",ef220e48-67b8-4b85-a4de-83e4f4f4d3b0,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7",54f93ab3-070b-4d92-bada-e69436ac6113,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0",d6619661-2946-4259-a7cd-503e115e059f,"be1492ab-bedd-4e13-8827-ed025cda688a",7be6a300-4541-4de6-9f40-26d1c77bcad7,"be1492ab-bedd-4e13-8827-ed025cda688a.0",ca8e2a3b-859a-4ee9-bd44-4a2bea924114,"be1492ab-bedd-4e13-8827-ed025cda688a.1",0e88792e-dd94-4a89-986a-1d559f2cafdc,"copyinfo",faaa6658-a9a6-4f70-900a-2e168c2d7b5c,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff",950cbccd-96c4-452a-960d-5052c58af474,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0",fad9e0c5-2ca3-49ad-9b17-0b5fc96c5912,"eb6420d9-ff9e-4c68-b025-2c1608cec69f",8959718a-af5b-48b0-a90b-a806057d6a98,"root",ad5a4267-fd02-430d-ab74-df6c148e26fd,"version",0f18e832-fc9f-479f-8149-7694db555733,"versions",efc3234c-d452-447f-bd49-f62bb286c9fd}

0 commit comments

Comments
 (0)