diff --git "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf" "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf"
index 7a974725..5546ce53 100644
Binary files "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf" and "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf" differ
diff --git "a/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262.epf" "b/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262.epf"
new file mode 100644
index 00000000..d6038d76
Binary files /dev/null and "b/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262.epf" differ
diff --git "a/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.epf" "b/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.epf"
new file mode 100644
index 00000000..f7bacf8d
Binary files /dev/null and "b/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.epf" differ
diff --git "a/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213.epf" "b/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213.epf"
deleted file mode 100644
index 61a335ad..00000000
Binary files "a/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213.epf" and /dev/null differ
diff --git "a/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.epf" "b/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.epf"
index a6d22802..f9437790 100644
Binary files "a/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.epf" and "b/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.epf" differ
diff --git "a/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.epf" "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.epf"
new file mode 100644
index 00000000..0436ae51
Binary files /dev/null and "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.epf" differ
diff --git a/Tests/TestConfig.cf b/Tests/TestConfig.cf
new file mode 100644
index 00000000..b28f2b52
Binary files /dev/null and b/Tests/TestConfig.cf differ
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index 976acca7..4d27a8d5 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -129,15 +129,39 @@
Возврат Контейнер;
КонецФункции
+&НаСервереБезКонтекста
+Функция ПолучитьДополнительнуюОбработкуБСП(ИмяВнешнейОбработки)
+ Попытка
+ ДополнительнаяОбработка= Вычислить("Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяВнешнейОбработки)");
+ Если ДополнительнаяОбработка.Пустая() Тогда
+ ДополнительнаяОбработка= Неопределено
+ КонецЕсли;
+ Исключение
+ ДополнительнаяОбработка= Неопределено;
+ КонецПопытки;
+ Если ДополнительнаяОбработка <> Неопределено И ДополнительнаяОбработка.ПометкаУдаления Тогда
+ ДополнительнаяОбработка= Неопределено;
+ КонецЕсли;
+ Возврат ДополнительнаяОбработка;
+КонецФункции
+
&НаКлиенте
Функция ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки, КонтекстЯдра)
ЭтоФайлОтчета = (НРег(ФайлОбработки.Расширение) = ".erf");
+ ДополнительнаяОбработка= ПолучитьДополнительнуюОбработкуБСП(ФайлОбработки.ИмяБезРасширения);
+
+ Если ДополнительнаяОбработка = Неопределено Тогда
+ ИмяПодключения= ФайлОбработки.ИмяБезРасширения;
+ Иначе
+ ИмяПодключения= Вычислить("ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ДополнительнаяОбработка)");
+ КонецЕсли;
+
Если ЭтоФайлОтчета Тогда
- ФормаОбработки = ПолучитьФорму("ВнешнийОтчет." + ФайлОбработки.ИмяБезРасширения + ".Форма");
+ ФормаОбработки = ПолучитьФорму("ВнешнийОтчет." + ИмяПодключения + ".Форма");
Иначе
- ФормаОбработки = ПолучитьФорму("ВнешняяОбработка." + ФайлОбработки.ИмяБезРасширения + ".Форма");
+ ФормаОбработки = ПолучитьФорму("ВнешняяОбработка." + ИмяПодключения + ".Форма");
КонецЕсли;
Попытка
@@ -152,6 +176,7 @@
КонецПопытки;
Возврат Контейнер;
+
КонецФункции
&НаКлиенте
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt"
index db702b94..5c3932f4 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.bsl-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (50, 476)
+Form\Форма\Форма.bsl-->645fc832-1f65-4ffd-bf51-33e600b43627.0 (50, 501)
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt"
index 4d07c6f4..93660bfa 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt"
@@ -1,9 +1,9 @@
-51efd65a-ed36-4be7-a563-89b34ebfa851-->und\51efd65a-ed36-4be7-a563-89b34ebfa851
+4dfebff0-3578-4cc7-b23f-d02b460749f4.0\info-->und\4dfebff0-3578-4cc7-b23f-d02b460749f4.0\info
+4dfebff0-3578-4cc7-b23f-d02b460749f4.0\text-->ObjectModule.bsl
+645fc832-1f65-4ffd-bf51-33e600b43627-->und\645fc832-1f65-4ffd-bf51-33e600b43627
+645fc832-1f65-4ffd-bf51-33e600b43627.0-->und\645fc832-1f65-4ffd-bf51-33e600b43627.0
copyinfo-->und\copyinfo
-d75f146d-5027-4604-80fd-3b704ddd86a8-->und\d75f146d-5027-4604-80fd-3b704ddd86a8
-d75f146d-5027-4604-80fd-3b704ddd86a8.0-->und\d75f146d-5027-4604-80fd-3b704ddd86a8.0
-dfe532e1-d0ef-4008-afd4-214781ee4960.0\info-->und\dfe532e1-d0ef-4008-afd4-214781ee4960.0\info
-dfe532e1-d0ef-4008-afd4-214781ee4960.0\text-->ObjectModule.bsl
+f5035bba-8cfe-4a19-8ddc-f6c3700068ba-->und\f5035bba-8cfe-4a19-8ddc-f6c3700068ba
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/dfe532e1-d0ef-4008-afd4-214781ee4960.0/info" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/4dfebff0-3578-4cc7-b23f-d02b460749f4.0/info"
similarity index 100%
rename from "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/dfe532e1-d0ef-4008-afd4-214781ee4960.0/info"
rename to "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/4dfebff0-3578-4cc7-b23f-d02b460749f4.0/info"
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/51efd65a-ed36-4be7-a563-89b34ebfa851" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/51efd65a-ed36-4be7-a563-89b34ebfa851"
deleted file mode 100644
index 9e39a2bc..00000000
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/51efd65a-ed36-4be7-a563-89b34ebfa851"
+++ /dev/null
@@ -1,17 +0,0 @@
-{1,
-{51efd65a-ed36-4be7-a563-89b34ebfa851},1,
-{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
-{1,
-{4,5cce5f28-d8c9-48d6-9f87-928be46d5662,0f2fb654-1692-41fa-b66f-583222be369f,
-{0,
-{1,
-{0,0,dfe532e1-d0ef-4008-afd4-214781ee4960},"ЗагрузчикФайла",
-{1,"ru","Загрузчик файла"},"",0,0}
-},d75f146d-5027-4604-80fd-3b704ddd86a8,"",00000000-0000-0000-0000-000000000000},4,
-{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
-{3daea016-69b7-4ed4-9453-127911372fe6,0},
-{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,d75f146d-5027-4604-80fd-3b704ddd86a8},
-{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0}
-}
-}
-}
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/645fc832-1f65-4ffd-bf51-33e600b43627"
similarity index 78%
rename from "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8"
rename to "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/645fc832-1f65-4ffd-bf51-33e600b43627"
index cb022da1..2aad7bec 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/645fc832-1f65-4ffd-bf51-33e600b43627"
@@ -3,7 +3,7 @@
{0,
{12,
{1,
-{0,0,d75f146d-5027-4604-80fd-3b704ddd86a8},"Форма",
+{0,0,645fc832-1f65-4ffd-bf51-33e600b43627},"Форма",
{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
{2,
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/645fc832-1f65-4ffd-bf51-33e600b43627.0"
similarity index 92%
rename from "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0"
rename to "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/645fc832-1f65-4ffd-bf51-33e600b43627.0"
index 6f15732c..5bde6b20 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/645fc832-1f65-4ffd-bf51-33e600b43627.0"
@@ -178,15 +178,39 @@
Возврат Контейнер;
КонецФункции
+&НаСервереБезКонтекста
+Функция ПолучитьДополнительнуюОбработкуБСП(ИмяВнешнейОбработки)
+ Попытка
+ ДополнительнаяОбработка= Вычислить(""Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяВнешнейОбработки)"");
+ Если ДополнительнаяОбработка.Пустая() Тогда
+ ДополнительнаяОбработка= Неопределено
+ КонецЕсли;
+ Исключение
+ ДополнительнаяОбработка= Неопределено;
+ КонецПопытки;
+ Если ДополнительнаяОбработка <> Неопределено И ДополнительнаяОбработка.ПометкаУдаления Тогда
+ ДополнительнаяОбработка= Неопределено;
+ КонецЕсли;
+ Возврат ДополнительнаяОбработка;
+КонецФункции
+
&НаКлиенте
Функция ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки, КонтекстЯдра)
ЭтоФайлОтчета = (НРег(ФайлОбработки.Расширение) = "".erf"");
+ ДополнительнаяОбработка= ПолучитьДополнительнуюОбработкуБСП(ФайлОбработки.ИмяБезРасширения);
+
+ Если ДополнительнаяОбработка = Неопределено Тогда
+ ИмяПодключения= ФайлОбработки.ИмяБезРасширения;
+ Иначе
+ ИмяПодключения= Вычислить(""ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ДополнительнаяОбработка)"");
+ КонецЕсли;
+
Если ЭтоФайлОтчета Тогда
- ФормаОбработки = ПолучитьФорму(""ВнешнийОтчет."" + ФайлОбработки.ИмяБезРасширения + "".Форма"");
+ ФормаОбработки = ПолучитьФорму(""ВнешнийОтчет."" + ИмяПодключения + "".Форма"");
Иначе
- ФормаОбработки = ПолучитьФорму(""ВнешняяОбработка."" + ФайлОбработки.ИмяБезРасширения + "".Форма"");
+ ФормаОбработки = ПолучитьФорму(""ВнешняяОбработка."" + ИмяПодключения + "".Форма"");
КонецЕсли;
Попытка
@@ -201,6 +225,7 @@
КонецПопытки;
Возврат Контейнер;
+
КонецФункции
&НаКлиенте
@@ -479,7 +504,7 @@
{1},0,"Объект",
{1,0},
{"Pattern",
-{"#",5cce5f28-d8c9-48d6-9f87-928be46d5662}
+{"#",0f064269-c5c2-4509-8193-6f771750188f}
},
{0,
{0,
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/copyinfo" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/copyinfo"
index 50002f9f..87c4a055 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/copyinfo"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/copyinfo"
@@ -1,14 +1,14 @@
{4,
{2,
-{d75f146d-5027-4604-80fd-3b704ddd86a8,d75f146d-5027-4604-80fd-3b704ddd86a8,1,
-{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
-},
-{dfe532e1-d0ef-4008-afd4-214781ee4960,dfe532e1-d0ef-4008-afd4-214781ee4960,1,
+{4dfebff0-3578-4cc7-b23f-d02b460749f4,4dfebff0-3578-4cc7-b23f-d02b460749f4,1,
{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"ЗагрузчикФайла"}
+},
+{645fc832-1f65-4ffd-bf51-33e600b43627,645fc832-1f65-4ffd-bf51-33e600b43627,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
}
},
{1,
-{5cce5f28-d8c9-48d6-9f87-928be46d5662,dfe532e1-d0ef-4008-afd4-214781ee4960,0}
+{0f064269-c5c2-4509-8193-6f771750188f,4dfebff0-3578-4cc7-b23f-d02b460749f4,0}
},
{0},
{0,0},
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/f5035bba-8cfe-4a19-8ddc-f6c3700068ba" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/f5035bba-8cfe-4a19-8ddc-f6c3700068ba"
new file mode 100644
index 00000000..5a2bfd06
--- /dev/null
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/f5035bba-8cfe-4a19-8ddc-f6c3700068ba"
@@ -0,0 +1,17 @@
+{1,
+{f5035bba-8cfe-4a19-8ddc-f6c3700068ba},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,0f064269-c5c2-4509-8193-6f771750188f,6a4491e8-0998-4d67-bcc5-34ce2416c686,
+{0,
+{1,
+{0,0,4dfebff0-3578-4cc7-b23f-d02b460749f4},"ЗагрузчикФайла",
+{1,"ru","Загрузчик файла"},"",0,0}
+},645fc832-1f65-4ffd-bf51-33e600b43627,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,0},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,645fc832-1f65-4ffd-bf51-33e600b43627},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0}
+}
+}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/root" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/root"
index ae0e1471..a61cf733 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/root"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/root"
@@ -1 +1 @@
-{2,51efd65a-ed36-4be7-a563-89b34ebfa851,}
\ No newline at end of file
+{2,f5035bba-8cfe-4a19-8ddc-f6c3700068ba,}
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/version" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/version"
index 421eee79..32619b14 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/version"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/version"
@@ -1,5 +1,5 @@
{
{216,0,
-{80308,0}
+{80309,0}
}
}
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions"
index dd87c5fb..406d97e2 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions"
@@ -1 +1 @@
-{1,9,"",8166408f-4159-4e2b-9781-2d591673955c,"51efd65a-ed36-4be7-a563-89b34ebfa851",aa5965af-4229-4bbe-b205-090baded4def,"copyinfo",a2e3eb0b-0020-47ab-ad3d-4a2d481c4930,"d75f146d-5027-4604-80fd-3b704ddd86a8",3d1dd6a8-9cce-40fd-ac47-2fb03a6d359f,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",06306db7-53d9-4399-ba5b-df74053ccdb3,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",3a46fc39-ff5b-4c85-8cdc-989a5b0e6fcb,"root",4d97ec92-f9c5-4e9e-b11c-dc73ed1a5dc7,"version",1e8c5a76-64cc-49c6-b5e3-648fcce003d9,"versions",394b2e82-e841-4627-863c-c710af5699c5}
\ No newline at end of file
+{1,9,"",1a959781-f6dc-410a-81b0-4094080beef7,"4dfebff0-3578-4cc7-b23f-d02b460749f4.0",bb41c6e8-f3d9-486e-81b1-17bf39442129,"645fc832-1f65-4ffd-bf51-33e600b43627",c3c438ce-1914-47d8-b33d-bc29e73ce3e1,"645fc832-1f65-4ffd-bf51-33e600b43627.0",a51e4c8e-3f81-4327-aaa9-c6fadc638175,"copyinfo",b09f8309-5352-4565-8421-6d124ed021d7,"f5035bba-8cfe-4a19-8ddc-f6c3700068ba",402bcce6-e91d-4045-8cbf-1fb037a153b4,"root",81bdffad-3317-4786-baea-f1674811df7f,"version",c87b2a3d-c264-4093-8700-644e02a685d3,"versions",5e0e32ee-4f0b-46da-a028-96121e5d336e}
\ No newline at end of file
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..ef22c3f9
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,1072 @@
+#Область Инициализация
+
+&НаКлиенте
+Перем ЗапущенныеТестКлиенты;
+
+&НаКлиенте
+Перем ТестируемоеОкно;
+
+&НаКлиенте
+Перем ТестируемыйЭлемент;
+
+&НаКлиенте
+Перем ОписаниеОшибки;
+
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+
+#КонецОбласти
+
+#Область Интерфейс
+
+&НаКлиенте
+Процедура ПодключитьТестКлиент_ПакетныйРежим(Параметры_xddTestClient) Экспорт
+
+ Если Параметры_xddTestClient.Количество() > 0 И ТипЗнч(Параметры_xddTestClient[0]) <> Тип("ФиксированныйМассив") Тогда
+ НовыйМассивПараметров = Новый Массив;
+ НовыйМассивПараметров.Добавить(Параметры_xddTestClient);
+ Параметры_xddTestClient = НовыйМассивПараметров;
+ КонецЕсли;
+
+ Для Каждого ОчередныеПараметры Из Параметры_xddTestClient Цикл
+ Попытка
+ ПользовательПарольПорт = СтрРазделить(ОчередныеПараметры[0], ":");
+ Если ПользовательПарольПорт.Количество() = 3 Тогда
+ ТестКлиент = ПодключитьТестКлиент(
+ ПользовательПарольПорт[0],
+ ПользовательПарольПорт[1],
+ ПользовательПарольПорт[2]);
+ ЗапомнитьДанныеТестКлиента(ТестКлиент, ПользовательПарольПорт[0], ПользовательПарольПорт[2]);
+ Иначе
+ ТестКлиент = ПодключитьТестКлиент();
+ ЗапомнитьДанныеТестКлиента(ТестКлиент, "", "");
+ КонецЕсли;
+ Исключение
+ Инфо = ИнформацияОбОшибке();
+ ОписаниеОшибки = "Ошибка подключения тест-клиента в пакетном режиме
+ |" + ПодробноеПредставлениеОшибки(Инфо);
+
+ ЗафиксироватьОшибкуВЖурналеРегистрации("xUnitFor1C.ПодключитьТестКлиент", ОписаниеОшибки);
+ Сообщить(ОписаниеОшибки, СтатусСообщения.ОченьВажное);
+ КонецПопытки;
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПодключитьТестКлиент(ИмяПользователя = "", Пароль = "", Порт = 1538) Экспорт
+
+ Результат = Неопределено;
+
+ Попытка
+ Выполнить "Результат = Новый ТестируемоеПриложение(, XMLСтрока(Порт));";
+ Исключение
+ КонецПопытки;
+
+ Если Результат = Неопределено Тогда
+ ВызватьИсключение "Не удалось создать объект ТестируемоеПриложение.
+ |Возможно, что 1С:Предприятие 8 не было запущено в режиме Менеджера тестирования (ключ командной строки /TESTMANAGER)
+ |При запуске Предприятия через Конфигуратор можно включить этот режим в параметрах конфигуратора Сервис -> Параметры -> Запуск 1С:Предприятия -> Дополнительные -> Автоматизированное тестирование -> пункт ""Запускать как менеджер тестирования"".";
+ КонецЕсли;
+
+ // Попытка подключиться к уже запущенному приложению.
+ Подключен = Ложь;
+ Попытка
+ Результат.УстановитьСоединение();
+ Подключен = Истина;
+ Исключение
+ КонецПопытки;
+
+ Если Подключен Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ ЗапуститьПриложение(СтрокаЗапускаТестКлиента(ИмяПользователя, Пароль, Порт));
+
+ ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутВСекундах();
+ ОписаниеОшибкиСоединения = "";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ Результат.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+
+ Если Не Подключен Тогда
+ ВызватьИсключение СтрШаблон(
+ "Не смогли установить соединение с тестовым приложением для пользователя %1!
+ |%2",
+ ИмяПользователя,
+ ОписаниеОшибкиСоединения);
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ЗавершитьВсеТестКлиенты() Экспорт
+
+ Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
+ Возврат;
+ КонецЕсли;
+
+ Для Каждого ТекЗначение Из ЗапущенныеТестКлиенты Цикл
+ Если ЭтоLinux() Тогда
+ ЗапуститьПриложение("kill -9 `ps aux | grep -ie TESTCLIENT | grep -ie 1cv8c | awk '{print $2}'`");
+ Иначе
+ Scr = Новый COMОбъект("MSScriptControl.ScriptControl");
+ Scr.Language = "vbscript";
+ Scr.AddCode(ТекстСкриптаЗавершитьТестКлиент(ТекЗначение.Порт));
+ КонецЕсли;
+ КонецЦикла;
+
+ ЗапущенныеТестКлиенты.Очистить();
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ТестКлиентПоУмолчанию() Экспорт
+
+ Если ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
+ Возврат ЗапущенныеТестКлиенты[0].ТестКлиент;
+ КонецЕсли;
+
+ Результат = ПодключитьТестКлиент();
+ ЗапомнитьДанныеТестКлиента(Результат, "", "");
+
+ ПолучитьОсновноеОкно();
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТестКлиентПоПараметрам(ИмяПользователя = "", Пароль = "", Порт = 1538) Экспорт
+
+ Результат = НайтиЗапущенныйКлиент(ИмяПользователя, Порт);
+ Если Результат <> Неопределено Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Результат = ПодключитьТестКлиент(ИмяПользователя, Пароль, Порт);
+ ЗапомнитьДанныеТестКлиента(Результат, ИмяПользователя, Порт);
+
+ ПолучитьОсновноеОкно();
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ИнтерфейсАвтоматическогоТестирования
+
+&НаКлиенте
+Функция ПолучитьОписаниеОшибки() Экспорт
+ Возврат ОписаниеОшибки;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестируемыйЭлемент() Экспорт
+ Возврат ТестируемыйЭлемент;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестируемоеОкно() Экспорт
+ Возврат ТестируемоеОкно;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьОкно(ТекстЗаголовка, ОжиданиеСуществования= Истина) Экспорт
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ Если ОжиданиеСуществования Тогда
+ ТестируемоеОкно= ТестКлиент.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ТекстЗаголовка, , 20);
+ Иначе
+ // Несуществующее окно НайтиОбъект ищет очень долго и вызывает ошибку при последующих подключениях
+ ТестируемоеОкно= Неопределено;
+ тестируемыеОкна= ТестКлиент.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"), , , 20);
+ Для Каждого ТeкущееОкно Из тестируемыеОкна Цикл
+ Если Найти(ТeкущееОкно.Заголовок, ТекстЗаголовка) Тогда
+ ТестируемоеОкно= ТeкущееОкно;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ Возврат ТестируемоеОкно;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьОсновноеОкно() Экспорт
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ОкнаТестКлиента= ТестКлиент.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"), , , 20);
+
+ ТестируемоеОкно= Неопределено;
+
+ Для каждого ОкноТестКлиента Из ОкнаТестКлиента Цикл
+ Если ОкноТестКлиента.Основное Тогда
+ ТестируемоеОкно= ОкноТестКлиента;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат ТестируемоеОкно;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ОткрытьФормуСписка(ПолноеИмяОбъектаМетаданных, ТекстЗаголовка= Неопределено) Экспорт
+
+ ОсновноеОкно= ПолучитьОсновноеОкно();
+
+ ОсновноеОкно.ВыполнитьКоманду("e1cib/list/" + ПолноеИмяОбъектаМетаданных);
+
+ Если ТекстЗаголовка <> Неопределено Тогда
+ ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка);
+ Если ТестируемоеОкно = Неопределено Тогда
+ ТестируемыйЭлемент= Неопределено;
+ Иначе
+ ТестируемыйЭлемент= ТестируемоеОкно.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Список", , 20);
+ КонецЕсли;
+ Иначе
+ ТестируемоеОкно= Неопределено;
+ ТестируемыйЭлемент= Неопределено;
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция НайтиВСписке(СтруктураПоиска, Знач Список= Неопределено) Экспорт
+
+ Если Список = Неопределено Тогда
+ Список = ТестируемыйЭлемент;
+ КонецЕсли;
+
+ УбедитьсяЧтоЭтоСписок(Список);
+
+ Если ЭтоПустойСписок(Список) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ОписаниеСтроки= КОписаниюСтроки(СтруктураПоиска);
+ УстановитьОтборВСписке(ОписаниеСтроки, Список);
+
+ Список.ПерейтиКПервойСтроке();
+
+ Попытка
+ // Падает когда такой строки нет в списке? Платформа 8.3.10.2580
+ Возврат Список.ПерейтиКСтроке(ОписаниеСтроки);
+ Исключение
+ Возврат Ложь;
+ КонецПопытки;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОткрытьВСписке(ТекстЗаголовка, СтруктураПоиска= Неопределено) Экспорт
+
+ УбедитьсяЧтоЭтоСписок();
+
+ Если СтруктураПоиска <> Неопределено Тогда
+ НайтиВСписке(КОписаниюСтроки(СтруктураПоиска));
+ КонецЕсли;
+
+ ТестируемыйЭлемент.Выбрать();
+
+ УстановитьТестируемоеОкно(ТекстЗаголовка);
+
+ Возврат (ТестируемоеОкно <> Неопределено);
+
+КонецФункции
+
+&НаКлиенте
+Функция КоличествоСтрокВСписке(Знач ТестСписок= Неопределено, КоличествоСлужебныхСтрок= 0) Экспорт
+
+ Если ТестСписок = Неопределено Тогда
+ ТестСписок= ТестируемыйЭлемент;
+ КонецЕсли;
+
+ УбедитьсяЧтоЭтоСписок(ТестСписок);
+
+ ТестируемыйЭлемент.ВыделитьВсеСтроки();
+ ВыделенныеСтроки= ТестируемыйЭлемент.ПолучитьВыделенныеСтроки();
+
+ Возврат ВыделенныеСтроки.Количество() - КоличествоСлужебныхСтрок;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭтотСписокПустой(КоличествоСлужебныхСтрок= 0) Экспорт
+
+ УбедитьсяЧтоЭтоСписок(ТестируемыйЭлемент);
+
+ Возврат ЭтоПустойСписок(ТестируемыйЭлемент, КоличествоСлужебныхСтрок);
+
+КонецФункции
+
+&НаКлиенте
+Функция Провести(ЗакрытьПослеПроведения= Ложь) Экспорт
+
+ ОписаниеОшибки= "";
+
+ Если ЗакрытьПослеПроведения Тогда
+ ИмяКнопки= "ФормаПровестиИЗакрыть";
+ Иначе
+ ТекстЗаголовкаКнопки= "ФормаПровести";
+ КонецЕсли;
+
+ ЗаголовокПроводимогоОкна= ТестируемоеОкно.Заголовок;
+
+ ТестируемаяФорма= ТестируемоеОкно.НайтиОбъект(Тип("ТестируемаяФорма"), , , 20);
+
+ Кнопка= ТестируемаяФорма.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), , ИмяКнопки, 20);
+
+ Если Кнопка <> Неопределено Тогда
+
+ Кнопка.Нажать();
+
+ ПроведениеВыполнено= Истина;
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ИнформацияОбОшибке= ТестКлиент.ПолучитьТекущуюИнформациюОбОшибке();
+
+ Если ИнформацияОбОшибке <> Неопределено Тогда
+ ОписаниеОшибки=
+ НСтр("ru='Описание=';en='Description='") + ИнформацияОбОшибке.Описание + "'" + Символы.ПС +
+ НСтр("ru='ИмяМодуля=';en='ModuleName='") + ИнформацияОбОшибке.ИмяМодуля + "'" + Символы.ПС +
+ НСтр("ru='НомерСтроки=';en='LineNumber='") + ИнформацияОбОшибке.НомерСтроки + "'" + Символы.ПС +
+ НСтр("ru='ИсходнаяСтрока=';en='SourceLine='") + ИнформацияОбОшибке.ИсходнаяСтрока;
+
+ ПроведениеВыполнено= Ложь;
+ Иначе
+
+ ОкноОшибки= ПолучитьОкно("1С:Предприятие", Ложь);
+
+ Если ОкноОшибки <> Неопределено Тогда
+
+ ПолеОписанияОшибки= ОкноОшибки.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "Ошибка*", , 20);
+
+ Если ПолеОписанияОшибки <> Неопределено Тогда
+ ОписаниеОшибки= ПолеОписанияОшибки.ТекстЗаголовка;
+ ПроведениеВыполнено= Ложь;
+ КонецЕсли;
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Иначе
+ ПроведениеВыполнено= Ложь;
+ ОписаниеОшибки= "Кнопка не найдена.";
+ КонецЕсли;
+
+ Возврат ПроведениеВыполнено;
+
+КонецФункции
+
+&НаКлиенте
+// ПараметрыОтбора - структура или массив структур с полями
+//
+// Ключ
+// Значение
+// ЗаголовокОкнаВыбораДанных
+// ПредставлениеТипаДанных
+//
+// Последние два поля используются для выбора типа данных когда
+// значение отбора соодержится в колонке составного типа
+Функция УстановитьОтборВСписке(ПараметрыОтбора, Знач Список= Неопределено) Экспорт
+
+ Если Список = Неопределено Тогда
+ Список = ТестируемыйЭлемент;
+ КонецЕсли;
+
+ Если ЭтоПустойСписок(Список) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ТипПараметровОтбора= ТипЗнч(ПараметрыОтбора);
+
+ Если ТипПараметровОтбора = Тип("Структура") Тогда
+ Если ПараметрыОтбора.Свойство("Ключ") Тогда
+ МассивОтбора= Новый Массив;
+ МассивОтбора.Добавить(ПараметрыОтбора);
+ Иначе
+ МассивОтбора= КОписаниюСтроки(ПараметрыОтбора);
+ КонецЕсли;
+ ИначеЕсли ТипПараметровОтбора = Тип("Строка") Тогда
+ МассивОтбора= КОписаниюСтроки(ПараметрыОтбора);
+ Иначе
+ МассивОтбора= ПараметрыОтбора;
+ КонецЕсли;
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ОкноСписка= ТестКлиент.ПолучитьАктивноеОкно();
+
+ КнопкаРасширенныйПоиск = Список.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Расширенный поиск");
+
+ Если КнопкаРасширенныйПоиск = Неопределено Тогда
+ КнопкаРасширенныйПоиск = Список.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Найти...");
+ КонецЕсли;
+
+ Если КнопкаРасширенныйПоиск = Неопределено Тогда
+ ВызватьИсключение "Не найдена кнопка установки отбора в списке.";
+ КонецЕсли;
+
+ Для Каждого Элемент Из МассивОтбора Цикл
+
+ КнопкаРасширенныйПоиск.Нажать();
+
+ РасширенныйПоиск= ПолучитьСтруктуруОкнаПриложения(ТестКлиент, "Найти");
+
+ ПолеГдеИскать= РасширенныйПоиск.Форма.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "&Где искать");
+
+ ПолеГдеИскать.Активизировать();
+ ПолеГдеИскать.Выбрать();
+ ПолеГдеИскать.ВвестиТекст(Элемент.Ключ);
+
+ ПолеЧтоИскать= РасширенныйПоиск.Форма.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "&Что искать");
+
+ ПолеЧтоИскать.Активизировать();
+ ПолеЧтоИскать.Выбрать();
+
+ // В поле что искать может быть составной тип
+ // В случае составного типа в элементе структуры отбора
+ // Должны быть ПредставлениеДанных по которому выбирается тип данных,
+ // ЗаголовокОкнаВыбораДанных, которое откроется после выбора типа
+ // и из Значения можно было сформировать описание строки отбора в списке
+
+ // Можно по параметрам определять будет ли выбор типа данных
+ // Там есть в таком случае ЗаголовокОкнаВыбораДанных
+ ЕстьВыборТипаДанных= ПоявилосьОкно(ТестКлиент, "Выбор типа данных", , 1);
+
+ Если НЕ ЕстьВыборТипаДанных Тогда
+ //TODO: закрывать окно списка выбора элемента чтобы вводить текст напрямую в поле Что искать
+ АктивноеОкноТестирования= ТестКлиент.ПолучитьАктивноеОкно();
+ Если АктивноеОкноТестирования <> Неопределено
+ И НЕ СтрНачинаетсяС(АктивноеОкноТестирования.Заголовок, "Найти")
+ И АктивноеОкноТестирования <> ОкноСписка
+ Тогда
+ АктивноеОкноТестирования.Закрыть();
+ КонецЕсли;
+ ПолеЧтоИскать.ВвестиТекст(Элемент.Значение);
+ Иначе
+ ВыборТипаДанных= ПолучитьСтруктуруОкнаПриложения(ТестКлиент, "Выбор типа данных");
+ ТипДанныхВыбран= ВыбратьТипДанных(ВыборТипаДанных, Элемент.ПредставлениеТипаДанных);
+ Если НЕ ТипДанныхВыбран Тогда
+ РасширенныйПоиск.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+ ВыборДанных= ПолучитьСтруктуруОкнаПриложения(ТестКлиент, Элемент.ЗаголовокОкнаВыбораДанных);
+ СписокВыбораДанных= НайтиТаблицуФормы(ВыборДанных.Форма, , "Список");
+ СтрокаНайдена= НайтиВСписке(КОписаниюСтроки(Элемент.Значение), СписокВыбораДанных);
+ Если СтрокаНайдена Тогда
+ СписокВыбораДанных.Выбрать();
+ Иначе
+ //ОписаниеОшибки= СтрШаблон("Строка с %1 = %2 не найдена", Элемент.Ключ, Элемент.Значение);
+ РасширенныйПоиск.Окно.Закрыть();
+ ПолеЧтоИскать.ВвестиТекст("");
+ КонецЕсли;
+ КонецЕсли;
+
+ КнопкаНайти= РасширенныйПоиск.Форма.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "&Найти");
+ КнопкаНайти.Нажать();
+
+ КонецЦикла;
+
+ Возврат Истина;
+
+КонецФункции
+
+&НаКлиенте
+Функция ВыбратьТипДанных(ВыборТипаДанных, ПредставлениеТипаДанных)
+
+ ТаблицаТипов = НайтиТаблицуФормы(ВыборТипаДанных.Форма, , "TypeTree");
+
+ ТаблицаТипов.Активизировать();
+
+ ТаблицаТипов.ПерейтиКПервойСтроке();
+
+ ТипРегистратораНайден= ТаблицаТипов.ПерейтиКСтроке(КОписаниюСтроки("=" + ПредставлениеТипаДанных));
+
+ Если Не ТипРегистратораНайден Тогда
+ ОписаниеОшибки= СтрШаблон("Не найден тип данных ""%1""", ПредставлениеТипаДанных);
+ ВыборТипаДанных.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+
+ ТаблицаТипов.Выбрать();
+
+ Возврат Истина;
+
+КонецФункции
+
+
+&НаКлиенте
+Функция УстановитьОтборВСпискеПоРегистратору(ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, СтруктураПоискаРегистратора) Экспорт
+
+ ОписаниеОшибки= "";
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ КнопкаНастроитьСписок = НайтиКнопкуФормы(ТестируемоеОкно, "Настроить список*");
+
+ Если КнопкаНастроитьСписок = Неопределено Тогда
+ ОписаниеОшибки= "Не найдены настройки списка.";
+ Возврат Ложь;
+ КонецЕсли;
+
+ КнопкаНастроитьСписок.Нажать();
+
+ Если Не ПоявилосьОкно(ТестКлиент, "Настройка списка") Тогда
+ ОписаниеОшибки= "Не открылось окно Настройка списка.";
+ Возврат Ложь;
+ КонецЕсли;
+
+ НастройкаСписка= ПолучитьСтруктуруОкнаПриложения(ТестКлиент, "Настройка списка");
+
+ ТаблицаДоступныеПоля = НайтиТаблицуФормы(НастройкаСписка.Форма, "Доступные поля");
+
+ ТаблицаВыбраныеПоля= НайтиТаблицуФормы(НастройкаСписка.Форма, "Отбор. Элементы");
+
+ ТаблицаВыбраныеПоля.Активизировать();
+
+ // Удаляем все отборы
+
+ Пока Не ЭтоПустойСписок(ТаблицаВыбраныеПоля, 1) Цикл
+ ТаблицаВыбраныеПоля.ПерейтиКПоследнейСтроке();
+ ТаблицаВыбраныеПоля.УдалитьСтроку();
+ КонецЦикла;
+
+ ЕстьОтборРегистратор= Ложь;
+
+ //ТаблицаВыбраныеПоля.ПерейтиКПервойСтроке();
+ //ЕстьОтборРегистратор= ТаблицаВыбраныеПоля.ПерейтиКСтроке(КОписаниюСтроки("Доступные поля=Регистратор"), НаправлениеПереходаКСтроке.Вниз);
+
+ // Добавляем в отбор регистратор когда его там нет
+
+ Если Не ЕстьОтборРегистратор Тогда
+ ЕстьПолеРегистратор= ТаблицаДоступныеПоля.ПерейтиКСтроке(КОписаниюСтроки("Доступные поля=Регистратор"));
+ Если Не ЕстьПолеРегистратор Тогда
+ ОписаниеОшибки= "Не найдено поле отбора Регистратор.";
+ КнопкаЗавершитьРедактирование = НайтиКнопкуФормы(НастройкаСписка.Форма, "Отмена");
+ КнопкаЗавершитьРедактирование.Нажать();
+ Возврат Ложь;
+ Иначе
+ ТаблицаДоступныеПоля.Выбрать();
+ КонецЕсли;
+ КонецЕсли;
+
+ // Переходим к регистратору
+
+ ТаблицаВыбраныеПоля.Активизировать();
+
+ ТаблицаВыбраныеПоля.ПерейтиКСтроке(КОписаниюСтроки("Представление=Регистратор"));
+
+ // Устанавливаем использование когда оно не установлено
+
+ ПолеИспользование = НайтиПолеФормы(НастройкаСписка.Форма, "Использование");
+
+ Если ПолеИспользование.ПолучитьПредставлениеДанных() <> "Да" Тогда
+ ПолеИспользование.УстановитьОтметку();
+ КонецЕсли;
+
+ ПолеЗначение = НайтиПолеФормы(НастройкаСписка.Форма, "Значение");
+ ПолеЗначение.Активизировать();
+
+ ТаблицаВыбраныеПоля.ИзменитьСтроку();
+
+ ПолеЗначение.Выбрать();
+
+ ВыборТипаДанных = ПолучитьСтруктуруОкнаПриложения(ТестКлиент, "Выбор типа данных");
+
+ ТипДанныхВыбран= ВыбратьТипДанных(ВыборТипаДанных, ПредставлениеТипаРегистратора);
+
+ Если Не ТипДанныхВыбран Тогда
+ ОписаниеОшибки= СтрШаблон("Не найден регистратор с типом ""%1""", ПредставлениеТипаРегистратора);
+ НастройкаСписка.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+
+ ВыборРегистратора = ПолучитьСтруктуруОкнаПриложения(ТестКлиент, ЗаголовокСпискаРегистратора);
+
+ Если ВыборРегистратора.Окно= Неопределено Тогда
+ ОписаниеОшибки= СтрШаблон("Не найдена форма выбора регистратора с заголовком ""%1""", ЗаголовокСпискаРегистратора);
+ ВыборТипаДанных.Окно.Закрыть();
+ НастройкаСписка.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+
+ ТаблицаДокументов= НайтиТаблицуФормы(ВыборРегистратора.Форма, , "Список");
+
+ Если ЭтоПустойСписок(ТаблицаДокументов) Тогда
+ РегистраторНайден= Ложь;
+ Иначе
+ ТаблицаДокументов.ПерейтиКПервойСтроке();
+ РегистраторНайден= ТаблицаДокументов.ПерейтиКСтроке(КОписаниюСтроки(СтруктураПоискаРегистратора));
+ КонецЕсли;
+
+ Если РегистраторНайден Тогда
+ ТаблицаДокументов.Выбрать();
+ ТаблицаВыбраныеПоля.ЗакончитьРедактированиеСтроки(Ложь);
+ Иначе
+ ОписаниеОшибки= "Не найден регистратор.";
+ ВыборРегистратора.Окно.Закрыть();
+ НастройкаСписка.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+
+ КнопкаЗавершитьРедактирование = НайтиКнопкуФормы(НастройкаСписка.Форма, "Завершить редактирование");
+ КнопкаЗавершитьРедактирование.Нажать();
+
+ Возврат РегистраторНайден;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ВспомогательныеПроцедуры
+
+&НаКлиенте
+Функция ПолучитьКоличествоСтрокВСписке(ТестСписок)
+ //TODO: когда в списке больше тысячи строк выдаётся сообщение и выделение будет долгим.
+ // Нужно найти цивилизованный способ получения количества строк в списке.
+ ТестСписок.ВыделитьВсеСтроки();
+ Возврат ТестСписок.ПолучитьВыделенныеСтроки().Количество();
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоПустойСписок(ТестСписок, КоличествоСлужебныхСтрок= 0)
+ Попытка
+ ТестСписок.ПерейтиКСтроке();
+ Для х= 0 По КоличествоСлужебныхСтрок - 1 Цикл
+ ТестСписок.ПерейтиКСледующейСтроке();
+ КонецЦикла;
+ Возврат Ложь;
+ Исключение
+ Возврат Истина;
+ КонецПопытки;
+КонецФункции
+
+&НаКлиенте
+Процедура Пауза(ЧислоСекунд)
+ WSS=Новый COMОбъект("WScript.Shell");
+ WSS.Run(СтрШаблон("ping -n %1 -w 1000 127.0.0.1", XMLСтрока(ЧислоСекунд + 1)) , 0, Истина);
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПоявилосьОкно(ТестПриложение, ТекстЗаголовка= Неопределено, Имя= Неопределено, Таймаут= 20)
+ Возврат ТестПриложение.ОжидатьОтображениеОбъекта(Тип("ТестируемоеОкноКлиентскогоПриложения"), ТекстЗаголовка, Имя, Таймаут);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиОкноПриложения(ТестПриложение, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиФормуОкнаПриложения(ТестПриложение, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ ТестОкно= НайтиОкноПриложения(ТестПриложение, ТекстЗаголовка, Имя);
+ Если ТестОкно = Неопределено Тогда
+ Возврат ТестОкно;
+ КонецЕсли;
+ Возврат ТестОкно.НайтиОбъект(Тип("ТестируемаяФорма"), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиФормуОкна(ТестФорма, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестФорма.НайтиОбъект(Тип("ТестируемаяФорма"), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьСтруктуруОкнаПриложения(ТестПриложение, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ СтруктураОкна= Новый Структура("Окно,Форма");
+ СтруктураОкна.Окно= НайтиОкноПриложения(ТестПриложение, ТекстЗаголовка, Имя);
+ Если СтруктураОкна.Окно = Неопределено Тогда
+ ВызватьИсключение "Не найдено окно приложения с заголовком " + ТекстЗаголовка;
+ КонецЕсли;
+ СтруктураОкна.Форма= НайтиФормуОкна(СтруктураОкна.Окно, ТекстЗаголовка, Имя);
+ Возврат СтруктураОкна;
+КонецФункции
+
+&НаКлиенте
+Функция НайтиТаблицуФормы(ТестФорма, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиПолеФормы(ТестФорма, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиКнопкуФормы(ТестФорма, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестФорма.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+&НаКлиенте
+Функция СтрокаЗапускаТестКлиента(ИмяПользователя = "", Пароль = "", Порт = "")
+
+ Если Не ЗначениеЗаполнено(ИмяПользователя) Тогда
+ ИмяПользователя = ИмяТекущегоПользователя();
+ КонецЕсли;
+
+ СтрокаЗапуска1с = КаталогПрограммы() + "1cv8c";
+
+ Если Не ЭтоLinux() Тогда
+ СтрокаЗапуска1с = СтрШаблон("%1.exe", СтрокаЗапуска1с);;
+ КонецЕсли;
+
+ Результат = СтрШаблон(
+ "%1 ENTERPRISE /IBConnectionString""%2"" /WA- /N""%3"" %4 /TESTCLIENT -TPort%5",
+ СтрокаЗапуска1с,
+ СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """"""),
+ ИмяПользователя,
+ ?(ПустаяСтрока(Пароль), ""," /P""" + Пароль + """"),
+ XMLСтрока(Порт));
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаСервереБезКонтекста
+Функция ИмяТекущегоПользователя()
+
+ Возврат ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТаймаутВСекундах()
+
+ Возврат 20;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТекстСкриптаЗавершитьТестКлиент(НомерПорта)
+
+ Результат =
+
+ "Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next";
+
+ Если ЗначениеЗаполнено(НомерПорта) Тогда
+ Результат= СтрЗаменить(Результат, "%/TESTCLIENT%", "%/TESTCLIENT -TPort" + XMLСтрока(НомерПорта) + "%");
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолноеИмяИсполняемогоФайла()
+
+ Возврат СтрШаблон("%1%2%3",
+ КаталогПрограммы(),
+ "1cv8c",
+ РасширениеИсполняемогоФайла());
+
+КонецФункции
+
+&НаКлиенте
+Функция РасширениеИсполняемогоФайла()
+
+ Если ЭтоLinux() Тогда
+ Возврат "";
+ Иначе
+ Возврат ".exe";
+ КонецЕсли;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоLinux()
+
+ СисИнфо = Новый СистемнаяИнформация;
+ ВерсияПриложения = СисИнфо.ВерсияПриложения;
+
+ Возврат СтрНайти(Строка(СисИнфо.ТипПлатформы), "Linux") > 0;
+
+КонецФункции
+
+&НаСервере
+Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ИдентификаторГенератораОтчета, Знач ОписаниеОшибки)
+ ЗаписьЖурналаРегистрации(ИдентификаторГенератораОтчета, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗапомнитьДанныеТестКлиента(ТестКлиент, ИмяПользователя, Порт)
+
+ ДанныеТестКлиента = Новый Структура;
+ ДанныеТестКлиента.Вставить("ТестКлиент", ТестКлиент);
+ ДанныеТестКлиента.Вставить("ИмяПользователя", ИмяПользователя);
+ ДанныеТестКлиента.Вставить("Порт", Порт);
+
+ Если ЗапущенныеТестКлиенты = Неопределено Тогда
+ ЗапущенныеТестКлиенты = Новый Массив;
+ КонецЕсли;
+
+ ЗапущенныеТестКлиенты.Добавить(ДанныеТестКлиента);
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция НайтиЗапущенныйКлиент(ИмяПользователя, Порт)
+
+ Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Для Каждого ТекЗапущенныйКлиент Из ЗапущенныеТестКлиенты Цикл
+ Если ТекЗапущенныйКлиент.ИмяПользователя = ИмяПользователя
+ И ТекЗапущенныйКлиент.Порт = Порт Тогда
+ Возврат ТекЗапущенныйКлиент.ТестКлиент;
+ КонецЕсли;
+ КонецЦикла;
+
+КонецФункции
+
+&НаКлиенте
+Процедура УстановитьТестируемоеОкно(ТекстЗаголовка)
+ Если ТекстЗаголовка = Неопределено Тогда
+ ТестируемоеОкно= Неопределено;
+ Иначе
+ ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УбедитьсяЧтоЭтоСписок(Знач ТестСписок= Неопределено) Экспорт
+
+ Если ТестСписок = Неопределено Тогда
+ ТестСписок= ТестируемыйЭлемент;
+ КонецЕсли;
+
+ Если ТипЗнч(ТестСписок) <> Тип("ТестируемаяТаблицаФормы") Тогда
+ ВызватьИсключение "Тестируемый элемент не являяется списком";
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+// Формирует из параметра Соответствие для использования в тиовых методах поиска
+// Поддерживаемые типы
+// Структура
+// Массив Структуры Имя, Значение
+// Строка "Имя=Значение;..."
+// Соответствие
+// Неопределено
+Функция КОписаниюСтроки(Параметр)
+
+ ТипПараметра= ТипЗнч(Параметр);
+
+ ОписаниеСтроки= Неопределено;
+
+ Если ТипПараметра = Тип("Неопределено") Тогда
+
+ ОписаниеСтроки= Новый Соответствие();
+
+ ИначеЕсли ТипПараметра = Тип("Соответствие") Тогда
+
+ ОписаниеСтроки= Параметр;
+
+ ИначеЕсли ТипПараметра = Тип("Структура") Или ТипПараметра = Тип("Массив") Тогда
+
+ ОписаниеСтроки = Новый Соответствие();
+
+ Для каждого Элемент Из Параметр Цикл
+ ОписаниеСтроки.Вставить(Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+
+ ИначеЕсли ТипПараметра = Тип("Строка") Тогда
+
+ ОписаниеСтроки = Новый Соответствие();
+
+ Пары= СтрРазделить(Параметр, ";", Истина);
+
+ Для каждого Пара Из Пары Цикл
+
+ ИмяЗначение= СтрРазделить(Пара, "=", Истина);
+
+ Если ИмяЗначение.Количество() = 0 Тогда
+ Продолжить;
+ ИначеЕсли ИмяЗначение.Количество() = 1 Тогда
+ Значение= "";
+ Иначе
+ Значение= ИмяЗначение[1];
+ КонецЕсли;
+
+ Попытка
+ ОписаниеСтроки.Вставить(ИмяЗначение[0], Значение);
+ Исключение
+ КонецПопытки;
+
+ КонецЦикла;
+
+
+
+ Иначе
+
+ ВызватьИсключение "Неподдерживаемый тип " + ТипПараметра;
+
+ КонецЕсли;
+
+ Возврат ОписаниеСтроки;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область Отладка
+
+&НаКлиенте
+Функция СформироватьСтруктуруПоиска()
+
+ СтруктураПоиска= Новый Массив;
+
+ Для каждого Элемент Из Отладка_СтруктураПоиска Цикл
+ ЭлементПоиска= Новый Структура("Ключ,Значение,ПредставлениеТипаДанных,ЗаголовокОкнаВыбораДанных");
+ ЗаполнитьЗначенияСвойств(ЭлементПоиска, Элемент);
+ СтруктураПоиска.Добавить(ЭлементПоиска);
+ КонецЦикла;
+
+ Возврат СтруктураПоиска;
+
+КонецФункции
+
+&НаКлиенте
+Процедура Отладка_Подключить(Команда)
+ ТестКлиентПоПараметрам(Отладка_ИмяПользователя, Отладка_Пароль, 1538);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Отключить(Команда)
+ ЗавершитьВсеТестКлиенты();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьСписок(Команда)
+ ОткрытьФормуСписка(Отладка_ПолноеИмя, Отладка_ТекстЗаголовка);
+ Если ТестируемоеОкно = Неопределено Тогда
+ ВызватьИсключение "Не найдено окно с заголовком " + Отладка_ПолноеИмя ;
+ КонецЕсли;
+ Если ТестируемыйЭлемент = Неопределено Тогда
+ ВызватьИсключение "Форма не содержит список";
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьВСписке(Команда)
+
+ СтруктураПоиска= СформироватьСтруктуруПоиска();
+
+ ОткрытьВСписке(Отладка_ТекстЗаголовка, Отладка_СтруктураПоиска);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_НайтиВСписке(Команда)
+
+ НайтиВСписке(СформироватьСтруктуруПоиска());
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьВСпискеТекущий(Команда)
+ ОткрытьВСписке(Отладка_ТекстЗаголовка);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Провести(Команда)
+ Провести(Отладка_ЗакрытьПослеПроведения);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_УстановитьОтборВСписке(Команда)
+
+ УстановитьОтборВСписке(СформироватьСтруктуруПоиска());
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОтборВСпискеПоРегистратору(Команда)
+ ОтборУстановлен= УстановитьОтборВСпискеПоРегистратору(Отладка_ЗаголовокСпискаРегистратора, Отладка_ПредставлениеТипаРегистратора, СформироватьСтруктуруПоиска());
+ Если ОтборУстановлен Тогда
+ Сообщить("Отбор установлен");
+ Иначе
+ Сообщить(ОписаниеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Пауза(Команда)
+ Сообщить(ТекущаяДата());
+ Пауза(Отладка_ЧислоСекунд);
+ Сообщить(ТекущаяДата());
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ЭтоПустойСписок(Команда)
+ Сообщить(ЭтоПустойСписок(ТестируемыйЭлемент));
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Выполнить(Команда)
+ Выполнить(Отладка_Алгоритм);
+КонецПроцедуры
+
+#КонецОбласти
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl"
new file mode 100644
index 00000000..b63b714b
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl"
@@ -0,0 +1,58 @@
+
+#Область Дополнительные_внешние_отчеты_и_обработки
+
+Функция СведенияОВнешнейОбработке() Экспорт
+
+ РегистрационныеДанные = Новый Структура;
+
+ РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
+ РегистрационныеДанные.Вставить("Наименование", ЭтотОбъект.Метаданные().Синоним);
+ РегистрационныеДанные.Вставить("Версия", "2.0");
+ РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
+ РегистрационныеДанные.Вставить("Информация", ЭтотОбъект.Метаданные().Синоним);
+
+ ТЗКоманды = Новый ТаблицаЗначений;
+
+ ТЗКоманды.Колонки.Добавить("Идентификатор");
+ ТЗКоманды.Колонки.Добавить("Представление");
+ ТЗКоманды.Колонки.Добавить("Модификатор");
+ ТЗКоманды.Колонки.Добавить("ПоказыватьОповещение");
+ ТЗКоманды.Колонки.Добавить("Использование");
+
+ СтрокаКоманды = ТЗКоманды.Добавить();
+
+ СтрокаКоманды.Идентификатор = ЭтотОбъект.Метаданные().Имя;
+ СтрокаКоманды.Представление = ЭтотОбъект.Метаданные().Синоним;
+ СтрокаКоманды.ПоказыватьОповещение = Ложь;
+ СтрокаКоманды.Использование = "ОткрытиеФормы";
+
+ РегистрационныеДанные.Вставить("Команды", ТЗКоманды);
+
+ Возврат РегистрационныеДанные;
+
+КонецФункции
+
+Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
+ НастройкиВарианта = Вычислить("ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, ""ИмяВарианта"")");
+КонецПроцедуры
+
+Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
+ Настройки.ВыводитьСуммуВыделенныхЯчеек = Истина;
+КонецПроцедуры
+
+#КонецОбласти
+
+// { Plugin interface
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Результат = Новый Структура;
+ Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита);
+ МетаданныеПлагина = Метаданные();
+ Результат.Вставить("Идентификатор", МетаданныеПлагина.Имя);
+ Результат.Вставить("Представление", МетаданныеПлагина.Синоним);
+
+ Возврат Новый ФиксированнаяСтруктура(Результат);
+КонецФункции
+
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+КонецПроцедуры
+// } Plugin interface
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/maps.txt" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/maps.txt"
new file mode 100644
index 00000000..190ebee1
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd.0 (2 408, 3 480)
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/renames.txt" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/renames.txt"
new file mode 100644
index 00000000..c2136ba7
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/renames.txt"
@@ -0,0 +1,9 @@
+0e885814-d19a-4506-a289-195637f6450f-->und\0e885814-d19a-4506-a289-195637f6450f
+0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd-->und\0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd
+0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd.0-->und\0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd.0
+74fd0118-e2b3-4f42-91ad-b86c72b75a5f.0\info-->und\74fd0118-e2b3-4f42-91ad-b86c72b75a5f.0\info
+74fd0118-e2b3-4f42-91ad-b86c72b75a5f.0\text-->ObjectModule.bsl
+copyinfo-->und\copyinfo
+root-->und\root
+version-->und\version
+versions-->und\versions
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/0e885814-d19a-4506-a289-195637f6450f" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/0e885814-d19a-4506-a289-195637f6450f"
new file mode 100644
index 00000000..7bca3e5d
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/0e885814-d19a-4506-a289-195637f6450f"
@@ -0,0 +1,17 @@
+{1,
+{0e885814-d19a-4506-a289-195637f6450f},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,40e240da-ab16-4125-8b97-f0f410e02f0d,18682f68-9644-43af-8b0e-c1949fd869cc,
+{0,
+{1,
+{0,0,74fd0118-e2b3-4f42-91ad-b86c72b75a5f},"МенеджерТестКлиентов",
+{1,"ru","Менеджер тест клиентов"},"",0,0}
+},0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,0},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0}
+}
+}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd"
new file mode 100644
index 00000000..7c5501ee
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd"
@@ -0,0 +1,15 @@
+{1,
+{1,
+{0,
+{12,
+{1,
+{0,0,0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd},"Форма",
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd.0" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd.0"
new file mode 100644
index 00000000..9f96e830
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd.0"
@@ -0,0 +1,4005 @@
+{3,
+{46,0,0,0,0,1,1,1,00000000-0000-0000-0000-000000000000,1,
+{1,0},0,0,1,1,1,0,1,0,
+{0,1,0},
+{0},1,
+{21,
+{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},9,"ФормаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,1},1,a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{96,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ФормаОтладка_Выполнить",
+{1,0},1,
+{12,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{97,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФормаОтладка_ВыполнитьРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,0,0},1,0,0,0,3,3},1,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{85,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},3,"ГруппаСтраницы",
+{1,0},
+{1,1,
+{"ru","Группа страницы"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1,
+{0,1,0}
+},2,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{87,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},4,"ГруппаСтраницаОсновные",
+{1,1,
+{"ru","Основные"}
+},
+{1,1,
+{"ru","Группа страница основные"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{16,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,
+{0},
+{1,0},1,
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,3,3,0,0,0},1,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{9,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ГруппаОсновная",
+{1,1,
+{"ru","Основная"}
+},
+{1,1,
+{"ru","Группа основная"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,1,0,0,0,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,2,0,1,1},3,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{11,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ГруппаКнопки",
+{1,1,
+{"ru","Группа кнопки"}
+},
+{1,1,
+{"ru","Группа кнопки"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,0,0,0,0,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,2,0,1,0},11,a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{1,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Подключить",
+{1,0},1,
+{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{2,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ПодключитьРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{5,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"ОткрытьСписок",
+{1,0},1,
+{3,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{6,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ОткрытьСписокРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{23,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_ОткрытьВСписке",
+{1,0},1,
+{5,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{24,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ОткрытьВСпискеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{21,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_НайтиВСписке",
+{1,0},1,
+{4,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{22,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_НайтиВСпискеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{25,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_ОткрытьВСпискеТекущий",
+{1,0},1,
+{6,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{26,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ОткрытьВСпискеТекущийРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{30,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_Провести",
+{1,0},1,
+{7,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{31,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ПровестиРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{60,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_УстановитьОтборВСписке",
+{1,0},1,
+{8,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{61,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_УстановитьОтборВСпискеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{68,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_ОтборВСпискеПоРегистратору",
+{1,0},1,
+{9,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{69,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ОтборВСпискеПоРегистраторуРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{79,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_Пауза",
+{1,0},1,
+{10,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{80,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ПаузаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{76,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_ЧислоСекунд",1,0,
+{1,0},
+{1,0},
+{1,
+{12}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{77,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ЧислоСекундКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{78,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ЧислоСекундРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{81,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_ЭтоПустойСписок",
+{1,0},1,
+{11,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{82,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ЭтоПустойСписокРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},1,0,1,
+{10,
+{12,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаКнопкиРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{13,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ГруппаДанные",
+{1,1,
+{"ru","Группа1"}
+},
+{1,1,
+{"ru","Группа1"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,0,0,0,0,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,2,0,1,0},7,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{62,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_ИмяПользователя",1,0,
+{1,0},
+{1,0},
+{1,
+{8}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{63,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ИмяПользователяКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{64,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ИмяПользователяРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{65,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_Пароль",1,0,
+{1,0},
+{1,0},
+{1,
+{9}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{66,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ПарольКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{67,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ПарольРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{35,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_ПолноеИмя",1,0,
+{1,0},
+{1,0},
+{1,
+{5}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{36,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ПолноеИмяКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{37,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ПолноеИмяРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{38,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_ТекстЗаголовка",1,0,
+{1,0},
+{1,0},
+{1,
+{6}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{39,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ТекстЗаголовкаКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{40,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ТекстЗаголовкаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{70,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_ЗаголовокСпискаРегистратора",1,0,
+{1,0},
+{1,0},
+{1,
+{11}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{71,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ЗаголовокСпискаРегистратораКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{72,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ЗаголовокСпискаРегистратораРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{73,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_ПредставлениеТипаРегистратора",1,0,
+{1,0},
+{1,0},
+{1,
+{10}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{74,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ПредставлениеТипаРегистратораКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{75,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ПредставлениеТипаРегистратораРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{27,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},3,"Отладка_ЗакрытьПослеПроведения",1,0,
+{1,0},
+{1,0},
+{1,
+{4}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{10,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},0,
+{1,0},
+{3,4,
+{0}
+},
+{7,3,0,1,100},0,0,0,2},
+{0,1,0},1,
+{21,
+{28,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ЗакрытьПослеПроведенияКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{29,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ЗакрытьПослеПроведенияРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},1,0,1,
+{10,
+{14,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаДанныеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{83,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ГруппаСтруктураПоиска",
+{1,1,
+{"ru","Структура поиска"}
+},
+{1,1,
+{"ru","Группа структура поиска"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,0,0,0,0,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,2,0,1,0},2,143c00f7-a42d-4cd7-9189-88e4467dc768,
+{51,
+{41,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},"Отладка_СтруктураПоиска",3,0,1,
+{1,1,
+{"ru","Структура поиска"}
+},
+{1,0},
+{1,
+{7}
+},0,1,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,1,2,2,1,1,0,0,0,1,2,0,0,1,1,
+{0},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,1,1,13,
+{"U"},
+{0,1,0},
+{0},1,
+{21,
+{42,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{21,
+{43,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,9,"Отладка_СтруктураПоискаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,1},0,1,0,0,0,3,3},4,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{98,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_СтруктураПоискаКлюч",1,0,
+{1,0},
+{1,0},
+{2,
+{7},
+{1}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,2,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{99,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаКлючКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{100,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаКлючРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{101,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_СтруктураПоискаЗначение",1,0,
+{1,0},
+{1,0},
+{2,
+{7},
+{2}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,2,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{102,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаЗначениеКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{103,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаЗначениеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{104,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_СтруктураПоискаПредставлениеТипаДанных",1,0,
+{1,0},
+{1,0},
+{2,
+{7},
+{3}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,2,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{105,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаПредставлениеТипаДанныхКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{106,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаПредставлениеТипаДанныхРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{107,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_СтруктураПоискаЗаголовокОкнаДанных",1,0,
+{1,0},
+{1,0},
+{2,
+{7},
+{4}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,2,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{108,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаЗаголовокОкнаДанныхКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{109,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаЗаголовокОкнаДанныхРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},2,2,1,0,
+{"Pattern"},"","",2,2,0,1,
+{10,
+{44,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,0,0,1,
+{4,
+{45,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаСтрокаПоиска",
+{1,0},
+{1,0},1,1,0,1,
+{1,0,2,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,1,0},1,0,0},1,
+{21,
+{46,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаСтрокаПоискаКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{10,
+{47,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаСтрокаПоискаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},2,
+{41,0},0,3,3},1,
+{4,
+{48,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,1,"Отладка_СтруктураПоискаСостояниеПросмотра",
+{1,0},
+{1,0},1,1,0,1,
+{1,0,2,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{7,3,0,1,100},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e},3,
+{0,1,0},1,0,0},1,
+{21,
+{49,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаСостояниеПросмотраКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{10,
+{50,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаСостояниеПросмотраРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},2,
+{41,1},0,3,3},1,
+{4,
+{51,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"Отладка_СтруктураПоискаУправлениеПоиском",
+{1,0},
+{1,0},1,1,0,1,
+{1,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,1,0},1,0,0,2},1,
+{21,
+{52,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаУправлениеПоискомКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{10,
+{53,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаУправлениеПоискомРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},2,
+{41,2},0,3,3},0,1,0,0,1,0,3,3,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{3,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отключить",
+{1,0},1,
+{2,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{4,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ОтключитьРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,2,3,3,0,0,1,0},1,0,1,
+{10,
+{84,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаСтруктураПоискаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,0,1,
+{10,
+{10,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаОсновнаяРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,0,1,
+{10,
+{88,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаСтраницаОсновныеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{89,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},4,"ГруппаСтраницаАлгоритм",
+{1,1,
+{"ru","Алгоритм"}
+},
+{1,1,
+{"ru","Группа страница алгоритм"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{16,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,
+{0},
+{1,0},1,
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,3,3,0,0,0},1,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{91,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ГруппаАлгоритм",
+{1,1,
+{"ru","Группа алгоритм"}
+},
+{1,1,
+{"ru","Группа алгоритм"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,1,0,0,0,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,2,0,1,2},1,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{93,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_Алгоритм",0,0,
+{1,0},
+{1,0},
+{1,
+{13}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},500,0,2,2,1,0,1,1,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,2,3,
+{-31},90,"Liberation Mono",1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{94,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_АлгоритмКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{95,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_АлгоритмРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},1,0,1,
+{10,
+{92,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаАлгоритмРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,0,1,
+{10,
+{90,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаСтраницаАлгоритмРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,0,1,
+{10,
+{86,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаСтраницыРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},"","",1,
+{21,
+{0},0,0,0,7,"Navigator",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0},"#Область Инициализация
+
+&НаКлиенте
+Перем ЗапущенныеТестКлиенты;
+
+&НаКлиенте
+Перем ТестируемоеОкно;
+
+&НаКлиенте
+Перем ТестируемыйЭлемент;
+
+&НаКлиенте
+Перем ОписаниеОшибки;
+
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+
+#КонецОбласти
+
+#Область Интерфейс
+
+&НаКлиенте
+Процедура ПодключитьТестКлиент_ПакетныйРежим(Параметры_xddTestClient) Экспорт
+
+ Если Параметры_xddTestClient.Количество() > 0 И ТипЗнч(Параметры_xddTestClient[0]) <> Тип(""ФиксированныйМассив"") Тогда
+ НовыйМассивПараметров = Новый Массив;
+ НовыйМассивПараметров.Добавить(Параметры_xddTestClient);
+ Параметры_xddTestClient = НовыйМассивПараметров;
+ КонецЕсли;
+
+ Для Каждого ОчередныеПараметры Из Параметры_xddTestClient Цикл
+ Попытка
+ ПользовательПарольПорт = СтрРазделить(ОчередныеПараметры[0], "":"");
+ Если ПользовательПарольПорт.Количество() = 3 Тогда
+ ТестКлиент = ПодключитьТестКлиент(
+ ПользовательПарольПорт[0],
+ ПользовательПарольПорт[1],
+ ПользовательПарольПорт[2]);
+ ЗапомнитьДанныеТестКлиента(ТестКлиент, ПользовательПарольПорт[0], ПользовательПарольПорт[2]);
+ Иначе
+ ТестКлиент = ПодключитьТестКлиент();
+ ЗапомнитьДанныеТестКлиента(ТестКлиент, """", """");
+ КонецЕсли;
+ Исключение
+ Инфо = ИнформацияОбОшибке();
+ ОписаниеОшибки = ""Ошибка подключения тест-клиента в пакетном режиме
+ |"" + ПодробноеПредставлениеОшибки(Инфо);
+
+ ЗафиксироватьОшибкуВЖурналеРегистрации(""xUnitFor1C.ПодключитьТестКлиент"", ОписаниеОшибки);
+ Сообщить(ОписаниеОшибки, СтатусСообщения.ОченьВажное);
+ КонецПопытки;
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПодключитьТестКлиент(ИмяПользователя = """", Пароль = """", Порт = 1538) Экспорт
+
+ Результат = Неопределено;
+
+ Попытка
+ Выполнить ""Результат = Новый ТестируемоеПриложение(, XMLСтрока(Порт));"";
+ Исключение
+ КонецПопытки;
+
+ Если Результат = Неопределено Тогда
+ ВызватьИсключение ""Не удалось создать объект ТестируемоеПриложение.
+ |Возможно, что 1С:Предприятие 8 не было запущено в режиме Менеджера тестирования (ключ командной строки /TESTMANAGER)
+ |При запуске Предприятия через Конфигуратор можно включить этот режим в параметрах конфигуратора Сервис -> Параметры -> Запуск 1С:Предприятия -> Дополнительные -> Автоматизированное тестирование -> пункт """"Запускать как менеджер тестирования""""."";
+ КонецЕсли;
+
+ // Попытка подключиться к уже запущенному приложению.
+ Подключен = Ложь;
+ Попытка
+ Результат.УстановитьСоединение();
+ Подключен = Истина;
+ Исключение
+ КонецПопытки;
+
+ Если Подключен Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ ЗапуститьПриложение(СтрокаЗапускаТестКлиента(ИмяПользователя, Пароль, Порт));
+
+ ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутВСекундах();
+ ОписаниеОшибкиСоединения = """";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ Результат.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+
+ Если Не Подключен Тогда
+ ВызватьИсключение СтрШаблон(
+ ""Не смогли установить соединение с тестовым приложением для пользователя %1!
+ |%2"",
+ ИмяПользователя,
+ ОписаниеОшибкиСоединения);
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ЗавершитьВсеТестКлиенты() Экспорт
+
+ Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
+ Возврат;
+ КонецЕсли;
+
+ Для Каждого ТекЗначение Из ЗапущенныеТестКлиенты Цикл
+ Если ЭтоLinux() Тогда
+ ЗапуститьПриложение(""kill -9 `ps aux | grep -ie TESTCLIENT | grep -ie 1cv8c | awk '{print $2}'`"");
+ Иначе
+ Scr = Новый COMОбъект(""MSScriptControl.ScriptControl"");
+ Scr.Language = ""vbscript"";
+ Scr.AddCode(ТекстСкриптаЗавершитьТестКлиент(ТекЗначение.Порт));
+ КонецЕсли;
+ КонецЦикла;
+
+ ЗапущенныеТестКлиенты.Очистить();
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ТестКлиентПоУмолчанию() Экспорт
+
+ Если ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
+ Возврат ЗапущенныеТестКлиенты[0].ТестКлиент;
+ КонецЕсли;
+
+ Результат = ПодключитьТестКлиент();
+ ЗапомнитьДанныеТестКлиента(Результат, """", """");
+
+ ПолучитьОсновноеОкно();
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТестКлиентПоПараметрам(ИмяПользователя = """", Пароль = """", Порт = 1538) Экспорт
+
+ Результат = НайтиЗапущенныйКлиент(ИмяПользователя, Порт);
+ Если Результат <> Неопределено Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Результат = ПодключитьТестКлиент(ИмяПользователя, Пароль, Порт);
+ ЗапомнитьДанныеТестКлиента(Результат, ИмяПользователя, Порт);
+
+ ПолучитьОсновноеОкно();
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ИнтерфейсАвтоматическогоТестирования
+
+&НаКлиенте
+Функция ПолучитьОписаниеОшибки() Экспорт
+ Возврат ОписаниеОшибки;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестируемыйЭлемент() Экспорт
+ Возврат ТестируемыйЭлемент;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестируемоеОкно() Экспорт
+ Возврат ТестируемоеОкно;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьОкно(ТекстЗаголовка, ОжиданиеСуществования= Истина) Экспорт
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ Если ОжиданиеСуществования Тогда
+ ТестируемоеОкно= ТестКлиент.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ТекстЗаголовка, , 20);
+ Иначе
+ // Несуществующее окно НайтиОбъект ищет очень долго и вызывает ошибку при последующих подключениях
+ ТестируемоеОкно= Неопределено;
+ тестируемыеОкна= ТестКлиент.НайтиОбъекты(Тип(""ТестируемоеОкноКлиентскогоПриложения""), , , 20);
+ Для Каждого ТeкущееОкно Из тестируемыеОкна Цикл
+ Если Найти(ТeкущееОкно.Заголовок, ТекстЗаголовка) Тогда
+ ТестируемоеОкно= ТeкущееОкно;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ Возврат ТестируемоеОкно;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьОсновноеОкно() Экспорт
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ОкнаТестКлиента= ТестКлиент.НайтиОбъекты(Тип(""ТестируемоеОкноКлиентскогоПриложения""), , , 20);
+
+ ТестируемоеОкно= Неопределено;
+
+ Для каждого ОкноТестКлиента Из ОкнаТестКлиента Цикл
+ Если ОкноТестКлиента.Основное Тогда
+ ТестируемоеОкно= ОкноТестКлиента;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат ТестируемоеОкно;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ОткрытьФормуСписка(ПолноеИмяОбъектаМетаданных, ТекстЗаголовка= Неопределено) Экспорт
+
+ ОсновноеОкно= ПолучитьОсновноеОкно();
+
+ ОсновноеОкно.ВыполнитьКоманду(""e1cib/list/"" + ПолноеИмяОбъектаМетаданных);
+
+ Если ТекстЗаголовка <> Неопределено Тогда
+ ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка);
+ Если ТестируемоеОкно = Неопределено Тогда
+ ТестируемыйЭлемент= Неопределено;
+ Иначе
+ ТестируемыйЭлемент= ТестируемоеОкно.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), ""Список"", , 20);
+ КонецЕсли;
+ Иначе
+ ТестируемоеОкно= Неопределено;
+ ТестируемыйЭлемент= Неопределено;
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция НайтиВСписке(СтруктураПоиска, Знач Список= Неопределено) Экспорт
+
+ Если Список = Неопределено Тогда
+ Список = ТестируемыйЭлемент;
+ КонецЕсли;
+
+ УбедитьсяЧтоЭтоСписок(Список);
+
+ Если ЭтоПустойСписок(Список) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ОписаниеСтроки= КОписаниюСтроки(СтруктураПоиска);
+ УстановитьОтборВСписке(ОписаниеСтроки, Список);
+
+ Список.ПерейтиКПервойСтроке();
+
+ Попытка
+ // Падает когда такой строки нет в списке? Платформа 8.3.10.2580
+ Возврат Список.ПерейтиКСтроке(ОписаниеСтроки);
+ Исключение
+ Возврат Ложь;
+ КонецПопытки;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОткрытьВСписке(ТекстЗаголовка, СтруктураПоиска= Неопределено) Экспорт
+
+ УбедитьсяЧтоЭтоСписок();
+
+ Если СтруктураПоиска <> Неопределено Тогда
+ НайтиВСписке(КОписаниюСтроки(СтруктураПоиска));
+ КонецЕсли;
+
+ ТестируемыйЭлемент.Выбрать();
+
+ УстановитьТестируемоеОкно(ТекстЗаголовка);
+
+ Возврат (ТестируемоеОкно <> Неопределено);
+
+КонецФункции
+
+&НаКлиенте
+Функция КоличествоСтрокВСписке(Знач ТестСписок= Неопределено, КоличествоСлужебныхСтрок= 0) Экспорт
+
+ Если ТестСписок = Неопределено Тогда
+ ТестСписок= ТестируемыйЭлемент;
+ КонецЕсли;
+
+ УбедитьсяЧтоЭтоСписок(ТестСписок);
+
+ ТестируемыйЭлемент.ВыделитьВсеСтроки();
+ ВыделенныеСтроки= ТестируемыйЭлемент.ПолучитьВыделенныеСтроки();
+
+ Возврат ВыделенныеСтроки.Количество() - КоличествоСлужебныхСтрок;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭтотСписокПустой(КоличествоСлужебныхСтрок= 0) Экспорт
+
+ УбедитьсяЧтоЭтоСписок(ТестируемыйЭлемент);
+
+ Возврат ЭтоПустойСписок(ТестируемыйЭлемент, КоличествоСлужебныхСтрок);
+
+КонецФункции
+
+&НаКлиенте
+Функция Провести(ЗакрытьПослеПроведения= Ложь) Экспорт
+
+ ОписаниеОшибки= """";
+
+ Если ЗакрытьПослеПроведения Тогда
+ ИмяКнопки= ""ФормаПровестиИЗакрыть"";
+ Иначе
+ ТекстЗаголовкаКнопки= ""ФормаПровести"";
+ КонецЕсли;
+
+ ЗаголовокПроводимогоОкна= ТестируемоеОкно.Заголовок;
+
+ ТестируемаяФорма= ТестируемоеОкно.НайтиОбъект(Тип(""ТестируемаяФорма""), , , 20);
+
+ Кнопка= ТестируемаяФорма.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), , ИмяКнопки, 20);
+
+ Если Кнопка <> Неопределено Тогда
+
+ Кнопка.Нажать();
+
+ ПроведениеВыполнено= Истина;
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ИнформацияОбОшибке= ТестКлиент.ПолучитьТекущуюИнформациюОбОшибке();
+
+ Если ИнформацияОбОшибке <> Неопределено Тогда
+ ОписаниеОшибки=
+ НСтр(""ru='Описание=';en='Description='"") + ИнформацияОбОшибке.Описание + ""'"" + Символы.ПС +
+ НСтр(""ru='ИмяМодуля=';en='ModuleName='"") + ИнформацияОбОшибке.ИмяМодуля + ""'"" + Символы.ПС +
+ НСтр(""ru='НомерСтроки=';en='LineNumber='"") + ИнформацияОбОшибке.НомерСтроки + ""'"" + Символы.ПС +
+ НСтр(""ru='ИсходнаяСтрока=';en='SourceLine='"") + ИнформацияОбОшибке.ИсходнаяСтрока;
+
+ ПроведениеВыполнено= Ложь;
+ Иначе
+
+ ОкноОшибки= ПолучитьОкно(""1С:Предприятие"", Ложь);
+
+ Если ОкноОшибки <> Неопределено Тогда
+
+ ПолеОписанияОшибки= ОкноОшибки.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), ""Ошибка*"", , 20);
+
+ Если ПолеОписанияОшибки <> Неопределено Тогда
+ ОписаниеОшибки= ПолеОписанияОшибки.ТекстЗаголовка;
+ ПроведениеВыполнено= Ложь;
+ КонецЕсли;
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Иначе
+ ПроведениеВыполнено= Ложь;
+ ОписаниеОшибки= ""Кнопка не найдена."";
+ КонецЕсли;
+
+ Возврат ПроведениеВыполнено;
+
+КонецФункции
+
+&НаКлиенте
+// ПараметрыОтбора - структура или массив структур с полями
+//
+// Ключ
+// Значение
+// ЗаголовокОкнаВыбораДанных
+// ПредставлениеТипаДанных
+//
+// Последние два поля используются для выбора типа данных когда
+// значение отбора соодержится в колонке составного типа
+Функция УстановитьОтборВСписке(ПараметрыОтбора, Знач Список= Неопределено) Экспорт
+
+ Если Список = Неопределено Тогда
+ Список = ТестируемыйЭлемент;
+ КонецЕсли;
+
+ Если ЭтоПустойСписок(Список) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ТипПараметровОтбора= ТипЗнч(ПараметрыОтбора);
+
+ Если ТипПараметровОтбора = Тип(""Структура"") Тогда
+ Если ПараметрыОтбора.Свойство(""Ключ"") Тогда
+ МассивОтбора= Новый Массив;
+ МассивОтбора.Добавить(ПараметрыОтбора);
+ Иначе
+ МассивОтбора= КОписаниюСтроки(ПараметрыОтбора);
+ КонецЕсли;
+ ИначеЕсли ТипПараметровОтбора = Тип(""Строка"") Тогда
+ МассивОтбора= КОписаниюСтроки(ПараметрыОтбора);
+ Иначе
+ МассивОтбора= ПараметрыОтбора;
+ КонецЕсли;
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ОкноСписка= ТестКлиент.ПолучитьАктивноеОкно();
+
+ КнопкаРасширенныйПоиск = Список.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ""Расширенный поиск"");
+
+ Если КнопкаРасширенныйПоиск = Неопределено Тогда
+ КнопкаРасширенныйПоиск = Список.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ""Найти..."");
+ КонецЕсли;
+
+ Если КнопкаРасширенныйПоиск = Неопределено Тогда
+ ВызватьИсключение ""Не найдена кнопка установки отбора в списке."";
+ КонецЕсли;
+
+ Для Каждого Элемент Из МассивОтбора Цикл
+
+ КнопкаРасширенныйПоиск.Нажать();
+
+ РасширенныйПоиск= ПолучитьСтруктуруОкнаПриложения(ТестКлиент, ""Найти"");
+
+ ПолеГдеИскать= РасширенныйПоиск.Форма.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), ""&Где искать"");
+
+ ПолеГдеИскать.Активизировать();
+ ПолеГдеИскать.Выбрать();
+ ПолеГдеИскать.ВвестиТекст(Элемент.Ключ);
+
+ ПолеЧтоИскать= РасширенныйПоиск.Форма.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), ""&Что искать"");
+
+ ПолеЧтоИскать.Активизировать();
+ ПолеЧтоИскать.Выбрать();
+
+ // В поле что искать может быть составной тип
+ // В случае составного типа в элементе структуры отбора
+ // Должны быть ПредставлениеДанных по которому выбирается тип данных,
+ // ЗаголовокОкнаВыбораДанных, которое откроется после выбора типа
+ // и из Значения можно было сформировать описание строки отбора в списке
+
+ // Можно по параметрам определять будет ли выбор типа данных
+ // Там есть в таком случае ЗаголовокОкнаВыбораДанных
+ ЕстьВыборТипаДанных= ПоявилосьОкно(ТестКлиент, ""Выбор типа данных"", , 1);
+
+ Если НЕ ЕстьВыборТипаДанных Тогда
+ //TODO: закрывать окно списка выбора элемента чтобы вводить текст напрямую в поле Что искать
+ АктивноеОкноТестирования= ТестКлиент.ПолучитьАктивноеОкно();
+ Если АктивноеОкноТестирования <> Неопределено
+ И НЕ СтрНачинаетсяС(АктивноеОкноТестирования.Заголовок, ""Найти"")
+ И АктивноеОкноТестирования <> ОкноСписка
+ Тогда
+ АктивноеОкноТестирования.Закрыть();
+ КонецЕсли;
+ ПолеЧтоИскать.ВвестиТекст(Элемент.Значение);
+ Иначе
+ ВыборТипаДанных= ПолучитьСтруктуруОкнаПриложения(ТестКлиент, ""Выбор типа данных"");
+ ТипДанныхВыбран= ВыбратьТипДанных(ВыборТипаДанных, Элемент.ПредставлениеТипаДанных);
+ Если НЕ ТипДанныхВыбран Тогда
+ РасширенныйПоиск.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+ ВыборДанных= ПолучитьСтруктуруОкнаПриложения(ТестКлиент, Элемент.ЗаголовокОкнаВыбораДанных);
+ СписокВыбораДанных= НайтиТаблицуФормы(ВыборДанных.Форма, , ""Список"");
+ СтрокаНайдена= НайтиВСписке(КОписаниюСтроки(Элемент.Значение), СписокВыбораДанных);
+ Если СтрокаНайдена Тогда
+ СписокВыбораДанных.Выбрать();
+ Иначе
+ //ОписаниеОшибки= СтрШаблон(""Строка с %1 = %2 не найдена"", Элемент.Ключ, Элемент.Значение);
+ РасширенныйПоиск.Окно.Закрыть();
+ ПолеЧтоИскать.ВвестиТекст("""");
+ КонецЕсли;
+ КонецЕсли;
+
+ КнопкаНайти= РасширенныйПоиск.Форма.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ""&Найти"");
+ КнопкаНайти.Нажать();
+
+ КонецЦикла;
+
+ Возврат Истина;
+
+КонецФункции
+
+&НаКлиенте
+Функция ВыбратьТипДанных(ВыборТипаДанных, ПредставлениеТипаДанных)
+
+ ТаблицаТипов = НайтиТаблицуФормы(ВыборТипаДанных.Форма, , ""TypeTree"");
+
+ ТаблицаТипов.Активизировать();
+
+ ТаблицаТипов.ПерейтиКПервойСтроке();
+
+ ТипРегистратораНайден= ТаблицаТипов.ПерейтиКСтроке(КОписаниюСтроки(""="" + ПредставлениеТипаДанных));
+
+ Если Не ТипРегистратораНайден Тогда
+ ОписаниеОшибки= СтрШаблон(""Не найден тип данных """"%1"""""", ПредставлениеТипаДанных);
+ ВыборТипаДанных.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+
+ ТаблицаТипов.Выбрать();
+
+ Возврат Истина;
+
+КонецФункции
+
+
+&НаКлиенте
+Функция УстановитьОтборВСпискеПоРегистратору(ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, СтруктураПоискаРегистратора) Экспорт
+
+ ОписаниеОшибки= """";
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ КнопкаНастроитьСписок = НайтиКнопкуФормы(ТестируемоеОкно, ""Настроить список*"");
+
+ Если КнопкаНастроитьСписок = Неопределено Тогда
+ ОписаниеОшибки= ""Не найдены настройки списка."";
+ Возврат Ложь;
+ КонецЕсли;
+
+ КнопкаНастроитьСписок.Нажать();
+
+ Если Не ПоявилосьОкно(ТестКлиент, ""Настройка списка"") Тогда
+ ОписаниеОшибки= ""Не открылось окно Настройка списка."";
+ Возврат Ложь;
+ КонецЕсли;
+
+ НастройкаСписка= ПолучитьСтруктуруОкнаПриложения(ТестКлиент, ""Настройка списка"");
+
+ ТаблицаДоступныеПоля = НайтиТаблицуФормы(НастройкаСписка.Форма, ""Доступные поля"");
+
+ ТаблицаВыбраныеПоля= НайтиТаблицуФормы(НастройкаСписка.Форма, ""Отбор. Элементы"");
+
+ ТаблицаВыбраныеПоля.Активизировать();
+
+ // Удаляем все отборы
+
+ Пока Не ЭтоПустойСписок(ТаблицаВыбраныеПоля, 1) Цикл
+ ТаблицаВыбраныеПоля.ПерейтиКПоследнейСтроке();
+ ТаблицаВыбраныеПоля.УдалитьСтроку();
+ КонецЦикла;
+
+ ЕстьОтборРегистратор= Ложь;
+
+ //ТаблицаВыбраныеПоля.ПерейтиКПервойСтроке();
+ //ЕстьОтборРегистратор= ТаблицаВыбраныеПоля.ПерейтиКСтроке(КОписаниюСтроки(""Доступные поля=Регистратор""), НаправлениеПереходаКСтроке.Вниз);
+
+ // Добавляем в отбор регистратор когда его там нет
+
+ Если Не ЕстьОтборРегистратор Тогда
+ ЕстьПолеРегистратор= ТаблицаДоступныеПоля.ПерейтиКСтроке(КОписаниюСтроки(""Доступные поля=Регистратор""));
+ Если Не ЕстьПолеРегистратор Тогда
+ ОписаниеОшибки= ""Не найдено поле отбора Регистратор."";
+ КнопкаЗавершитьРедактирование = НайтиКнопкуФормы(НастройкаСписка.Форма, ""Отмена"");
+ КнопкаЗавершитьРедактирование.Нажать();
+ Возврат Ложь;
+ Иначе
+ ТаблицаДоступныеПоля.Выбрать();
+ КонецЕсли;
+ КонецЕсли;
+
+ // Переходим к регистратору
+
+ ТаблицаВыбраныеПоля.Активизировать();
+
+ ТаблицаВыбраныеПоля.ПерейтиКСтроке(КОписаниюСтроки(""Представление=Регистратор""));
+
+ // Устанавливаем использование когда оно не установлено
+
+ ПолеИспользование = НайтиПолеФормы(НастройкаСписка.Форма, ""Использование"");
+
+ Если ПолеИспользование.ПолучитьПредставлениеДанных() <> ""Да"" Тогда
+ ПолеИспользование.УстановитьОтметку();
+ КонецЕсли;
+
+ ПолеЗначение = НайтиПолеФормы(НастройкаСписка.Форма, ""Значение"");
+ ПолеЗначение.Активизировать();
+
+ ТаблицаВыбраныеПоля.ИзменитьСтроку();
+
+ ПолеЗначение.Выбрать();
+
+ ВыборТипаДанных = ПолучитьСтруктуруОкнаПриложения(ТестКлиент, ""Выбор типа данных"");
+
+ ТипДанныхВыбран= ВыбратьТипДанных(ВыборТипаДанных, ПредставлениеТипаРегистратора);
+
+ Если Не ТипДанныхВыбран Тогда
+ ОписаниеОшибки= СтрШаблон(""Не найден регистратор с типом """"%1"""""", ПредставлениеТипаРегистратора);
+ НастройкаСписка.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+
+ ВыборРегистратора = ПолучитьСтруктуруОкнаПриложения(ТестКлиент, ЗаголовокСпискаРегистратора);
+
+ Если ВыборРегистратора.Окно= Неопределено Тогда
+ ОписаниеОшибки= СтрШаблон(""Не найдена форма выбора регистратора с заголовком """"%1"""""", ЗаголовокСпискаРегистратора);
+ ВыборТипаДанных.Окно.Закрыть();
+ НастройкаСписка.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+
+ ТаблицаДокументов= НайтиТаблицуФормы(ВыборРегистратора.Форма, , ""Список"");
+
+ Если ЭтоПустойСписок(ТаблицаДокументов) Тогда
+ РегистраторНайден= Ложь;
+ Иначе
+ ТаблицаДокументов.ПерейтиКПервойСтроке();
+ РегистраторНайден= ТаблицаДокументов.ПерейтиКСтроке(КОписаниюСтроки(СтруктураПоискаРегистратора));
+ КонецЕсли;
+
+ Если РегистраторНайден Тогда
+ ТаблицаДокументов.Выбрать();
+ ТаблицаВыбраныеПоля.ЗакончитьРедактированиеСтроки(Ложь);
+ Иначе
+ ОписаниеОшибки= ""Не найден регистратор."";
+ ВыборРегистратора.Окно.Закрыть();
+ НастройкаСписка.Окно.Закрыть();
+ Возврат Ложь;
+ КонецЕсли;
+
+ КнопкаЗавершитьРедактирование = НайтиКнопкуФормы(НастройкаСписка.Форма, ""Завершить редактирование"");
+ КнопкаЗавершитьРедактирование.Нажать();
+
+ Возврат РегистраторНайден;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ВспомогательныеПроцедуры
+
+&НаКлиенте
+Функция ПолучитьКоличествоСтрокВСписке(ТестСписок)
+ //TODO: когда в списке больше тысячи строк выдаётся сообщение и выделение будет долгим.
+ // Нужно найти цивилизованный способ получения количества строк в списке.
+ ТестСписок.ВыделитьВсеСтроки();
+ Возврат ТестСписок.ПолучитьВыделенныеСтроки().Количество();
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоПустойСписок(ТестСписок, КоличествоСлужебныхСтрок= 0)
+ Попытка
+ ТестСписок.ПерейтиКСтроке();
+ Для х= 0 По КоличествоСлужебныхСтрок - 1 Цикл
+ ТестСписок.ПерейтиКСледующейСтроке();
+ КонецЦикла;
+ Возврат Ложь;
+ Исключение
+ Возврат Истина;
+ КонецПопытки;
+КонецФункции
+
+&НаКлиенте
+Процедура Пауза(ЧислоСекунд)
+ WSS=Новый COMОбъект(""WScript.Shell"");
+ WSS.Run(СтрШаблон(""ping -n %1 -w 1000 127.0.0.1"", XMLСтрока(ЧислоСекунд + 1)) , 0, Истина);
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПоявилосьОкно(ТестПриложение, ТекстЗаголовка= Неопределено, Имя= Неопределено, Таймаут= 20)
+ Возврат ТестПриложение.ОжидатьОтображениеОбъекта(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ТекстЗаголовка, Имя, Таймаут);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиОкноПриложения(ТестПриложение, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиФормуОкнаПриложения(ТестПриложение, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ ТестОкно= НайтиОкноПриложения(ТестПриложение, ТекстЗаголовка, Имя);
+ Если ТестОкно = Неопределено Тогда
+ Возврат ТестОкно;
+ КонецЕсли;
+ Возврат ТестОкно.НайтиОбъект(Тип(""ТестируемаяФорма""), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиФормуОкна(ТестФорма, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестФорма.НайтиОбъект(Тип(""ТестируемаяФорма""), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьСтруктуруОкнаПриложения(ТестПриложение, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ СтруктураОкна= Новый Структура(""Окно,Форма"");
+ СтруктураОкна.Окно= НайтиОкноПриложения(ТестПриложение, ТекстЗаголовка, Имя);
+ Если СтруктураОкна.Окно = Неопределено Тогда
+ ВызватьИсключение ""Не найдено окно приложения с заголовком "" + ТекстЗаголовка;
+ КонецЕсли;
+ СтруктураОкна.Форма= НайтиФормуОкна(СтруктураОкна.Окно, ТекстЗаголовка, Имя);
+ Возврат СтруктураОкна;
+КонецФункции
+
+&НаКлиенте
+Функция НайтиТаблицуФормы(ТестФорма, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестФорма.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиПолеФормы(ТестФорма, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестФорма.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаКлиенте
+Функция НайтиКнопкуФормы(ТестФорма, ТекстЗаголовка= Неопределено, Имя= Неопределено)
+ Возврат ТестФорма.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ТекстЗаголовка, Имя, 20);
+КонецФункции
+
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение(""Объект"");
+КонецФункции
+
+&НаКлиенте
+Функция СтрокаЗапускаТестКлиента(ИмяПользователя = """", Пароль = """", Порт = """")
+
+ Если Не ЗначениеЗаполнено(ИмяПользователя) Тогда
+ ИмяПользователя = ИмяТекущегоПользователя();
+ КонецЕсли;
+
+ СтрокаЗапуска1с = КаталогПрограммы() + ""1cv8c"";
+
+ Если Не ЭтоLinux() Тогда
+ СтрокаЗапуска1с = СтрШаблон(""%1.exe"", СтрокаЗапуска1с);;
+ КонецЕсли;
+
+ Результат = СтрШаблон(
+ ""%1 ENTERPRISE /IBConnectionString""""%2"""" /WA- /N""""%3"""" %4 /TESTCLIENT -TPort%5"",
+ СтрокаЗапуска1с,
+ СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """""""", """"""""""""),
+ ИмяПользователя,
+ ?(ПустаяСтрока(Пароль), """","" /P"""""" + Пароль + """"""""),
+ XMLСтрока(Порт));
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаСервереБезКонтекста
+Функция ИмяТекущегоПользователя()
+
+ Возврат ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТаймаутВСекундах()
+
+ Возврат 20;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТекстСкриптаЗавершитьТестКлиент(НомерПорта)
+
+ Результат =
+
+ ""Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"""")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"""")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next"";
+
+ Если ЗначениеЗаполнено(НомерПорта) Тогда
+ Результат= СтрЗаменить(Результат, ""%/TESTCLIENT%"", ""%/TESTCLIENT -TPort"" + XMLСтрока(НомерПорта) + ""%"");
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолноеИмяИсполняемогоФайла()
+
+ Возврат СтрШаблон(""%1%2%3"",
+ КаталогПрограммы(),
+ ""1cv8c"",
+ РасширениеИсполняемогоФайла());
+
+КонецФункции
+
+&НаКлиенте
+Функция РасширениеИсполняемогоФайла()
+
+ Если ЭтоLinux() Тогда
+ Возврат """";
+ Иначе
+ Возврат "".exe"";
+ КонецЕсли;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоLinux()
+
+ СисИнфо = Новый СистемнаяИнформация;
+ ВерсияПриложения = СисИнфо.ВерсияПриложения;
+
+ Возврат СтрНайти(Строка(СисИнфо.ТипПлатформы), ""Linux"") > 0;
+
+КонецФункции
+
+&НаСервере
+Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ИдентификаторГенератораОтчета, Знач ОписаниеОшибки)
+ ЗаписьЖурналаРегистрации(ИдентификаторГенератораОтчета, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗапомнитьДанныеТестКлиента(ТестКлиент, ИмяПользователя, Порт)
+
+ ДанныеТестКлиента = Новый Структура;
+ ДанныеТестКлиента.Вставить(""ТестКлиент"", ТестКлиент);
+ ДанныеТестКлиента.Вставить(""ИмяПользователя"", ИмяПользователя);
+ ДанныеТестКлиента.Вставить(""Порт"", Порт);
+
+ Если ЗапущенныеТестКлиенты = Неопределено Тогда
+ ЗапущенныеТестКлиенты = Новый Массив;
+ КонецЕсли;
+
+ ЗапущенныеТестКлиенты.Добавить(ДанныеТестКлиента);
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция НайтиЗапущенныйКлиент(ИмяПользователя, Порт)
+
+ Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Для Каждого ТекЗапущенныйКлиент Из ЗапущенныеТестКлиенты Цикл
+ Если ТекЗапущенныйКлиент.ИмяПользователя = ИмяПользователя
+ И ТекЗапущенныйКлиент.Порт = Порт Тогда
+ Возврат ТекЗапущенныйКлиент.ТестКлиент;
+ КонецЕсли;
+ КонецЦикла;
+
+КонецФункции
+
+&НаКлиенте
+Процедура УстановитьТестируемоеОкно(ТекстЗаголовка)
+ Если ТекстЗаголовка = Неопределено Тогда
+ ТестируемоеОкно= Неопределено;
+ Иначе
+ ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УбедитьсяЧтоЭтоСписок(Знач ТестСписок= Неопределено) Экспорт
+
+ Если ТестСписок = Неопределено Тогда
+ ТестСписок= ТестируемыйЭлемент;
+ КонецЕсли;
+
+ Если ТипЗнч(ТестСписок) <> Тип(""ТестируемаяТаблицаФормы"") Тогда
+ ВызватьИсключение ""Тестируемый элемент не являяется списком"";
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+// Формирует из параметра Соответствие для использования в тиовых методах поиска
+// Поддерживаемые типы
+// Структура
+// Массив Структуры Имя, Значение
+// Строка ""Имя=Значение;...""
+// Соответствие
+// Неопределено
+Функция КОписаниюСтроки(Параметр)
+
+ ТипПараметра= ТипЗнч(Параметр);
+
+ ОписаниеСтроки= Неопределено;
+
+ Если ТипПараметра = Тип(""Неопределено"") Тогда
+
+ ОписаниеСтроки= Новый Соответствие();
+
+ ИначеЕсли ТипПараметра = Тип(""Соответствие"") Тогда
+
+ ОписаниеСтроки= Параметр;
+
+ ИначеЕсли ТипПараметра = Тип(""Структура"") Или ТипПараметра = Тип(""Массив"") Тогда
+
+ ОписаниеСтроки = Новый Соответствие();
+
+ Для каждого Элемент Из Параметр Цикл
+ ОписаниеСтроки.Вставить(Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+
+ ИначеЕсли ТипПараметра = Тип(""Строка"") Тогда
+
+ ОписаниеСтроки = Новый Соответствие();
+
+ Пары= СтрРазделить(Параметр, "";"", Истина);
+
+ Для каждого Пара Из Пары Цикл
+
+ ИмяЗначение= СтрРазделить(Пара, ""="", Истина);
+
+ Если ИмяЗначение.Количество() = 0 Тогда
+ Продолжить;
+ ИначеЕсли ИмяЗначение.Количество() = 1 Тогда
+ Значение= """";
+ Иначе
+ Значение= ИмяЗначение[1];
+ КонецЕсли;
+
+ Попытка
+ ОписаниеСтроки.Вставить(ИмяЗначение[0], Значение);
+ Исключение
+ КонецПопытки;
+
+ КонецЦикла;
+
+
+
+ Иначе
+
+ ВызватьИсключение ""Неподдерживаемый тип "" + ТипПараметра;
+
+ КонецЕсли;
+
+ Возврат ОписаниеСтроки;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область Отладка
+
+&НаКлиенте
+Функция СформироватьСтруктуруПоиска()
+
+ СтруктураПоиска= Новый Массив;
+
+ Для каждого Элемент Из Отладка_СтруктураПоиска Цикл
+ ЭлементПоиска= Новый Структура(""Ключ,Значение,ПредставлениеТипаДанных,ЗаголовокОкнаВыбораДанных"");
+ ЗаполнитьЗначенияСвойств(ЭлементПоиска, Элемент);
+ СтруктураПоиска.Добавить(ЭлементПоиска);
+ КонецЦикла;
+
+ Возврат СтруктураПоиска;
+
+КонецФункции
+
+&НаКлиенте
+Процедура Отладка_Подключить(Команда)
+ ТестКлиентПоПараметрам(Отладка_ИмяПользователя, Отладка_Пароль, 1538);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Отключить(Команда)
+ ЗавершитьВсеТестКлиенты();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьСписок(Команда)
+ ОткрытьФормуСписка(Отладка_ПолноеИмя, Отладка_ТекстЗаголовка);
+ Если ТестируемоеОкно = Неопределено Тогда
+ ВызватьИсключение ""Не найдено окно с заголовком "" + Отладка_ПолноеИмя ;
+ КонецЕсли;
+ Если ТестируемыйЭлемент = Неопределено Тогда
+ ВызватьИсключение ""Форма не содержит список"";
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьВСписке(Команда)
+
+ СтруктураПоиска= СформироватьСтруктуруПоиска();
+
+ ОткрытьВСписке(Отладка_ТекстЗаголовка, Отладка_СтруктураПоиска);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_НайтиВСписке(Команда)
+
+ НайтиВСписке(СформироватьСтруктуруПоиска());
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьВСпискеТекущий(Команда)
+ ОткрытьВСписке(Отладка_ТекстЗаголовка);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Провести(Команда)
+ Провести(Отладка_ЗакрытьПослеПроведения);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_УстановитьОтборВСписке(Команда)
+
+ УстановитьОтборВСписке(СформироватьСтруктуруПоиска());
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОтборВСпискеПоРегистратору(Команда)
+ ОтборУстановлен= УстановитьОтборВСпискеПоРегистратору(Отладка_ЗаголовокСпискаРегистратора, Отладка_ПредставлениеТипаРегистратора, СформироватьСтруктуруПоиска());
+ Если ОтборУстановлен Тогда
+ Сообщить(""Отбор установлен"");
+ Иначе
+ Сообщить(ОписаниеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Пауза(Команда)
+ Сообщить(ТекущаяДата());
+ Пауза(Отладка_ЧислоСекунд);
+ Сообщить(ТекущаяДата());
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ЭтоПустойСписок(Команда)
+ Сообщить(ЭтоПустойСписок(ТестируемыйЭлемент));
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Выполнить(Команда)
+ Выполнить(Отладка_Алгоритм);
+КонецПроцедуры
+
+#КонецОбласти
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+",
+{4,11,
+{9,
+{1},0,"Объект",
+{1,0},
+{"Pattern",
+{"#",40e240da-ab16-4125-8b97-f0f410e02f0d}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},1,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{4},0,"Отладка_ЗакрытьПослеПроведения",
+{1,1,
+{"ru","Закрыть после проведения"}
+},
+{"Pattern",
+{"B"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{5},0,"Отладка_ПолноеИмя",
+{1,1,
+{"ru","Полное имя"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{6},0,"Отладка_ТекстЗаголовка",
+{1,1,
+{"ru","Текст заголовка"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{7},0,"Отладка_СтруктураПоиска",
+{1,1,
+{"ru","Отладка структура поиска"}
+},
+{"Pattern",
+{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,4,
+{5,1,0,"Ключ",
+{1,1,
+{"ru","Ключ"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{5,2,0,"Значение",
+{1,1,
+{"ru","Значение"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{5,3,0,"ПредставлениеТипаДанных",
+{1,1,
+{"ru","Представление типа данных"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{5,4,0,"ЗаголовокОкнаДанных",
+{1,1,
+{"ru","Заголовок окна данных"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{0,0},
+{0,0}
+},
+{9,
+{8},0,"Отладка_ИмяПользователя",
+{1,1,
+{"ru","Имя пользователя"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{9},0,"Отладка_Пароль",
+{1,1,
+{"ru","Пароль"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{10},0,"Отладка_ПредставлениеТипаРегистратора",
+{1,1,
+{"ru","Представление типа регистратора"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{11},0,"Отладка_ЗаголовокСпискаРегистратора",
+{1,1,
+{"ru","Заголовок списка регистратора"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{12},0,"Отладка_ЧислоСекунд",
+{1,1,
+{"ru","Число секунд"}
+},
+{"Pattern",
+{"N",2,0,0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{13},0,"Отладка_Алгоритм",
+{1,1,
+{"ru","Отладка алгоритм"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},0,0,
+{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
+aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
+LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
+OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
+dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
+cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
+Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
+Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
+LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
+LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
+cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
+YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
+},
+{0,0},
+{0,12,
+{8,
+{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_Подключить",
+{1,1,
+{"ru","Отладка подключить"}
+},
+{1,1,
+{"ru","Отладка подключить"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_Подключить",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{2,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_Отключить",
+{1,1,
+{"ru","Отладка отключить"}
+},
+{1,1,
+{"ru","Отладка отключить"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_Отключить",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{3,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_ОткрытьСписок",
+{1,1,
+{"ru","Отладка открыть список"}
+},
+{1,1,
+{"ru","Отладка открыть список"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_ОткрытьСписок",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{4,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_НайтиВСписке",
+{1,1,
+{"ru","Отладка найти в списке"}
+},
+{1,1,
+{"ru","Отладка найти в списке"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_НайтиВСписке",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{5,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_ОткрытьВСписке",
+{1,1,
+{"ru","Отладка открыть в списке"}
+},
+{1,1,
+{"ru","Отладка открыть в списке"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_ОткрытьВСписке",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{6,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_ОткрытьВСпискеТекущий",
+{1,1,
+{"ru","Отладка открыть в списке текущий"}
+},
+{1,1,
+{"ru","Отладка открыть в списке текущий"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_ОткрытьВСпискеТекущий",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{7,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_Провести",
+{1,1,
+{"ru","Отладка провести"}
+},
+{1,1,
+{"ru","Отладка провести"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_Провести",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{8,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_УстановитьОтборВСписке",
+{1,1,
+{"ru","Отладка установить отбор в списке"}
+},
+{1,1,
+{"ru","Отладка установить отбор в списке"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_УстановитьОтборВСписке",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{9,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_ОтборВСпискеПоРегистратору",
+{1,1,
+{"ru","Отладка отбор в списке по регистратору"}
+},
+{1,1,
+{"ru","Отладка отбор в списке по регистратору"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_ОтборВСпискеПоРегистратору",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{10,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_Пауза",
+{1,1,
+{"ru","Отладка пауза"}
+},
+{1,1,
+{"ru","Отладка пауза"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_Пауза",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{11,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_ЭтоПустойСписок",
+{1,1,
+{"ru","Отладка это пустой список"}
+},
+{1,1,
+{"ru","Отладка это пустой список"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_ЭтоПустойСписок",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{12,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_Выполнить",
+{1,1,
+{"ru","Отладка выполнить"}
+},
+{1,1,
+{"ru","Отладка выполнить"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_Выполнить",3,0,0,
+{0,0},1,0,1,0,0}
+},
+{0,0},
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/908d0aaf-e4ec-4668-8d14-3e8075d222fd.0/info" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/74fd0118-e2b3-4f42-91ad-b86c72b75a5f.0/info"
similarity index 100%
rename from "src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/908d0aaf-e4ec-4668-8d14-3e8075d222fd.0/info"
rename to "src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/74fd0118-e2b3-4f42-91ad-b86c72b75a5f.0/info"
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/copyinfo" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/copyinfo"
new file mode 100644
index 00000000..fb09a931
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/copyinfo"
@@ -0,0 +1,33 @@
+{4,
+{2,
+{0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd,0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
+},
+{74fd0118-e2b3-4f42-91ad-b86c72b75a5f,74fd0118-e2b3-4f42-91ad-b86c72b75a5f,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"МенеджерТестКлиентов"}
+}
+},
+{1,
+{40e240da-ab16-4125-8b97-f0f410e02f0d,74fd0118-e2b3-4f42-91ad-b86c72b75a5f,0}
+},
+{4,
+{
+{1},acf6192e-81ca-46ef-93a6-5a6968b78663,
+{1}
+},
+{
+{2},acf6192e-81ca-46ef-93a6-5a6968b78663,
+{2}
+},
+{
+{3},acf6192e-81ca-46ef-93a6-5a6968b78663,
+{3}
+},
+{
+{4},acf6192e-81ca-46ef-93a6-5a6968b78663,
+{4}
+}
+},
+{0,0},
+{0}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/root" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/root"
new file mode 100644
index 00000000..36d06fff
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/root"
@@ -0,0 +1 @@
+{2,0e885814-d19a-4506-a289-195637f6450f,}
\ No newline at end of file
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/version" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/version"
new file mode 100644
index 00000000..421eee79
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/version"
@@ -0,0 +1,5 @@
+{
+{216,0,
+{80308,0}
+}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/versions" "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/versions"
new file mode 100644
index 00000000..ecae3c1e
--- /dev/null
+++ "b/src/Plugins/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262/und/versions"
@@ -0,0 +1 @@
+{1,9,"",b089fc85-a490-4d1c-8f79-5e5ece2bb99d,"0e885814-d19a-4506-a289-195637f6450f",6f40a910-e2c9-4fde-af77-6fbd407e0632,"0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd",33c82a42-3871-4376-997c-f7ae79c70508,"0fe2aafe-cb87-4f27-8dc0-cd0a558abbdd.0",869948c3-a1f0-46db-a8b3-f7c5b5592663,"74fd0118-e2b3-4f42-91ad-b86c72b75a5f.0",88daea4e-57df-47c9-8750-bc8fcb7970f4,"copyinfo",da9b1506-6b1d-4365-97f6-bf71bbcd9c41,"root",e777fdaf-aadc-4874-96a2-ca0467238e4a,"version",ec691032-71ec-4ea4-a0ce-1118593d1602,"versions",57eca131-d512-44db-8da6-2a6ebc713329}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..876cc949
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,307 @@
+#Область Инициализация
+
+&НаКлиенте
+Перем МенеджерТестКлиентов;
+
+&НаКлиенте
+Перем Ожидаем;
+
+&НаКлиенте
+Перем СтатусыРезультатаТестирования;
+
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдра) Экспорт
+
+ МенеджерТестКлиентов= КонтекстЯдра.Плагин("МенеджерТестКлиентов");
+ Ожидаем= КонтекстЯдра.Плагин("УтвержденияBDD");
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ИнтерфейсАвтоматическогоТестирования
+
+&НаКлиенте
+Функция ПодключениеКлиентаТестирования(ИмяПользователя = "", Пароль = "", Порт = 1538) Экспорт
+
+ ТекущийКлиент = МенеджерТестКлиентов.ТестКлиентПоПараметрам(ИмяПользователя, Пароль, Порт);
+
+ Если ТекущийКлиент = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон("Клиент тестирования с именем пользователя %1", ИмяПользователя);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БУДЕТ ПОДКЛЮЧЕН.");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОтключениеКлиентаТестирования() Экспорт
+
+ МенеджерТестКлиентов.ЗавершитьВсеТестКлиенты();
+
+ //TODO: Проверка отключения тест клиентов
+ //Если ТекущийКлиент <> Неопределено Тогда
+ // ПроверяемоеЗначение= СтрШаблон("Клиент тестирования на порту %1", XMLСтрока(ТекущийПорт));
+ // СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БУДЕТ ОТКЛЮЧЕН.");
+ // ВызватьОшибкуПроверки(СообщениеОшибки);
+ //КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОткрытиеФормыСписка(ПолноеИмяОбъектаМетаданных, ЗаголовокОкнаФормыСписка) Экспорт
+
+ МенеджерТестКлиентов.ОткрытьФормуСписка(ПолноеИмяОбъектаМетаданных, ЗаголовокОкнаФормыСписка);
+
+ ОкноФормыСписка= МенеджерТестКлиентов.ПолучитьТестируемоеОкно();
+
+ Если ОкноФормыСписка = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон("Окно формы списка объекта %1 с заголовком %2", ПолноеИмяОбъектаМетаданных, ЗаголовокОкнаФормыСписка);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БУДЕТ ОТКРЫТО.");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ ТеструемыйЭлемент= МенеджерТестКлиентов.ПолучитьТестируемыйЭлемент();
+
+ Если ТеструемыйЭлемент = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон("Открытое окно формы списка объекта %1 с заголовком %2", ПолноеИмяОбъектаМетаданных, ЗаголовокОкнаФормыСписка);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "СОДЕРЖИТ СПИСОК.");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПоискВСписке(СтруктураПоиска) Экспорт
+
+ СтрокаНайдена= МенеджерТестКлиентов.НайтиВсписке(СтруктураПоиска);
+
+ Если Не СтрокаНайдена Тогда
+
+ ПредставлениеСтруктурыПоиска= "";
+ Для Каждого Элемент Из СтруктураПоиска Цикл
+ ПредставлениеСтруктурыПоиска= ПредставлениеСтруктурыПоиска + СтрШаблон("%1= %2; ", Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+ ПредставлениеСтруктурыПоиска= Лев(ПредставлениеСтруктурыПоиска, СтрДлина(ПредставлениеСтруктурыПоиска) - 2);
+
+ ПроверяемоеЗначение= СтрШаблон("Строка формы списка с реквизитами %1", ПредставлениеСтруктурыПоиска);
+
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БУДЕТ НАЙДЕНА.");
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция УстановкаОтбораВСписке(СтруктураПоиска= Неопределено) Экспорт
+
+ ОборУстановлен= МенеджерТестКлиентов.УстановитьОтборВСписке(СтруктураПоиска);
+
+ Если Не ОборУстановлен Тогда
+
+ Если СтруктураПоиска = Неопределено Тогда
+ ПроверяемоеЗначение= "Отбор в списке";
+ Иначе
+ ПредставлениеСтруктурыПоиска= КСтроке(СтруктураПоиска);
+ ПроверяемоеЗначение= СтрШаблон("Отбор в списке по реквизитами %1", ПредставлениеСтруктурыПоиска);
+ КонецЕсли;
+
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БУДЕТ УСТАНОВЛЕН.");
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция УстановкаОтбораВСпискеПоРегистратору(ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, СтруктураПоискаРегистратора) Экспорт
+
+ ОборУстановлен= МенеджерТестКлиентов.УстановитьОтборВСпискеПоРегистратору(ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, СтруктураПоискаРегистратора);
+
+ Если Не ОборУстановлен Тогда
+
+ ПредставлениеСтруктурыПоиска= КСтроке(СтруктураПоискаРегистратора);
+ ПроверяемоеЗначение= СтрШаблон("Отбор в списке по регистратору типа %1 с реквизитами %2", ПредставлениеТипаРегистратора, ПредставлениеСтруктурыПоиска);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БУДЕТ УСТАНОВЛЕН.", МенеджерТестКлиентов.ПолучитьОписаниеОшибки());
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОткрытиеВСписке(ТекстЗаголовка, СтруктураПоиска= Неопределено) Экспорт
+
+ СтрокаОткрыта= МенеджерТестКлиентов.ОткрытьВсписке(ТекстЗаголовка, СтруктураПоиска);
+
+ Если Не СтрокаОткрыта Тогда
+
+ Если СтруктураПоиска = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон("Окно с заголовком %1 по текущей строке формы списка", ТекстЗаголовка);
+ Иначе
+ ПредставлениеСтруктурыПоиска= КСтроке(СтруктураПоиска);
+ ПроверяемоеЗначение= СтрШаблон("Окно с заголовком %1 по строке формы списка с реквизитами %2", ТекстЗаголовка, ПредставлениеСтруктурыПоиска);
+ КонецЕсли;
+
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БУДЕТ ОТКРЫТО.");
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция Проведение(ЗакрытьПослеПроведения= Ложь) Экспорт
+
+ ПроверяемоеЗначение= МенеджерТестКлиентов.ПолучитьТестируемоеОкно().Заголовок;
+
+ ПроведениеВыполнено= МенеджерТестКлиентов.Провести(ЗакрытьПослеПроведения);
+
+ Если Не ПроведениеВыполнено Тогда
+
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, СтрШаблон("БУДЕТ ПРОВЕДЕНО%1.", ?(ЗакрытьПослеПроведения, "И ЗАКРЫТО", "")), МенеджерТестКлиентов.ПолучитьОписаниеОшибки());
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция КоличествоСтрокВСписке(Знач Сообщение= "", КоличествоСлужебныхСтрок= 0) Экспорт
+
+ Объект.ПроверяемоеЗначение= МенеджерТестКлиентов.КоличествоСтрокВСписке(, КоличествоСлужебныхСтрок);
+
+ Если Сообщение <> "" Тогда
+ Объект.ДопСообщениеОшибки= Сообщение;
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭтотСписокПустой(Знач Сообщение= "", КоличествоСлужебныхСтрок= 0) Экспорт
+
+ Ожидаем.Что(МенеджерТестКлиентов.ЭтотСписокПустой(КоличествоСлужебныхСтрок), Сообщение).ЭтоИстина();
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьПроверяемоеЗначение() Экспорт
+ Возврат Объект.ПроверяемоеЗначение;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьДопСообщениеОшибки() Экспорт
+ Возврат Объект.ДопСообщениеОшибки;
+КонецФункции
+
+
+#КонецОбласти
+
+#Область СлужебныеМетоды
+
+&НаКлиенте
+Функция КСтроке(СтруктураПоиска)
+
+ Если ТипЗнч(СтруктураПоиска) = Тип("Строка") Тогда
+ ПредставлениеСтруктуры= СтруктураПоиска;
+ Иначе
+ ПредставлениеСтруктуры= "";
+ Для Каждого Элемент Из СтруктураПоиска Цикл
+ ПредставлениеСтруктуры= ПредставлениеСтруктуры + СтрШаблон("%1= %2; ", Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+ ПредставлениеСтруктуры= Лев(ПредставлениеСтруктуры, СтрДлина(ПредставлениеСтруктуры) - 2);
+ КонецЕсли;
+
+ Возврат ПредставлениеСтруктуры;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки)
+ Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
+ ВызватьИсключение Префикс + " " + СообщениеОшибки;
+КонецПроцедуры
+
+&НаКлиенте
+Функция СформироватьСообщениеОбОшибке(Знач ПроверяемоеЗначение, Знач Ожидание, Знач ДопСообщениеОшибки= Неопределено)
+ Возврат
+ "Ожидали, что проверяемое значение (" + ПроверяемоеЗначение + ") "
+ //+ ?(ФлагОтрицанияДляСообщения, " НЕ ", " ")
+ + Ожидание
+ + ФорматДСО(ДопСообщениеОшибки)
+ ;
+КонецФункции
+
+Функция ФорматДСО(Знач ДопСообщениеОшибки)
+
+ Если ДопСообщениеОшибки = "" Тогда
+ Возврат "";
+ Иначе
+ Возврат Символы.ПС + ДопСообщениеОшибки;
+ КонецЕсли;
+
+КонецФункции
+
+&НаСервере
+Процедура ВыполнитьМетодОбъектаНаСервере(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено)
+ ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
+
+ Попытка
+ ОбъектНаСервере.ВыполнитьМетод(ИмяМетода, КоличествоПараметров, Параметр1, Параметр2);
+ Исключение
+ ОписаниеОшибки = ОписаниеОшибки();
+ ВызватьИсключение "Вызов метода <" + ИмяМетода +">: " + ОписаниеОшибки;
+ КонецПопытки;
+
+ ЗначениеВРеквизитФормы(ОбъектНаСервере, "Объект");
+КонецПроцедуры
+
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+#КонецОбласти
+
+СтатусыРезультатаТестирования = Новый Структура;
+СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed");
+СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken");
+СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending");
+СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования);
+
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/ObjectModule.bsl" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/ObjectModule.bsl"
new file mode 100644
index 00000000..f40b2de3
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/ObjectModule.bsl"
@@ -0,0 +1,81 @@
+Перем УтвержденияBDD;
+
+// { БСП: Дополнительные внешние отчеты и обработки
+
+Функция СведенияОВнешнейОбработке() Экспорт
+
+ МетаданныеПлагина= Метаданные();
+
+ РегистрационныеДанные = Новый Структура;
+
+ РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
+ РегистрационныеДанные.Вставить("Наименование", МетаданныеПлагина.Синоним);
+ РегистрационныеДанные.Вставить("Версия", "2.0");
+ РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
+ РегистрационныеДанные.Вставить("Информация", МетаданныеПлагина.Синоним);
+
+ ТЗКоманды = Новый ТаблицаЗначений;
+
+ ТЗКоманды.Колонки.Добавить("Идентификатор");
+ ТЗКоманды.Колонки.Добавить("Представление");
+ ТЗКоманды.Колонки.Добавить("Модификатор");
+ ТЗКоманды.Колонки.Добавить("ПоказыватьОповещение");
+ ТЗКоманды.Колонки.Добавить("Использование");
+
+ СтрокаКоманды = ТЗКоманды.Добавить();
+
+ СтрокаКоманды.Идентификатор = МетаданныеПлагина.Имя;
+ СтрокаКоманды.Представление = МетаданныеПлагина.Синоним;
+ СтрокаКоманды.ПоказыватьОповещение = Ложь;
+ СтрокаКоманды.Использование = "ОткрытиеФормы";
+
+ РегистрационныеДанные.Вставить("Команды", ТЗКоманды);
+
+ Возврат РегистрационныеДанные;
+
+КонецФункции
+
+Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
+ НастройкиВарианта = Вычислить("ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, ""ИмяВарианта"")");
+КонецПроцедуры
+
+Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
+ Настройки.ВыводитьСуммуВыделенныхЯчеек = Истина;
+КонецПроцедуры
+
+// } БСП: Дополнительные внешние отчеты и обработки
+
+// { Plugin interface
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ МетаданныеПлагина= Метаданные();
+
+ Результат = Новый Структура;
+ Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита);
+ Результат.Вставить("Идентификатор", МетаданныеПлагина.Имя);
+ Результат.Вставить("Представление", МетаданныеПлагина.Представление());
+
+ Возврат Новый ФиксированнаяСтруктура(Результат);
+КонецФункции
+
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ УтвержденияBDD= КонтекстЯдраПараметр.Плагин("УтвержденияBDD");
+КонецПроцедуры
+// } Plugin interface
+
+Процедура ВыполнитьМетод(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено) Экспорт
+
+ СтрокаПараметры = "";
+ Если КоличествоПараметров = 1 Тогда
+ СтрокаПараметры = "Параметр1";
+ ИначеЕсли КоличествоПараметров = 2 Тогда
+ СтрокаПараметры = "Параметр1, Параметр2";
+ КонецЕсли;
+
+ Попытка
+ Выполнить("УтвержденияBDD." + ИмяМетода + "(" + СтрокаПараметры + ")");
+ Исключение
+ ОписаниеОшибки = ОписаниеОшибки();
+ ВызватьИсключение "Вызов метода <УтвержденияBDD." + ИмяМетода +">: " + ОписаниеОшибки;
+ КонецПопытки;
+
+КонецПроцедуры
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/maps.txt" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/maps.txt"
new file mode 100644
index 00000000..8b2d2cc5
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->7c0db58b-25fd-4fcb-9edf-128193074afa.0 (46, 353)
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/renames.txt" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/renames.txt"
new file mode 100644
index 00000000..680801f2
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/renames.txt"
@@ -0,0 +1,9 @@
+338f6c4a-d59b-40d7-bffb-394fbe7cc157-->und\338f6c4a-d59b-40d7-bffb-394fbe7cc157
+6d819346-9433-44e2-b2d6-18a6d04aeea2.0\info-->und\6d819346-9433-44e2-b2d6-18a6d04aeea2.0\info
+6d819346-9433-44e2-b2d6-18a6d04aeea2.0\text-->ObjectModule.bsl
+7c0db58b-25fd-4fcb-9edf-128193074afa-->und\7c0db58b-25fd-4fcb-9edf-128193074afa
+7c0db58b-25fd-4fcb-9edf-128193074afa.0-->und\7c0db58b-25fd-4fcb-9edf-128193074afa.0
+copyinfo-->und\copyinfo
+root-->und\root
+version-->und\version
+versions-->und\versions
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/338f6c4a-d59b-40d7-bffb-394fbe7cc157" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/338f6c4a-d59b-40d7-bffb-394fbe7cc157"
new file mode 100644
index 00000000..5c11dccf
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/338f6c4a-d59b-40d7-bffb-394fbe7cc157"
@@ -0,0 +1,119 @@
+{1,
+{338f6c4a-d59b-40d7-bffb-394fbe7cc157},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,a87bda51-86cf-4b76-8aa3-bf40d462ff36,d3a2b5dd-380b-4edc-ade8-8db2dbfb1eac,
+{0,
+{1,
+{0,0,6d819346-9433-44e2-b2d6-18a6d04aeea2},"ТестКлиент",
+{1,"ru","Тест клиент"},"",0,0}
+},7c0db58b-25fd-4fcb-9edf-128193074afa,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,0},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,7c0db58b-25fd-4fcb-9edf-128193074afa},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,5,
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,a85a8311-91ed-4e3a-a8d2-c29653bb148c},"ДопСообщениеОшибки",
+{1,"ru","Доп сообщение ошибки"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,36303fce-5672-4f47-95a9-c9179c5f2ee6},"ИмяМетода",
+{1,"ru","Имя метода"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,0424acf3-29e0-462d-b13c-a171353c5d32},"ПараметрыМетода",
+{1,"ru","Параметры метода"},"",0,0},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,92789918-7163-417e-9feb-f52d19276496},"ПроверяемоеЗначение",
+{1,"ru","Проверяемое значение"},"",0,0},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,2a6069dd-b05d-4103-b63f-82d79d7cfcc5},"ФлагОтрицания",
+{1,"ru","Флаг отрицания"},"",0,0},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0}
+}
+}
+}
+}
\ No newline at end of file
diff --git a/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.0/info "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/6d819346-9433-44e2-b2d6-18a6d04aeea2.0/info"
similarity index 100%
rename from src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.0/info
rename to "src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/6d819346-9433-44e2-b2d6-18a6d04aeea2.0/info"
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/7c0db58b-25fd-4fcb-9edf-128193074afa" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/7c0db58b-25fd-4fcb-9edf-128193074afa"
new file mode 100644
index 00000000..5777fbaf
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/7c0db58b-25fd-4fcb-9edf-128193074afa"
@@ -0,0 +1,15 @@
+{1,
+{1,
+{0,
+{12,
+{1,
+{0,0,7c0db58b-25fd-4fcb-9edf-128193074afa},"Форма",
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/7c0db58b-25fd-4fcb-9edf-128193074afa.0" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/7c0db58b-25fd-4fcb-9edf-128193074afa.0"
new file mode 100644
index 00000000..93c4c1e9
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/7c0db58b-25fd-4fcb-9edf-128193074afa.0"
@@ -0,0 +1,391 @@
+{3,
+{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{1,0},0,0,1,1,1,0,1,0,
+{0,1,0},
+{0},1,
+{21,
+{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,9,"ФормаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{21,
+{0},0,0,0,7,"Navigator",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorExtendedTooltip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",0,0,0,0,0,0,3,3,0,0,0,100,1,1,0},"#Область Инициализация
+
+&НаКлиенте
+Перем МенеджерТестКлиентов;
+
+&НаКлиенте
+Перем Ожидаем;
+
+&НаКлиенте
+Перем СтатусыРезультатаТестирования;
+
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдра) Экспорт
+
+ МенеджерТестКлиентов= КонтекстЯдра.Плагин(""МенеджерТестКлиентов"");
+ Ожидаем= КонтекстЯдра.Плагин(""УтвержденияBDD"");
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ИнтерфейсАвтоматическогоТестирования
+
+&НаКлиенте
+Функция ПодключениеКлиентаТестирования(ИмяПользователя = """", Пароль = """", Порт = 1538) Экспорт
+
+ ТекущийКлиент = МенеджерТестКлиентов.ТестКлиентПоПараметрам(ИмяПользователя, Пароль, Порт);
+
+ Если ТекущийКлиент = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон(""Клиент тестирования с именем пользователя %1"", ИмяПользователя);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ ПОДКЛЮЧЕН."");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОтключениеКлиентаТестирования() Экспорт
+
+ МенеджерТестКлиентов.ЗавершитьВсеТестКлиенты();
+
+ //TODO: Проверка отключения тест клиентов
+ //Если ТекущийКлиент <> Неопределено Тогда
+ // ПроверяемоеЗначение= СтрШаблон(""Клиент тестирования на порту %1"", XMLСтрока(ТекущийПорт));
+ // СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ ОТКЛЮЧЕН."");
+ // ВызватьОшибкуПроверки(СообщениеОшибки);
+ //КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОткрытиеФормыСписка(ПолноеИмяОбъектаМетаданных, ЗаголовокОкнаФормыСписка) Экспорт
+
+ МенеджерТестКлиентов.ОткрытьФормуСписка(ПолноеИмяОбъектаМетаданных, ЗаголовокОкнаФормыСписка);
+
+ ОкноФормыСписка= МенеджерТестКлиентов.ПолучитьТестируемоеОкно();
+
+ Если ОкноФормыСписка = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон(""Окно формы списка объекта %1 с заголовком %2"", ПолноеИмяОбъектаМетаданных, ЗаголовокОкнаФормыСписка);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ ОТКРЫТО."");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ ТеструемыйЭлемент= МенеджерТестКлиентов.ПолучитьТестируемыйЭлемент();
+
+ Если ТеструемыйЭлемент = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон(""Открытое окно формы списка объекта %1 с заголовком %2"", ПолноеИмяОбъектаМетаданных, ЗаголовокОкнаФормыСписка);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""СОДЕРЖИТ СПИСОК."");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПоискВСписке(СтруктураПоиска) Экспорт
+
+ СтрокаНайдена= МенеджерТестКлиентов.НайтиВсписке(СтруктураПоиска);
+
+ Если Не СтрокаНайдена Тогда
+
+ ПредставлениеСтруктурыПоиска= """";
+ Для Каждого Элемент Из СтруктураПоиска Цикл
+ ПредставлениеСтруктурыПоиска= ПредставлениеСтруктурыПоиска + СтрШаблон(""%1= %2; "", Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+ ПредставлениеСтруктурыПоиска= Лев(ПредставлениеСтруктурыПоиска, СтрДлина(ПредставлениеСтруктурыПоиска) - 2);
+
+ ПроверяемоеЗначение= СтрШаблон(""Строка формы списка с реквизитами %1"", ПредставлениеСтруктурыПоиска);
+
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ НАЙДЕНА."");
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция УстановкаОтбораВСписке(СтруктураПоиска= Неопределено) Экспорт
+
+ ОборУстановлен= МенеджерТестКлиентов.УстановитьОтборВСписке(СтруктураПоиска);
+
+ Если Не ОборУстановлен Тогда
+
+ Если СтруктураПоиска = Неопределено Тогда
+ ПроверяемоеЗначение= ""Отбор в списке"";
+ Иначе
+ ПредставлениеСтруктурыПоиска= КСтроке(СтруктураПоиска);
+ ПроверяемоеЗначение= СтрШаблон(""Отбор в списке по реквизитами %1"", ПредставлениеСтруктурыПоиска);
+ КонецЕсли;
+
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ УСТАНОВЛЕН."");
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция УстановкаОтбораВСпискеПоРегистратору(ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, СтруктураПоискаРегистратора) Экспорт
+
+ ОборУстановлен= МенеджерТестКлиентов.УстановитьОтборВСпискеПоРегистратору(ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, СтруктураПоискаРегистратора);
+
+ Если Не ОборУстановлен Тогда
+
+ ПредставлениеСтруктурыПоиска= КСтроке(СтруктураПоискаРегистратора);
+ ПроверяемоеЗначение= СтрШаблон(""Отбор в списке по регистратору типа %1 с реквизитами %2"", ПредставлениеТипаРегистратора, ПредставлениеСтруктурыПоиска);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ УСТАНОВЛЕН."", МенеджерТестКлиентов.ПолучитьОписаниеОшибки());
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОткрытиеВСписке(ТекстЗаголовка, СтруктураПоиска= Неопределено) Экспорт
+
+ СтрокаОткрыта= МенеджерТестКлиентов.ОткрытьВсписке(ТекстЗаголовка, СтруктураПоиска);
+
+ Если Не СтрокаОткрыта Тогда
+
+ Если СтруктураПоиска = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон(""Окно с заголовком %1 по текущей строке формы списка"", ТекстЗаголовка);
+ Иначе
+ ПредставлениеСтруктурыПоиска= КСтроке(СтруктураПоиска);
+ ПроверяемоеЗначение= СтрШаблон(""Окно с заголовком %1 по строке формы списка с реквизитами %2"", ТекстЗаголовка, ПредставлениеСтруктурыПоиска);
+ КонецЕсли;
+
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ ОТКРЫТО."");
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция Проведение(ЗакрытьПослеПроведения= Ложь) Экспорт
+
+ ПроверяемоеЗначение= МенеджерТестКлиентов.ПолучитьТестируемоеОкно().Заголовок;
+
+ ПроведениеВыполнено= МенеджерТестКлиентов.Провести(ЗакрытьПослеПроведения);
+
+ Если Не ПроведениеВыполнено Тогда
+
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, СтрШаблон(""БУДЕТ ПРОВЕДЕНО%1."", ?(ЗакрытьПослеПроведения, ""И ЗАКРЫТО"", """")), МенеджерТестКлиентов.ПолучитьОписаниеОшибки());
+
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция КоличествоСтрокВСписке(Знач Сообщение= """", КоличествоСлужебныхСтрок= 0) Экспорт
+
+ Объект.ПроверяемоеЗначение= МенеджерТестКлиентов.КоличествоСтрокВСписке(, КоличествоСлужебныхСтрок);
+
+ Если Сообщение <> """" Тогда
+ Объект.ДопСообщениеОшибки= Сообщение;
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭтотСписокПустой(Знач Сообщение= """", КоличествоСлужебныхСтрок= 0) Экспорт
+
+ Ожидаем.Что(МенеджерТестКлиентов.ЭтотСписокПустой(КоличествоСлужебныхСтрок), Сообщение).ЭтоИстина();
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьПроверяемоеЗначение() Экспорт
+ Возврат Объект.ПроверяемоеЗначение;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьДопСообщениеОшибки() Экспорт
+ Возврат Объект.ДопСообщениеОшибки;
+КонецФункции
+
+
+#КонецОбласти
+
+#Область СлужебныеМетоды
+
+&НаКлиенте
+Функция КСтроке(СтруктураПоиска)
+
+ Если ТипЗнч(СтруктураПоиска) = Тип(""Строка"") Тогда
+ ПредставлениеСтруктуры= СтруктураПоиска;
+ Иначе
+ ПредставлениеСтруктуры= """";
+ Для Каждого Элемент Из СтруктураПоиска Цикл
+ ПредставлениеСтруктуры= ПредставлениеСтруктуры + СтрШаблон(""%1= %2; "", Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+ ПредставлениеСтруктуры= Лев(ПредставлениеСтруктуры, СтрДлина(ПредставлениеСтруктуры) - 2);
+ КонецЕсли;
+
+ Возврат ПредставлениеСтруктуры;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки)
+ Префикс = ""[""+ СтатусыРезультатаТестирования.ОшибкаПроверки + ""]"";
+ ВызватьИсключение Префикс + "" "" + СообщениеОшибки;
+КонецПроцедуры
+
+&НаКлиенте
+Функция СформироватьСообщениеОбОшибке(Знач ПроверяемоеЗначение, Знач Ожидание, Знач ДопСообщениеОшибки= Неопределено)
+ Возврат
+ ""Ожидали, что проверяемое значение ("" + ПроверяемоеЗначение + "") ""
+ //+ ?(ФлагОтрицанияДляСообщения, "" НЕ "", "" "")
+ + Ожидание
+ + ФорматДСО(ДопСообщениеОшибки)
+ ;
+КонецФункции
+
+Функция ФорматДСО(Знач ДопСообщениеОшибки)
+
+ Если ДопСообщениеОшибки = """" Тогда
+ Возврат """";
+ Иначе
+ Возврат Символы.ПС + ДопСообщениеОшибки;
+ КонецЕсли;
+
+КонецФункции
+
+&НаСервере
+Процедура ВыполнитьМетодОбъектаНаСервере(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено)
+ ОбъектНаСервере = РеквизитФормыВЗначение(""Объект"");
+
+ Попытка
+ ОбъектНаСервере.ВыполнитьМетод(ИмяМетода, КоличествоПараметров, Параметр1, Параметр2);
+ Исключение
+ ОписаниеОшибки = ОписаниеОшибки();
+ ВызватьИсключение ""Вызов метода <"" + ИмяМетода +"">: "" + ОписаниеОшибки;
+ КонецПопытки;
+
+ ЗначениеВРеквизитФормы(ОбъектНаСервере, ""Объект"");
+КонецПроцедуры
+
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение(""Объект"");
+КонецФункции
+
+#КонецОбласти
+
+СтатусыРезультатаТестирования = Новый Структура;
+СтатусыРезультатаТестирования.Вставить(""ОшибкаПроверки"", ""Failed"");
+СтатусыРезультатаТестирования.Вставить(""НеизвестнаяОшибка"", ""Broken"");
+СтатусыРезультатаТестирования.Вставить(""ТестПропущен"", ""Pending"");
+СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования);
+
+",
+{4,1,
+{9,
+{1},0,"Объект",
+{1,0},
+{"Pattern",
+{"#",a87bda51-86cf-4b76-8aa3-bf40d462ff36}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},1,0,0,0,
+{0,0},
+{0,0}
+},0,0,
+{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
+aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
+LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
+OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
+dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
+cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
+Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
+Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
+LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
+LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
+cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
+YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
+},
+{0,0},
+{0,0},
+{0,0},
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/copyinfo" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/copyinfo"
new file mode 100644
index 00000000..d7cffb5d
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/copyinfo"
@@ -0,0 +1,16 @@
+{4,
+{2,
+{6d819346-9433-44e2-b2d6-18a6d04aeea2,6d819346-9433-44e2-b2d6-18a6d04aeea2,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"ТестКлиент"}
+},
+{7c0db58b-25fd-4fcb-9edf-128193074afa,7c0db58b-25fd-4fcb-9edf-128193074afa,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
+}
+},
+{1,
+{a87bda51-86cf-4b76-8aa3-bf40d462ff36,6d819346-9433-44e2-b2d6-18a6d04aeea2,0}
+},
+{0},
+{0,0},
+{0}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/root" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/root"
new file mode 100644
index 00000000..cddc11e4
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/root"
@@ -0,0 +1 @@
+{2,338f6c4a-d59b-40d7-bffb-394fbe7cc157,}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/version" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/version"
new file mode 100644
index 00000000..32619b14
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/version"
@@ -0,0 +1,5 @@
+{
+{216,0,
+{80309,0}
+}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/versions" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/versions"
new file mode 100644
index 00000000..a3cc6e70
--- /dev/null
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/versions"
@@ -0,0 +1 @@
+{1,9,"",db93aac8-9be9-4b68-9b88-a345facfc443,"338f6c4a-d59b-40d7-bffb-394fbe7cc157",cebc1f94-2c9b-4168-b293-38988ff06718,"6d819346-9433-44e2-b2d6-18a6d04aeea2.0",fca90019-b67c-4fef-bbec-6d80784ea737,"7c0db58b-25fd-4fcb-9edf-128193074afa",237d1f8f-1e1c-45e6-baa4-8e001d7d0be9,"7c0db58b-25fd-4fcb-9edf-128193074afa.0",29f22b92-f51b-4a0d-8de6-751254ab692f,"copyinfo",c13fe330-3ea3-41e7-b90e-e79f677b2558,"root",1d1d1c8e-9aba-4af2-8396-f9407047af80,"version",ea0a09a8-8a12-4f23-a3ff-296ac984a4fb,"versions",955ee625-c6ef-449c-bd29-3de32360a0a6}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index 83dfb9d6..6107e361 100644
--- "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -1,7 +1,17 @@
-&НаКлиенте
+#Область Инициализация
+
+&НаКлиенте
Перем ЗапущенныеТестКлиенты;
-// { Plugin interface
+&НаКлиенте
+Перем ТестируемоеОкно;
+
+&НаКлиенте
+Перем ТестируемыйЭлемент;
+
+&НаКлиенте
+Перем ОписаниеОшибки;
+
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
@@ -12,6 +22,10 @@
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
+#КонецОбласти
+
+#Область Интерфейс
+
&НаКлиенте
Процедура ПодключитьТестКлиент_ПакетныйРежим(Параметры_xddTestClient) Экспорт
@@ -117,6 +131,8 @@
КонецЕсли;
КонецЦикла;
+ ЗапущенныеТестКлиенты.Очистить();
+
КонецПроцедуры
&НаКлиенте
@@ -129,6 +145,8 @@
Результат = ПодключитьТестКлиент();
ЗапомнитьДанныеТестКлиента(Результат, "", "");
+ ПолучитьОсновноеОкно();
+
Возврат Результат;
КонецФункции
@@ -144,12 +162,227 @@
Результат = ПодключитьТестКлиент(ИмяПользователя, Пароль, Порт);
ЗапомнитьДанныеТестКлиента(Результат, ИмяПользователя, Порт);
+ ПолучитьОсновноеОкно();
+
Возврат Результат;
КонецФункции
-// } Plugin interface
-// { Helpers
+#КонецОбласти
+
+#Область ИнтерфейсАвтоматическогоТестирования
+
+&НаКлиенте
+Функция ПолучитьОписаниеОшибки() Экспорт
+ Возврат ОписаниеОшибки;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестируемыйЭлемент() Экспорт
+ Возврат ТестируемыйЭлемент;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестируемоеОкно() Экспорт
+ Возврат ТестируемоеОкно;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьОкно(ТекстЗаголовка, ОжиданиеСуществования= Истина) Экспорт
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ Если ОжиданиеСуществования Тогда
+ ТестируемоеОкно= ТестКлиент.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ТекстЗаголовка, , 20);
+ Иначе
+ // Несуществующее окно НайтиОбъект ищет очень долго и вызывает ошибку при последующих подключениях
+ ТестируемоеОкно= Неопределено;
+ тестируемыеОкна= ТестКлиент.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"), , , 20);
+ Для Каждого ТeкущееОкно Из тестируемыеОкна Цикл
+ Если Найти(ТeкущееОкно.Заголовок, ТекстЗаголовка) Тогда
+ ТестируемоеОкно= ТeкущееОкно;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ Возврат ТестируемоеОкно;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьОсновноеОкно() Экспорт
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ОкнаТестКлиента= ТестКлиент.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"), , , 20);
+
+ ТестируемоеОкно= Неопределено;
+
+ Для каждого ОкноТестКлиента Из ОкнаТестКлиента Цикл
+ Если ОкноТестКлиента.Основное Тогда
+ ТестируемоеОкно= ОкноТестКлиента;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат ТестируемоеОкно;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ОткрытьФормуСписка(ПолноеИмяОбъектаМетаданных, ТекстЗаголовка= Неопределено) Экспорт
+
+ ОсновноеОкно= ПолучитьОсновноеОкно();
+
+ ОсновноеОкно.ВыполнитьКоманду("e1cib/list/" + ПолноеИмяОбъектаМетаданных);
+
+ Если ТекстЗаголовка <> Неопределено Тогда
+ ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка);
+ Если ТестируемоеОкно = Неопределено Тогда
+ ТестируемыйЭлемент= Неопределено;
+ Иначе
+ ТестируемыйЭлемент= ТестируемоеОкно.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Список", , 20);
+ КонецЕсли;
+ Иначе
+ ТестируемоеОкно= Неопределено;
+ ТестируемыйЭлемент= Неопределено;
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция НайтиВСписке(СтруктураПоиска) Экспорт
+
+ УбедитьсяЧтоЭтоСпискок();
+
+ ОписаниеСтроки= Новый Соответствие;
+
+ Для Каждого Элемент Из СтруктураПоиска Цикл
+ ОписаниеСтроки.Вставить(Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+
+ ТестируемыйЭлемент.ПерейтиКПервойСтроке();
+
+ Возврат ТестируемыйЭлемент.ПерейтиКСтроке(ОписаниеСтроки);
+
+КонецФункции
+
+&НаКлиенте
+Функция ОткрытьВСписке(ТекстЗаголовка, СтруктураПоиска= Неопределено) Экспорт
+
+ УбедитьсяЧтоЭтоСпискок();
+
+ Если СтруктураПоиска <> Неопределено Тогда
+ НайтиВСписке(СтруктураПоиска);
+ КонецЕсли;
+
+ ТестируемыйЭлемент.Выбрать();
+
+ УстановитьТестируемоеОкно(ТекстЗаголовка);
+
+ Возврат (ТестируемоеОкно <> Неопределено);
+
+КонецФункции
+
+&НаКлиенте
+Функция КоличествоСтрокВСписке() Экспорт
+
+ УбедитьсяЧтоЭтоСпискок();
+
+ ТестируемыйЭлемент.ВыделитьВсеСтроки();
+ ВыделенныеСтроки= ТестируемыйЭлемент.ПолучитьВыделенныеСтроки();
+
+ Возврат ВыделенныеСтроки.Количество();
+
+КонецФункции
+
+&НаКлиенте
+Функция Провести(ЗакрытьПослеПроведения= Ложь) Экспорт
+
+ ОписаниеОшибки= "";
+
+ Если ЗакрытьПослеПроведения Тогда
+ ИмяКнопки= "ФормаПровестиИЗакрыть";
+ Иначе
+ ТекстЗаголовкаКнопки= "ФормаПровести";
+ КонецЕсли;
+
+ ЗаголовокПроводимогоОкна= ТестируемоеОкно.Заголовок;
+
+ ТестируемаяФорма= ТестируемоеОкно.НайтиОбъект(Тип("ТестируемаяФорма"), , , 20);
+
+ Кнопка= ТестируемаяФорма.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), , ИмяКнопки, 20);
+
+ Если Кнопка <> Неопределено Тогда
+
+ Кнопка.Нажать();
+
+ ПроведениеВыполнено= Истина;
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ИнформацияОбОшибке= ТестКлиент.ПолучитьТекущуюИнформациюОбОшибке();
+
+ Если ИнформацияОбОшибке <> Неопределено Тогда
+ ОписаниеОшибки=
+ НСтр("ru='Описание=';en='Description='") + ИнформацияОбОшибке.Описание + "'" + Символы.ПС +
+ НСтр("ru='ИмяМодуля=';en='ModuleName='") + ИнформацияОбОшибке.ИмяМодуля + "'" + Символы.ПС +
+ НСтр("ru='НомерСтроки=';en='LineNumber='") + ИнформацияОбОшибке.НомерСтроки + "'" + Символы.ПС +
+ НСтр("ru='ИсходнаяСтрока=';en='SourceLine='") + ИнформацияОбОшибке.ИсходнаяСтрока;
+
+ ПроведениеВыполнено= Ложь;
+ Иначе
+
+ ОкноОшибки= ПолучитьОкно("1С:Предприятие", Ложь);
+
+ Если ОкноОшибки <> Неопределено Тогда
+
+ ПолеОписанияОшибки= ОкноОшибки.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "Ошибка*", , 20);
+
+ Если ПолеОписанияОшибки <> Неопределено Тогда
+ ОписаниеОшибки= ПолеОписанияОшибки.ТекстЗаголовка;
+ ПроведениеВыполнено= Ложь;
+ КонецЕсли;
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Иначе
+ ПроведениеВыполнено= Ложь;
+ ОписаниеОшибки= "Кнопка не найдена.";
+ КонецЕсли;
+
+ Возврат ПроведениеВыполнено;
+
+КонецФункции
+
+&НаКлиенте
+Функция УстановитьОтборВСписке(СтруктураПоиска= Неопределено) Экспорт
+
+ Если СтруктураПоиска <> Неопределено И СтруктураПоиска.Количество() Тогда
+ НайтиВСписке(СтруктураПоиска);
+ КнопкаНайтиПоТекущемуЗначению = ТестируемоеОкно.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Найти по текущему значению");
+ Для Каждого Элемент Из СтруктураПоиска Цикл
+ ПолеОтбора = ТестируемыйЭлемент.НайтиОбъект(Тип("ТестируемоеПолеФормы"), , Элемент.Ключ);
+ ПолеОтбора.Активизировать();
+ КнопкаНайтиПоТекущемуЗначению.Нажать();
+ КонецЦикла;
+ Иначе
+ КнопкаНайтиПоТекущемуЗначению = ТестируемоеОкно.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Найти по текущему значению");
+ КнопкаНайтиПоТекущемуЗначению.Нажать();
+ КонецЕсли;
+
+ //TODO: проверка выполнения установки отбора
+ Возврат Истина;
+
+КонецФункции
+
+
+#КонецОбласти
+
+#Область ВспомогательныеПроцедуры
+
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
@@ -169,7 +402,7 @@
КонецЕсли;
Результат = СтрШаблон(
- "%1 ENTERPRISE /IBConnectionString""%2"" /N""%3""%4 /TESTCLIENT -TPort%5",
+ "%1 ENTERPRISE /IBConnectionString""%2"" /WA- /N""%3"" %4 /TESTCLIENT -TPort%5",
СтрокаЗапуска1с,
СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """"""),
ИмяПользователя,
@@ -197,28 +430,25 @@
&НаКлиенте
Функция ТекстСкриптаЗавершитьТестКлиент(НомерПорта)
- Результат = "
- |Option Explicit
- |
- |Dim objWMIService, objProcess, colProcess
- |
- |Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"")
- |
- |Set colProcess = objWMIService.ExecQuery(""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"")
- |
- |For Each objProcess in colProcess
- | objProcess.Terminate()
- |Next
- |";
-
- Если Не ЗначениеЗаполнено(НомерПорта) Тогда
- Возврат Результат;
+ Результат =
+
+ "Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next";
+
+ Если ЗначениеЗаполнено(НомерПорта) Тогда
+ Результат= СтрЗаменить(Результат, "%/TESTCLIENT%", "%/TESTCLIENT -TPort" + XMLСтрока(НомерПорта) + "%");
КонецЕсли;
- Возврат СтрЗаменить(
- Результат,
- "%/TESTCLIENT%",
- "%/TESTCLIENT -TPort" + НомерПорта + "%");
+ Возврат Результат;
КонецФункции
@@ -290,4 +520,133 @@
КонецФункции
-// } Helpers
\ No newline at end of file
+&НаКлиенте
+Функция ЗабытьЗапущенныйКлиент(ИмяПользователя, Порт)
+
+ Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Для х = -ЗапущенныеТестКлиенты.Количество() + 1 По 0 Цикл
+ ТекЗапущенныйКлиент= ЗапущенныеТестКлиенты[-х];
+ Если ТекЗапущенныйКлиент.ИмяПользователя = ИмяПользователя
+ И ТекЗапущенныйКлиент.Порт = Порт Тогда
+ ЗапущенныеТестКлиенты.Удалить(ТекЗапущенныйКлиент);
+ КонецЕсли;
+ КонецЦикла;
+
+КонецФункции
+
+&НаКлиенте
+Процедура УстановитьТестируемоеОкно(ТекстЗаголовка)
+ Если ТекстЗаголовка = Неопределено Тогда
+ ТестируемоеОкно= Неопределено;
+ Иначе
+ ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УбедитьсяЧтоЭтоСпискок()
+ Если ТипЗнч(ТестируемыйЭлемент) <> Тип("ТестируемаяТаблицаФормы") Тогда
+ ВызватьИсключение "Тестируемый элемент не являяется списком";
+ КонецЕсли;
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область Отладка
+
+&НаКлиенте
+Функция СформироватьСтруктуруПоиска()
+
+ СтруктураПоиска= Новый Структура;
+
+ Для каждого Элемент Из Отладка_СтруктураПоиска Цикл
+ СтруктураПоиска.Вставить(Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+
+ Возврат СтруктураПоиска;
+
+КонецФункции
+
+&НаКлиенте
+Процедура Отладка_Подключить(Команда)
+ ТестКлиентПоПараметрам(Отладка_ИмяПользователя, Отладка_Пароль, 1539);
+ Сообщить("ТестируемоеОкно= " + ТестируемоеОкно); //+debug
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Отключить(Команда)
+ ЗавершитьВсеТестКлиенты();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьСписок(Команда)
+ ОткрытьФормуСписка(Отладка_ПолноеИмя, Отладка_ТекстЗаголовка);
+ Если ТестируемоеОкно = Неопределено Тогда
+ ВызватьИсключение "Не найдено окно с заголовком " + Отладка_ПолноеИмя ;
+ КонецЕсли;
+ Если ТестируемыйЭлемент = Неопределено Тогда
+ ВызватьИсключение "Форма не содержит список";
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьВСписке(Команда)
+
+ СтруктураПоиска= СформироватьСтруктуруПоиска();
+
+ ОткрытьВСписке(Отладка_ТекстЗаголовка, Отладка_СтруктураПоиска);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_НайтиВСписке(Команда)
+
+ НайтиВСписке(СформироватьСтруктуруПоиска());
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьВСпискеТекущий(Команда)
+ ОткрытьВСписке(Отладка_ТекстЗаголовка);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Провести(Команда)
+ Провести(Отладка_ЗакрытьПослеПроведения);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_УстановитьОтборВСписке(Команда)
+
+ УстановитьОтборВСписке(СформироватьСтруктуруПоиска());
+
+КонецПроцедуры
+
+
+#КонецОбласти
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/maps.txt" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/maps.txt"
index f2919852..71c78498 100644
--- "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/maps.txt"
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 342)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (1 425, 2 077)
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0"
index 9891b06f..be66ba57 100644
--- "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0"
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0"
@@ -1,5 +1,5 @@
{3,
-{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{46,0,0,0,0,1,1,1,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
{0,1,0},
{0},1,
@@ -16,7 +16,1382 @@
},
{7,3,0,1,100},
{0,0,0},1,
-{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{0,0,1},0,1,0,0,0,3,3},1,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{9,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ГруппаОсновная",
+{1,1,
+{"ru","Группа основная"}
+},
+{1,1,
+{"ru","Группа основная"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,1,0,0,0,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,2,0,1,1},2,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{11,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ГруппаКнопки",
+{1,1,
+{"ru","Группа кнопки"}
+},
+{1,1,
+{"ru","Группа кнопки"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,0,0,0,0,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,2,0,1,0},7,a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{1,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Подключить",
+{1,0},1,
+{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{2,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ПодключитьРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{5,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"ОткрытьСписок",
+{1,0},1,
+{3,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{6,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ОткрытьСписокРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{23,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_ОткрытьВСписке",
+{1,0},1,
+{5,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{24,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ОткрытьВСпискеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{21,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_НайтиВСписке",
+{1,0},1,
+{4,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{22,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_НайтиВСпискеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{25,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_ОткрытьВСпискеТекущий",
+{1,0},1,
+{6,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{26,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ОткрытьВСпискеТекущийРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{30,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_Провести",
+{1,0},1,
+{7,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{31,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ПровестиРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{60,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отладка_УстановитьОтборВСписке",
+{1,0},1,
+{8,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{61,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_УстановитьОтборВСпискеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,1,0},1,0,1,
+{10,
+{12,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаКнопкиРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{13,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ГруппаДанные",
+{1,1,
+{"ru","Группа1"}
+},
+{1,1,
+{"ru","Группа1"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,0,0,0,0,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,2,0,1,0},7,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{62,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_ИмяПользователя",1,0,
+{1,0},
+{1,0},
+{1,
+{8}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{63,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ИмяПользователяКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{64,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ИмяПользователяРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{65,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_Пароль",1,0,
+{1,0},
+{1,0},
+{1,
+{9}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{66,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ПарольКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{67,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ПарольРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{35,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_ПолноеИмя",1,0,
+{1,0},
+{1,0},
+{1,
+{5}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{36,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ПолноеИмяКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{37,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ПолноеИмяРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{38,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"Отладка_ТекстЗаголовка",1,0,
+{1,0},
+{1,0},
+{1,
+{6}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{39,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ТекстЗаголовкаКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{40,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ТекстЗаголовкаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{27,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},3,"Отладка_ЗакрытьПослеПроведения",1,0,
+{1,0},
+{1,0},
+{1,
+{4}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{10,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},0,
+{1,0},
+{3,4,
+{0}
+},
+{7,3,0,1,100},0,0,0,2},
+{0,1,0},1,
+{21,
+{28,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_ЗакрытьПослеПроведенияКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{29,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_ЗакрытьПослеПроведенияРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},143c00f7-a42d-4cd7-9189-88e4467dc768,
+{51,
+{41,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},"Отладка_СтруктураПоиска",3,0,1,
+{1,1,
+{"ru","Структура поиска"}
+},
+{1,0},
+{1,
+{7}
+},0,1,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,1,2,2,1,1,0,0,0,1,2,0,0,1,1,
+{0},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,1,1,13,
+{"U"},
+{0,1,0},
+{0},1,
+{21,
+{42,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{21,
+{43,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,9,"Отладка_СтруктураПоискаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,1},0,1,0,0,0,3,3},2,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{54,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"Отладка_СтруктураПоискаКлюч",1,0,
+{1,0},
+{1,0},
+{2,
+{7},
+{1}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,2,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{55,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаКлючКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{56,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаКлючРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{57,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"Отладка_СтруктураПоискаЗначение",1,0,
+{1,0},
+{1,0},
+{2,
+{7},
+{2}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,2,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{58,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаЗначениеКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{59,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаЗначениеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},2,2,1,0,
+{"Pattern"},"","",2,2,0,1,
+{10,
+{44,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,0,0,1,
+{4,
+{45,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаСтрокаПоиска",
+{1,0},
+{1,0},1,1,0,1,
+{1,0,2,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,1,0},1,0,0},1,
+{21,
+{46,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаСтрокаПоискаКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{10,
+{47,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаСтрокаПоискаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},2,
+{41,0},0,3,3},1,
+{4,
+{48,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,1,"Отладка_СтруктураПоискаСостояниеПросмотра",
+{1,0},
+{1,0},1,1,0,1,
+{1,0,2,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{7,3,0,1,100},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e},3,
+{0,1,0},1,0,0},1,
+{21,
+{49,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаСостояниеПросмотраКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{10,
+{50,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаСостояниеПросмотраРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},2,
+{41,1},0,3,3},1,
+{4,
+{51,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"Отладка_СтруктураПоискаУправлениеПоиском",
+{1,0},
+{1,0},1,1,0,1,
+{1,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,1,0},1,0,0,2},1,
+{21,
+{52,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"Отладка_СтруктураПоискаУправлениеПоискомКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{10,
+{53,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Отладка_СтруктураПоискаУправлениеПоискомРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},2,
+{41,2},0,3,3},0,1,0,0,1,0,3,3,0,1,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{3,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},1,"Отключить",
+{1,0},1,
+{2,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{4,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ОтключитьРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,2,3,3,0,0,1,0},1,0,1,
+{10,
+{14,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаДанныеРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,0,1,
+{10,
+{10,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаОсновнаяРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},"","",1,
{21,
{0},0,0,0,7,"Navigator",
{1,0},
@@ -47,10 +1422,20 @@
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
-{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0},"&НаКлиенте
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0},"#Область Инициализация
+
+&НаКлиенте
Перем ЗапущенныеТестКлиенты;
-// { Plugin interface
+&НаКлиенте
+Перем ТестируемоеОкно;
+
+&НаКлиенте
+Перем ТестируемыйЭлемент;
+
+&НаКлиенте
+Перем ОписаниеОшибки;
+
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
@@ -61,6 +1446,10 @@
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
+#КонецОбласти
+
+#Область Интерфейс
+
&НаКлиенте
Процедура ПодключитьТестКлиент_ПакетныйРежим(Параметры_xddTestClient) Экспорт
@@ -166,6 +1555,8 @@
КонецЕсли;
КонецЦикла;
+ ЗапущенныеТестКлиенты.Очистить();
+
КонецПроцедуры
&НаКлиенте
@@ -178,6 +1569,8 @@
Результат = ПодключитьТестКлиент();
ЗапомнитьДанныеТестКлиента(Результат, """", """");
+ ПолучитьОсновноеОкно();
+
Возврат Результат;
КонецФункции
@@ -193,12 +1586,227 @@
Результат = ПодключитьТестКлиент(ИмяПользователя, Пароль, Порт);
ЗапомнитьДанныеТестКлиента(Результат, ИмяПользователя, Порт);
+ ПолучитьОсновноеОкно();
+
Возврат Результат;
КонецФункции
-// } Plugin interface
-// { Helpers
+#КонецОбласти
+
+#Область ИнтерфейсАвтоматическогоТестирования
+
+&НаКлиенте
+Функция ПолучитьОписаниеОшибки() Экспорт
+ Возврат ОписаниеОшибки;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестируемыйЭлемент() Экспорт
+ Возврат ТестируемыйЭлемент;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестируемоеОкно() Экспорт
+ Возврат ТестируемоеОкно;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьОкно(ТекстЗаголовка, ОжиданиеСуществования= Истина) Экспорт
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ Если ОжиданиеСуществования Тогда
+ ТестируемоеОкно= ТестКлиент.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ТекстЗаголовка, , 20);
+ Иначе
+ // Несуществующее окно НайтиОбъект ищет очень долго и вызывает ошибку при последующих подключениях
+ ТестируемоеОкно= Неопределено;
+ тестируемыеОкна= ТестКлиент.НайтиОбъекты(Тип(""ТестируемоеОкноКлиентскогоПриложения""), , , 20);
+ Для Каждого ТeкущееОкно Из тестируемыеОкна Цикл
+ Если Найти(ТeкущееОкно.Заголовок, ТекстЗаголовка) Тогда
+ ТестируемоеОкно= ТeкущееОкно;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ Возврат ТестируемоеОкно;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьОсновноеОкно() Экспорт
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ОкнаТестКлиента= ТестКлиент.НайтиОбъекты(Тип(""ТестируемоеОкноКлиентскогоПриложения""), , , 20);
+
+ ТестируемоеОкно= Неопределено;
+
+ Для каждого ОкноТестКлиента Из ОкнаТестКлиента Цикл
+ Если ОкноТестКлиента.Основное Тогда
+ ТестируемоеОкно= ОкноТестКлиента;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат ТестируемоеОкно;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ОткрытьФормуСписка(ПолноеИмяОбъектаМетаданных, ТекстЗаголовка= Неопределено) Экспорт
+
+ ОсновноеОкно= ПолучитьОсновноеОкно();
+
+ ОсновноеОкно.ВыполнитьКоманду(""e1cib/list/"" + ПолноеИмяОбъектаМетаданных);
+
+ Если ТекстЗаголовка <> Неопределено Тогда
+ ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка);
+ Если ТестируемоеОкно = Неопределено Тогда
+ ТестируемыйЭлемент= Неопределено;
+ Иначе
+ ТестируемыйЭлемент= ТестируемоеОкно.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), ""Список"", , 20);
+ КонецЕсли;
+ Иначе
+ ТестируемоеОкно= Неопределено;
+ ТестируемыйЭлемент= Неопределено;
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция НайтиВСписке(СтруктураПоиска) Экспорт
+
+ УбедитьсяЧтоЭтоСпискок();
+
+ ОписаниеСтроки= Новый Соответствие;
+
+ Для Каждого Элемент Из СтруктураПоиска Цикл
+ ОписаниеСтроки.Вставить(Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+
+ ТестируемыйЭлемент.ПерейтиКПервойСтроке();
+
+ Возврат ТестируемыйЭлемент.ПерейтиКСтроке(ОписаниеСтроки);
+
+КонецФункции
+
+&НаКлиенте
+Функция ОткрытьВСписке(ТекстЗаголовка, СтруктураПоиска= Неопределено) Экспорт
+
+ УбедитьсяЧтоЭтоСпискок();
+
+ Если СтруктураПоиска <> Неопределено Тогда
+ НайтиВСписке(СтруктураПоиска);
+ КонецЕсли;
+
+ ТестируемыйЭлемент.Выбрать();
+
+ УстановитьТестируемоеОкно(ТекстЗаголовка);
+
+ Возврат (ТестируемоеОкно <> Неопределено);
+
+КонецФункции
+
+&НаКлиенте
+Функция КоличествоСтрокВСписке() Экспорт
+
+ УбедитьсяЧтоЭтоСпискок();
+
+ ТестируемыйЭлемент.ВыделитьВсеСтроки();
+ ВыделенныеСтроки= ТестируемыйЭлемент.ПолучитьВыделенныеСтроки();
+
+ Возврат ВыделенныеСтроки.Количество();
+
+КонецФункции
+
+&НаКлиенте
+Функция Провести(ЗакрытьПослеПроведения= Ложь) Экспорт
+
+ ОписаниеОшибки= """";
+
+ Если ЗакрытьПослеПроведения Тогда
+ ИмяКнопки= ""ФормаПровестиИЗакрыть"";
+ Иначе
+ ТекстЗаголовкаКнопки= ""ФормаПровести"";
+ КонецЕсли;
+
+ ЗаголовокПроводимогоОкна= ТестируемоеОкно.Заголовок;
+
+ ТестируемаяФорма= ТестируемоеОкно.НайтиОбъект(Тип(""ТестируемаяФорма""), , , 20);
+
+ Кнопка= ТестируемаяФорма.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), , ИмяКнопки, 20);
+
+ Если Кнопка <> Неопределено Тогда
+
+ Кнопка.Нажать();
+
+ ПроведениеВыполнено= Истина;
+
+ ТестКлиент= ТестКлиентПоУмолчанию();
+
+ ИнформацияОбОшибке= ТестКлиент.ПолучитьТекущуюИнформациюОбОшибке();
+
+ Если ИнформацияОбОшибке <> Неопределено Тогда
+ ОписаниеОшибки=
+ НСтр(""ru='Описание=';en='Description='"") + ИнформацияОбОшибке.Описание + ""'"" + Символы.ПС +
+ НСтр(""ru='ИмяМодуля=';en='ModuleName='"") + ИнформацияОбОшибке.ИмяМодуля + ""'"" + Символы.ПС +
+ НСтр(""ru='НомерСтроки=';en='LineNumber='"") + ИнформацияОбОшибке.НомерСтроки + ""'"" + Символы.ПС +
+ НСтр(""ru='ИсходнаяСтрока=';en='SourceLine='"") + ИнформацияОбОшибке.ИсходнаяСтрока;
+
+ ПроведениеВыполнено= Ложь;
+ Иначе
+
+ ОкноОшибки= ПолучитьОкно(""1С:Предприятие"", Ложь);
+
+ Если ОкноОшибки <> Неопределено Тогда
+
+ ПолеОписанияОшибки= ОкноОшибки.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), ""Ошибка*"", , 20);
+
+ Если ПолеОписанияОшибки <> Неопределено Тогда
+ ОписаниеОшибки= ПолеОписанияОшибки.ТекстЗаголовка;
+ ПроведениеВыполнено= Ложь;
+ КонецЕсли;
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Иначе
+ ПроведениеВыполнено= Ложь;
+ ОписаниеОшибки= ""Кнопка не найдена."";
+ КонецЕсли;
+
+ Возврат ПроведениеВыполнено;
+
+КонецФункции
+
+&НаКлиенте
+Функция УстановитьОтборВСписке(СтруктураПоиска= Неопределено) Экспорт
+
+ Если СтруктураПоиска <> Неопределено И СтруктураПоиска.Количество() Тогда
+ НайтиВСписке(СтруктураПоиска);
+ КнопкаНайтиПоТекущемуЗначению = ТестируемоеОкно.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ""Найти по текущему значению"");
+ Для Каждого Элемент Из СтруктураПоиска Цикл
+ ПолеОтбора = ТестируемыйЭлемент.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), , Элемент.Ключ);
+ ПолеОтбора.Активизировать();
+ КнопкаНайтиПоТекущемуЗначению.Нажать();
+ КонецЦикла;
+ Иначе
+ КнопкаНайтиПоТекущемуЗначению = ТестируемоеОкно.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ""Найти по текущему значению"");
+ КнопкаНайтиПоТекущемуЗначению.Нажать();
+ КонецЕсли;
+
+ //TODO: проверка выполнения установки отбора
+ Возврат Истина;
+
+КонецФункции
+
+
+#КонецОбласти
+
+#Область ВспомогательныеПроцедуры
+
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение(""Объект"");
@@ -218,7 +1826,7 @@
КонецЕсли;
Результат = СтрШаблон(
- ""%1 ENTERPRISE /IBConnectionString""""%2"""" /N""""%3""""%4 /TESTCLIENT -TPort%5"",
+ ""%1 ENTERPRISE /IBConnectionString""""%2"""" /WA- /N""""%3"""" %4 /TESTCLIENT -TPort%5"",
СтрокаЗапуска1с,
СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """""""", """"""""""""),
ИмяПользователя,
@@ -246,28 +1854,25 @@
&НаКлиенте
Функция ТекстСкриптаЗавершитьТестКлиент(НомерПорта)
- Результат = ""
- |Option Explicit
- |
- |Dim objWMIService, objProcess, colProcess
- |
- |Set objWMIService = GetObject(""""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"""")
- |
- |Set colProcess = objWMIService.ExecQuery(""""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"""")
- |
- |For Each objProcess in colProcess
- | objProcess.Terminate()
- |Next
- |"";
-
- Если Не ЗначениеЗаполнено(НомерПорта) Тогда
- Возврат Результат;
+ Результат =
+
+ ""Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"""")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"""")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next"";
+
+ Если ЗначениеЗаполнено(НомерПорта) Тогда
+ Результат= СтрЗаменить(Результат, ""%/TESTCLIENT%"", ""%/TESTCLIENT -TPort"" + XMLСтрока(НомерПорта) + ""%"");
КонецЕсли;
- Возврат СтрЗаменить(
- Результат,
- ""%/TESTCLIENT%"",
- ""%/TESTCLIENT -TPort"" + НомерПорта + ""%"");
+ Возврат Результат;
КонецФункции
@@ -289,58 +1894,188 @@
Иначе
Возврат "".exe"";
КонецЕсли;
-
-КонецФункции
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоLinux()
+
+ СисИнфо = Новый СистемнаяИнформация;
+ ВерсияПриложения = СисИнфо.ВерсияПриложения;
+
+ Возврат СтрНайти(Строка(СисИнфо.ТипПлатформы), ""Linux"") > 0;
+
+КонецФункции
+
+&НаСервере
+Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ИдентификаторГенератораОтчета, Знач ОписаниеОшибки)
+ ЗаписьЖурналаРегистрации(ИдентификаторГенератораОтчета, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗапомнитьДанныеТестКлиента(ТестКлиент, ИмяПользователя, Порт)
+
+ ДанныеТестКлиента = Новый Структура;
+ ДанныеТестКлиента.Вставить(""ТестКлиент"", ТестКлиент);
+ ДанныеТестКлиента.Вставить(""ИмяПользователя"", ИмяПользователя);
+ ДанныеТестКлиента.Вставить(""Порт"", Порт);
+
+ Если ЗапущенныеТестКлиенты = Неопределено Тогда
+ ЗапущенныеТестКлиенты = Новый Массив;
+ КонецЕсли;
+
+ ЗапущенныеТестКлиенты.Добавить(ДанныеТестКлиента);
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция НайтиЗапущенныйКлиент(ИмяПользователя, Порт)
+
+ Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Для Каждого ТекЗапущенныйКлиент Из ЗапущенныеТестКлиенты Цикл
+ Если ТекЗапущенныйКлиент.ИмяПользователя = ИмяПользователя
+ И ТекЗапущенныйКлиент.Порт = Порт Тогда
+ Возврат ТекЗапущенныйКлиент.ТестКлиент;
+ КонецЕсли;
+ КонецЦикла;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЗабытьЗапущенныйКлиент(ИмяПользователя, Порт)
+
+ Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Для х = -ЗапущенныеТестКлиенты.Количество() + 1 По 0 Цикл
+ ТекЗапущенныйКлиент= ЗапущенныеТестКлиенты[-х];
+ Если ТекЗапущенныйКлиент.ИмяПользователя = ИмяПользователя
+ И ТекЗапущенныйКлиент.Порт = Порт Тогда
+ ЗапущенныеТестКлиенты.Удалить(ТекЗапущенныйКлиент);
+ КонецЕсли;
+ КонецЦикла;
+
+КонецФункции
+
+&НаКлиенте
+Процедура УстановитьТестируемоеОкно(ТекстЗаголовка)
+ Если ТекстЗаголовка = Неопределено Тогда
+ ТестируемоеОкно= Неопределено;
+ Иначе
+ ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка);
+ КонецЕсли;
+КонецПроцедуры
&НаКлиенте
-Функция ЭтоLinux()
+Процедура УбедитьсяЧтоЭтоСпискок()
+ Если ТипЗнч(ТестируемыйЭлемент) <> Тип(""ТестируемаяТаблицаФормы"") Тогда
+ ВызватьИсключение ""Тестируемый элемент не являяется списком"";
+ КонецЕсли;
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область Отладка
+
+&НаКлиенте
+Функция СформироватьСтруктуруПоиска()
- СисИнфо = Новый СистемнаяИнформация;
- ВерсияПриложения = СисИнфо.ВерсияПриложения;
+ СтруктураПоиска= Новый Структура;
- Возврат СтрНайти(Строка(СисИнфо.ТипПлатформы), ""Linux"") > 0;
+ Для каждого Элемент Из Отладка_СтруктураПоиска Цикл
+ СтруктураПоиска.Вставить(Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+
+ Возврат СтруктураПоиска;
КонецФункции
-&НаСервере
-Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ИдентификаторГенератораОтчета, Знач ОписаниеОшибки)
- ЗаписьЖурналаРегистрации(ИдентификаторГенератораОтчета, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
+&НаКлиенте
+Процедура Отладка_Подключить(Команда)
+ ТестКлиентПоПараметрам(Отладка_ИмяПользователя, Отладка_Пароль, 1539);
+ Сообщить(""ТестируемоеОкно= "" + ТестируемоеОкно); //+debug
КонецПроцедуры
&НаКлиенте
-Процедура ЗапомнитьДанныеТестКлиента(ТестКлиент, ИмяПользователя, Порт)
-
- ДанныеТестКлиента = Новый Структура;
- ДанныеТестКлиента.Вставить(""ТестКлиент"", ТестКлиент);
- ДанныеТестКлиента.Вставить(""ИмяПользователя"", ИмяПользователя);
- ДанныеТестКлиента.Вставить(""Порт"", Порт);
-
- Если ЗапущенныеТестКлиенты = Неопределено Тогда
- ЗапущенныеТестКлиенты = Новый Массив;
+Процедура Отладка_Отключить(Команда)
+ ЗавершитьВсеТестКлиенты();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьСписок(Команда)
+ ОткрытьФормуСписка(Отладка_ПолноеИмя, Отладка_ТекстЗаголовка);
+ Если ТестируемоеОкно = Неопределено Тогда
+ ВызватьИсключение ""Не найдено окно с заголовком "" + Отладка_ПолноеИмя ;
КонецЕсли;
+ Если ТестируемыйЭлемент = Неопределено Тогда
+ ВызватьИсключение ""Форма не содержит список"";
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьВСписке(Команда)
- ЗапущенныеТестКлиенты.Добавить(ДанныеТестКлиента);
+ СтруктураПоиска= СформироватьСтруктуруПоиска();
+
+ ОткрытьВСписке(Отладка_ТекстЗаголовка, Отладка_СтруктураПоиска);
КонецПроцедуры
&НаКлиенте
-Функция НайтиЗапущенныйКлиент(ИмяПользователя, Порт)
+Процедура Отладка_НайтиВСписке(Команда)
- Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда
- Возврат Неопределено;
- КонецЕсли;
+ НайтиВСписке(СформироватьСтруктуруПоиска());
- Для Каждого ТекЗапущенныйКлиент Из ЗапущенныеТестКлиенты Цикл
- Если ТекЗапущенныйКлиент.ИмяПользователя = ИмяПользователя
- И ТекЗапущенныйКлиент.Порт = Порт Тогда
- Возврат ТекЗапущенныйКлиент.ТестКлиент;
- КонецЕсли;
- КонецЦикла;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_ОткрытьВСпискеТекущий(Команда)
+ ОткрытьВСписке(Отладка_ТекстЗаголовка);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_Провести(Команда)
+ Провести(Отладка_ЗакрытьПослеПроведения);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Отладка_УстановитьОтборВСписке(Команда)
-КонецФункции
+ УстановитьОтборВСписке(СформироватьСтруктуруПоиска());
+
+КонецПроцедуры
+
+
+#КонецОбласти
+
+
+
+
-// } Helpers",
-{4,1,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+",
+{4,7,
{9,
{1},0,"Объект",
{1,0},
@@ -359,6 +2094,176 @@
{0,0},1,0,0,0,
{0,0},
{0,0}
+},
+{9,
+{4},0,"Отладка_ЗакрытьПослеПроведения",
+{1,1,
+{"ru","Отладка закрыть после проведения"}
+},
+{"Pattern",
+{"B"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{5},0,"Отладка_ПолноеИмя",
+{1,1,
+{"ru","Отладка полное имя"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{6},0,"Отладка_ТекстЗаголовка",
+{1,1,
+{"ru","Отладка текст заголовка"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{7},0,"Отладка_СтруктураПоиска",
+{1,1,
+{"ru","Отладка структура поиска"}
+},
+{"Pattern",
+{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,2,
+{5,1,0,"Ключ",
+{1,1,
+{"ru","Ключ"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{5,2,0,"Значение",
+{1,1,
+{"ru","Значение"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{0,0},
+{0,0}
+},
+{9,
+{8},0,"Отладка_ИмяПользователя",
+{1,1,
+{"ru","Отладка имя пользователя"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{9},0,"Отладка_Пароль",
+{1,1,
+{"ru","Отладка пароль"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
},0,0,
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
@@ -375,6 +2280,135 @@ L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
},
{0,0},
-{0,0},
+{0,8,
+{8,
+{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_Подключить",
+{1,1,
+{"ru","Отладка подключить"}
+},
+{1,1,
+{"ru","Отладка подключить"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_Подключить",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{2,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_Отключить",
+{1,1,
+{"ru","Отладка отключить"}
+},
+{1,1,
+{"ru","Отладка отключить"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_Отключить",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{3,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_ОткрытьСписок",
+{1,1,
+{"ru","Отладка открыть список"}
+},
+{1,1,
+{"ru","Отладка открыть список"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_ОткрытьСписок",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{4,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_НайтиВСписке",
+{1,1,
+{"ru","Отладка найти в списке"}
+},
+{1,1,
+{"ru","Отладка найти в списке"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_НайтиВСписке",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{5,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_ОткрытьВСписке",
+{1,1,
+{"ru","Отладка открыть в списке"}
+},
+{1,1,
+{"ru","Отладка открыть в списке"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_ОткрытьВСписке",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{6,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_ОткрытьВСпискеТекущий",
+{1,1,
+{"ru","Отладка открыть в списке текущий"}
+},
+{1,1,
+{"ru","Отладка открыть в списке текущий"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_ОткрытьВСпискеТекущий",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{7,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_Провести",
+{1,1,
+{"ru","Отладка провести"}
+},
+{1,1,
+{"ru","Отладка провести"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_Провести",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{8,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка_УстановитьОтборВСписке",
+{1,1,
+{"ru","Отладка установить отбор в списке"}
+},
+{1,1,
+{"ru","Отладка установить отбор в списке"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка_УстановитьОтборВСписке",3,0,0,
+{0,0},1,0,1,0,0}
+},
{0,0},
{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/copyinfo" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/copyinfo"
index c955013b..bace71ce 100644
--- "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/copyinfo"
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/copyinfo"
@@ -10,7 +10,16 @@
{1,
{85629dd2-6be4-49c6-9a69-13411102aa57,908d0aaf-e4ec-4668-8d14-3e8075d222fd,0}
},
-{0},
+{2,
+{
+{1},acf6192e-81ca-46ef-93a6-5a6968b78663,
+{1}
+},
+{
+{2},acf6192e-81ca-46ef-93a6-5a6968b78663,
+{2}
+}
+},
{0,0},
{0}
}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/version" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/version"
index e28c2640..32619b14 100644
--- "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/version"
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/version"
@@ -1,5 +1,5 @@
{
{216,0,
-{80310,0}
+{80309,0}
}
}
\ No newline at end of file
diff --git "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/versions" "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/versions"
index 2d045507..236cd19a 100644
--- "a/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/versions"
+++ "b/src/Plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/versions"
@@ -1 +1 @@
-{1,9,"",565a4c3d-b4df-4426-8186-4908704942aa,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",0138db83-2ea1-44ea-bc02-caa41fdf8cd1,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",b1bbd928-10f6-45d8-bffb-d268b8f6cdfd,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",c7de1ba7-0dcb-4900-9a30-86f63907a8f5,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",e69e25de-633b-47b9-816e-46159ed0e6ba,"copyinfo",6c8bf676-d411-4aaf-8d11-5f46e3920130,"root",1e675368-0297-4b11-846e-fbfaf1a250a5,"version",e7f4eac4-ed21-4b56-8eeb-3672712c02dc,"versions",8ed6ea04-fcf9-4943-a5c9-fec42488f90f}
\ No newline at end of file
+{1,9,"",891f49a5-e1b5-4649-bbfe-1ed92f1c932d,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",ebf586c4-17f6-44f3-a583-08ef16445939,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",ad21b509-4def-446f-98e7-d079d1e85d6f,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",3e75a24c-d71b-42e1-9cff-f5e257543527,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",e69e25de-633b-47b9-816e-46159ed0e6ba,"copyinfo",27a07b9c-9848-4b36-aa02-0519414d18b7,"root",96cfa498-9d80-4307-8dc2-4961b7d2f9eb,"version",a5383096-a019-4297-ba0e-c976d27950e6,"versions",491d84ed-7c32-4333-b248-48b2748bd216}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index e66f6773..f67a86c8 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -1,5 +1,8 @@
-
-// { Plugin interface
+#Область Инициализация
+
+&НаКлиенте
+Перем СтатусыРезультатаТестирования;
+
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
@@ -9,8 +12,15 @@
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
-// } Plugin interface
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдра) Экспорт
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область Интерфейс
+
&НаКлиенте
Функция Что(Знач ПроверяемоеЗначениеПараметр, Знач Сообщение = "") Экспорт
ВыполнитьМетодОбъектаНаСервере("Что", 2, ПроверяемоеЗначениеПараметр, Сообщение);
@@ -18,6 +28,13 @@
Возврат ЭтаФорма;
КонецФункции
+&НаКлиенте
+Функция ЧтоПроверяемоеЗначение(КонтейнерУтверждения) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Что", 2, КонтейнерУтверждения.Объект.ПроверяемоеЗначение, КонтейнерУтверждения.Объект.ДопСообщениеОшибки);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
&НаКлиенте
Функция Не_() Экспорт
ВыполнитьМетодОбъектаНаСервере("Не_", 0);
@@ -179,7 +196,8 @@
Возврат ЭтаФорма;
КонецФункции
-// { Helpers
+#Область ВспомогательныеПроцедуры
+
&НаСервере
Процедура ВыполнитьМетодОбъектаНаСервере(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено)
ОбъектНаСервере = ЭтотОбъектНаСервере();
@@ -205,4 +223,39 @@
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
-// } Helpers
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область Инициализация
+
+СтатусыРезультатаТестирования = Новый Структура;
+СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed");
+СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken");
+СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending");
+СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования);
+
+#КонецОбласти
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.bsl" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.bsl"
index 4e8d5393..54717615 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.bsl"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.bsl"
@@ -1,6 +1,50 @@
Перем СтатусыРезультатаТестирования;
+
Перем ФлагОтрицанияДляСообщения;
+#Область Дополнительные_внешние_отчеты_и_обработки
+
+Функция СведенияОВнешнейОбработке() Экспорт
+
+ РегистрационныеДанные = Новый Структура;
+
+ РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
+ РегистрационныеДанные.Вставить("Наименование", ЭтотОбъект.Метаданные().Синоним);
+ РегистрационныеДанные.Вставить("Версия", "2.0");
+ РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
+ РегистрационныеДанные.Вставить("Информация", ЭтотОбъект.Метаданные().Синоним);
+
+ ТЗКоманды = Новый ТаблицаЗначений;
+
+ ТЗКоманды.Колонки.Добавить("Идентификатор");
+ ТЗКоманды.Колонки.Добавить("Представление");
+ ТЗКоманды.Колонки.Добавить("Модификатор");
+ ТЗКоманды.Колонки.Добавить("ПоказыватьОповещение");
+ ТЗКоманды.Колонки.Добавить("Использование");
+
+ СтрокаКоманды = ТЗКоманды.Добавить();
+
+ СтрокаКоманды.Идентификатор = ЭтотОбъект.Метаданные().Имя;
+ СтрокаКоманды.Представление = ЭтотОбъект.Метаданные().Синоним;
+ СтрокаКоманды.ПоказыватьОповещение = Ложь;
+ СтрокаКоманды.Использование = "ОткрытиеФормы";
+
+ РегистрационныеДанные.Вставить("Команды", ТЗКоманды);
+
+ Возврат РегистрационныеДанные;
+
+КонецФункции
+
+Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
+ НастройкиВарианта = Вычислить("ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, ""ИмяВарианта"")");
+КонецПроцедуры
+
+Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
+ Настройки.ВыводитьСуммуВыделенныхЯчеек = Истина;
+КонецПроцедуры
+
+#КонецОбласти
+
// { Plugin interface
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Результат = Новый Структура;
@@ -282,7 +326,7 @@
КонецФункции
Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки)
- Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
+ Префикс = Символы.ПС + "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
ВызватьИсключение Префикс + " " + СообщениеОшибки;
КонецПроцедуры
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt"
index 51296dd6..97eba76e 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 237)
+Form\Форма\Форма.bsl-->ff4559c2-36fe-45e0-8366-db016ea5c4b6.0 (50, 311)
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt"
index f90a2039..827db3ca 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt"
@@ -1,9 +1,9 @@
-11c5f751-bfaf-480a-92fe-7f30023f2e9a-->und\11c5f751-bfaf-480a-92fe-7f30023f2e9a
-4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
-4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
+95188729-e648-43d0-9b87-945aa8eaf1ee-->und\95188729-e648-43d0-9b87-945aa8eaf1ee
+b52bba65-b5ab-4683-b2bd-33a5a9fe21d1.0\info-->und\b52bba65-b5ab-4683-b2bd-33a5a9fe21d1.0\info
+b52bba65-b5ab-4683-b2bd-33a5a9fe21d1.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
+ff4559c2-36fe-45e0-8366-db016ea5c4b6-->und\ff4559c2-36fe-45e0-8366-db016ea5c4b6
+ff4559c2-36fe-45e0-8366-db016ea5c4b6.0-->und\ff4559c2-36fe-45e0-8366-db016ea5c4b6.0
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a"
deleted file mode 100644
index a2d373c7..00000000
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a"
+++ /dev/null
@@ -1,119 +0,0 @@
-{1,
-{11c5f751-bfaf-480a-92fe-7f30023f2e9a},1,
-{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
-{1,
-{4,85629dd2-6be4-49c6-9a69-13411102aa57,3fdd55c8-e92e-4f99-8b28-3ba8957b50ab,
-{0,
-{0,
-{0,0,908d0aaf-e4ec-4668-8d14-3e8075d222fd},"УтвержденияBDD",
-{1,"ru","Утверждения BDD"},""}
-},4e8e1a4a-a947-419b-95c8-58a411e3ffa4,"",00000000-0000-0000-0000-000000000000},4,
-{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
-{3daea016-69b7-4ed4-9453-127911372fe6,0},
-{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,4e8e1a4a-a947-419b-95c8-58a411e3ffa4},
-{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,5,
-{
-{0,
-{25,
-{2,
-{0,
-{0,0,07e5d7d8-7ae8-4773-83b2-e5af4c8c5895},"ДопСообщениеОшибки",
-{1,"ru","Доп сообщение ошибки"},""},
-{"Pattern",
-{"S"}
-}
-},0,
-{0},
-{0},0,"",0,
-{"U"},
-{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
-{5004,0},
-{3,0,0},
-{0,0},0,
-{0},
-{"S",""},0}
-},0},
-{
-{0,
-{25,
-{2,
-{0,
-{0,0,28603847-6d5b-4e7b-9acb-8cfe3787dc02},"ИмяМетода",
-{1,"ru","Имя метода"},""},
-{"Pattern",
-{"S"}
-}
-},0,
-{0},
-{0},0,"",0,
-{"U"},
-{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
-{5004,0},
-{3,0,0},
-{0,0},0,
-{0},
-{"S",""},0}
-},0},
-{
-{0,
-{25,
-{2,
-{0,
-{0,0,c1b88fc0-4904-40fb-ad59-c4f10385f212},"ПараметрыМетода",
-{1,"ru","Параметры метода"},""},
-{"Pattern"}
-},0,
-{0},
-{0},0,"",0,
-{"U"},
-{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
-{5004,0},
-{3,0,0},
-{0,0},0,
-{0},
-{"S",""},0}
-},0},
-{
-{0,
-{25,
-{2,
-{0,
-{0,0,9ff3fc84-a67e-44c1-83e8-ba5bd472312b},"ПроверяемоеЗначение",
-{1,"ru","Проверяемое значение"},""},
-{"Pattern"}
-},0,
-{0},
-{0},0,"",0,
-{"U"},
-{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
-{5004,0},
-{3,0,0},
-{0,0},0,
-{0},
-{"S",""},0}
-},0},
-{
-{0,
-{25,
-{2,
-{0,
-{0,0,6f466249-bf6f-4555-92bd-b04d98991255},"ФлагОтрицания",
-{1,"ru","Флаг отрицания"},""},
-{"Pattern",
-{"B"}
-}
-},0,
-{0},
-{0},0,"",0,
-{"U"},
-{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
-{5004,0},
-{3,0,0},
-{0,0},0,
-{0},
-{"S",""},0}
-},0}
-}
-}
-}
-}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4"
deleted file mode 100644
index e9f6cd91..00000000
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4"
+++ /dev/null
@@ -1,10 +0,0 @@
-{1,
-{1,
-{0,
-{9,
-{0,
-{0,0,4e8e1a4a-a947-419b-95c8-58a411e3ffa4},"Форма",
-{1,"ru","Форма"},""},0,1},
-{0}
-}
-},0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/95188729-e648-43d0-9b87-945aa8eaf1ee" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/95188729-e648-43d0-9b87-945aa8eaf1ee"
new file mode 100644
index 00000000..3ebae090
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/95188729-e648-43d0-9b87-945aa8eaf1ee"
@@ -0,0 +1,119 @@
+{1,
+{95188729-e648-43d0-9b87-945aa8eaf1ee},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,52cf150a-4565-4ce2-8539-2ce2755f6d76,68516b0f-7d6c-43eb-bd87-9c1ba1327c2f,
+{0,
+{1,
+{0,0,b52bba65-b5ab-4683-b2bd-33a5a9fe21d1},"УтвержденияBDD",
+{1,"ru","Утверждения BDD"},"",0,0}
+},ff4559c2-36fe-45e0-8366-db016ea5c4b6,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,0},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,ff4559c2-36fe-45e0-8366-db016ea5c4b6},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,5,
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,cc1d190e-379c-4b0d-839d-9605784b220c},"ДопСообщениеОшибки",
+{1,"ru","Доп сообщение ошибки"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,109c1820-b228-440d-af88-3e7c54e2987e},"ИмяМетода",
+{1,"ru","Имя метода"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,4e02f4a0-805e-4986-be63-66cbf79e2de8},"ПараметрыМетода",
+{1,"ru","Параметры метода"},"",0,0},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,18e4e210-7247-415f-ae97-97cd84590786},"ПроверяемоеЗначение",
+{1,"ru","Проверяемое значение"},"",0,0},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,a6c04082-3d3d-4f56-9991-61ae3bfca057},"ФлагОтрицания",
+{1,"ru","Флаг отрицания"},"",0,0},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0}
+}
+}
+}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/b52bba65-b5ab-4683-b2bd-33a5a9fe21d1.0/info" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/b52bba65-b5ab-4683-b2bd-33a5a9fe21d1.0/info"
new file mode 100644
index 00000000..c70b5f39
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/b52bba65-b5ab-4683-b2bd-33a5a9fe21d1.0/info"
@@ -0,0 +1 @@
+{3,1,0,"",0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/copyinfo" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/copyinfo"
index ac8fe6aa..4e21bf07 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/copyinfo"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/copyinfo"
@@ -1,14 +1,14 @@
{4,
{2,
-{4e8e1a4a-a947-419b-95c8-58a411e3ffa4,4e8e1a4a-a947-419b-95c8-58a411e3ffa4,1,
-{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
-},
-{908d0aaf-e4ec-4668-8d14-3e8075d222fd,908d0aaf-e4ec-4668-8d14-3e8075d222fd,1,
+{b52bba65-b5ab-4683-b2bd-33a5a9fe21d1,b52bba65-b5ab-4683-b2bd-33a5a9fe21d1,1,
{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"УтвержденияBDD"}
+},
+{ff4559c2-36fe-45e0-8366-db016ea5c4b6,ff4559c2-36fe-45e0-8366-db016ea5c4b6,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
}
},
{1,
-{85629dd2-6be4-49c6-9a69-13411102aa57,908d0aaf-e4ec-4668-8d14-3e8075d222fd,0}
+{52cf150a-4565-4ce2-8539-2ce2755f6d76,b52bba65-b5ab-4683-b2bd-33a5a9fe21d1,0}
},
{0},
{0,0},
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/ff4559c2-36fe-45e0-8366-db016ea5c4b6" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/ff4559c2-36fe-45e0-8366-db016ea5c4b6"
new file mode 100644
index 00000000..972aefce
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/ff4559c2-36fe-45e0-8366-db016ea5c4b6"
@@ -0,0 +1,15 @@
+{1,
+{1,
+{0,
+{12,
+{1,
+{0,0,ff4559c2-36fe-45e0-8366-db016ea5c4b6},"Форма",
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/ff4559c2-36fe-45e0-8366-db016ea5c4b6.0"
similarity index 78%
rename from "src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0"
rename to "src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/ff4559c2-36fe-45e0-8366-db016ea5c4b6.0"
index 1c17e9a1..1dcd132d 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/ff4559c2-36fe-45e0-8366-db016ea5c4b6.0"
@@ -1,9 +1,9 @@
-{2,
-{28,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{3,
+{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
-{0},
+{0,1,0},
{0},1,
-{17,
+{21,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
@@ -14,20 +14,44 @@
{3,4,
{0}
},
-{6,3,0,1},
+{7,3,0,1,100},
{0,0,0},1,
-{0,0,1},0,1},0,"","",1,
-{17,
+{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{21,
{0},0,0,0,7,"Navigator",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
-{6,3,0,1},
-{0,0,0},0,0,1}
-},"
-// { Plugin interface
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0},"#Область Инициализация
+
+&НаКлиенте
+Перем СтатусыРезультатаТестирования;
+
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
@@ -37,8 +61,15 @@
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
-// } Plugin interface
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдра) Экспорт
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область Интерфейс
+
&НаКлиенте
Функция Что(Знач ПроверяемоеЗначениеПараметр, Знач Сообщение = """") Экспорт
ВыполнитьМетодОбъектаНаСервере(""Что"", 2, ПроверяемоеЗначениеПараметр, Сообщение);
@@ -46,6 +77,13 @@
Возврат ЭтаФорма;
КонецФункции
+&НаКлиенте
+Функция ЧтоПроверяемоеЗначение(КонтейнерУтверждения) Экспорт
+ ВыполнитьМетодОбъектаНаСервере(""Что"", 2, КонтейнерУтверждения.Объект.ПроверяемоеЗначение, КонтейнерУтверждения.Объект.ДопСообщениеОшибки);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
&НаКлиенте
Функция Не_() Экспорт
ВыполнитьМетодОбъектаНаСервере(""Не_"", 0);
@@ -207,7 +245,8 @@
Возврат ЭтаФорма;
КонецФункции
-// { Helpers
+#Область ВспомогательныеПроцедуры
+
&НаСервере
Процедура ВыполнитьМетодОбъектаНаСервере(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено)
ОбъектНаСервере = ЭтотОбъектНаСервере();
@@ -233,14 +272,49 @@
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение(""Объект"");
КонецФункции
-// } Helpers
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область Инициализация
+
+СтатусыРезультатаТестирования = Новый Структура;
+СтатусыРезультатаТестирования.Вставить(""ОшибкаПроверки"", ""Failed"");
+СтатусыРезультатаТестирования.Вставить(""НеизвестнаяОшибка"", ""Broken"");
+СтатусыРезультатаТестирования.Вставить(""ТестПропущен"", ""Pending"");
+СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования);
+
+#КонецОбласти
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
",
{4,1,
{9,
{1},0,"Объект",
{1,0},
{"Pattern",
-{"#",85629dd2-6be4-49c6-9a69-13411102aa57}
+{"#",52cf150a-4565-4ce2-8539-2ce2755f6d76}
},
{0,
{0,
@@ -266,10 +340,10 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
-L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
+YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
},
{0,0},
{0,0},
{0,0},
-{0,0}
-}
\ No newline at end of file
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/root" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/root"
index fe2f30c4..58115c40 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/root"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/root"
@@ -1 +1 @@
-{2,11c5f751-bfaf-480a-92fe-7f30023f2e9a,}
\ No newline at end of file
+{2,95188729-e648-43d0-9b87-945aa8eaf1ee,}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/version" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/version"
index c23bfe28..421eee79 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/version"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/version"
@@ -1,3 +1,5 @@
{
-{216,0}
+{216,0,
+{80308,0}
+}
}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/versions" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/versions"
index 619d807b..af3b3936 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/versions"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/und/versions"
@@ -1 +1 @@
-{1,9,"",ed542c0a-33fe-45f8-8256-cd7cd33589a6,"versions",bd97ff49-bee9-405e-b19d-db31939775bb,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",54f1680e-a95f-4174-a6f1-d007d90b31a6,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",981da0fc-858a-407d-9de5-523c9903770d,"root",ae6db17a-ed32-4b59-9333-4f533537d64f,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",25b8a6c9-f5a4-4e16-89df-13515077ece3,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",ac7150ca-bdc6-4a3d-be3a-c49645d1f35c,"version",425178a6-fd69-41b2-8576-f2b59d5a799c,"copyinfo",ca7d1d10-7a2d-4666-b004-d953e2d1d2c4}
\ No newline at end of file
+{1,9,"",32b0324b-5f8c-40c6-8382-c52f366931d5,"95188729-e648-43d0-9b87-945aa8eaf1ee",be1ddcf3-9d1e-4d92-8b36-48384a1ce06f,"b52bba65-b5ab-4683-b2bd-33a5a9fe21d1.0",a527214d-32e0-4764-8254-1a549746eee8,"copyinfo",0ac31234-6b63-4e40-baa7-7002e2adc778,"ff4559c2-36fe-45e0-8366-db016ea5c4b6",2b7faf19-798c-4ef6-8759-60ecaafd9f50,"ff4559c2-36fe-45e0-8366-db016ea5c4b6.0",ab1b295a-91b5-4c89-8fc6-756b0d8e543b,"root",52d144e3-c087-4cdd-a25e-412890e2219f,"version",ea979e5f-1e46-4f5e-bc73-30c1265b4887,"versions",d746b015-cad6-49e0-901d-c2393e1ea5b8}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..752a5d0c
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,254 @@
+&НаКлиенте
+Перем ТекущийКлиент;
+
+&НаКлиенте
+Перем ТекущийПорт;
+
+&НаКлиенте
+Перем СтатусыРезультатаТестирования;
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
+
+// FLUENT ASSERTIONS
+
+&НаКлиенте
+Функция ПодключениеКлиентаТестирования(ИмяПользователя = "", Пароль = "", Порт = 1538) Экспорт
+
+ ПодключитьТестКлиент(ИмяПользователя, Пароль, Порт);
+
+ Если ТекущийКлиент = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон("Клиент тестирования с именем пользователя %1", ИмяПользователя);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БУДЕТ ПОДКЛЮЧЕН.");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОтключениеКлиентаТестирования() Экспорт
+
+ ОтключитьТестКлиент();
+
+ Если ТекущийКлиент <> Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон("Клиент тестирования на порту %1", XMLСтрока(ТекущийПорт));
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БУДЕТ ОТКЛЮЧЕН.");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТестНаКлиенте() Экспорт
+ Возврат "Получилось.";
+КонецФункции
+
+
+// Из УтвержденияBDD
+
+&НаКлиенте
+Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки)
+ Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
+ ВызватьИсключение Префикс + " " + СообщениеОшибки;
+КонецПроцедуры
+
+&НаКлиенте
+Функция СформироватьСообщениеОбОшибке(Знач ПроверяемоеЗначение, Знач Ожидание)
+ Возврат
+ "Ожидали, что проверяемое значение (" + ПроверяемоеЗначение + ") "
+ //+ ?(ФлагОтрицанияДляСообщения, " НЕ ", " ")
+ + Ожидание
+ //+ ФорматДСО(ДопСообщениеОшибки)
+ ;
+КонецФункции
+
+// Из ТестКлиенты
+
+&НаКлиенте
+Функция ПодключитьТестКлиент(ИмяПользователя = "", Пароль = "", Порт = 1538) Экспорт
+
+ Если ТекущийКлиент <> Неопределено Тогда
+ ОтключитьТестКлиент();
+ КонецЕсли;
+
+ Результат = Неопределено;
+
+ Попытка
+ Выполнить "Результат = Новый ТестируемоеПриложение(, XMLСтрока(Порт));";
+ Исключение
+ КонецПопытки;
+
+ Если Результат = Неопределено Тогда
+ ВызватьИсключение "Не удалось создать объект ТестируемоеПриложение.
+ |Возможно, что 1С:Предприятие 8 не было запущено в режиме Менеджера тестирования (ключ командной строки /TESTMANAGER)
+ |При запуске Предприятия через Конфигуратор можно включить этот режим в параметрах конфигуратора Сервис -> Параметры -> Запуск 1С:Предприятия -> Дополнительные -> Автоматизированное тестирование -> пункт ""Запускать как менеджер тестирования"".";
+ КонецЕсли;
+
+ // Попытка подключиться к уже запущенному приложению.
+ Подключен = Ложь;
+ Попытка
+ Результат.УстановитьСоединение();
+ Подключен = Истина;
+ Исключение
+ КонецПопытки;
+
+ Если Подключен Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ ЗапуститьПриложение(СтрокаЗапускаТестКлиента(ИмяПользователя, Пароль, Порт));
+
+ ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутВСекундах();
+ ОписаниеОшибкиСоединения = "";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ Результат.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+
+ Если Не Подключен Тогда
+ ВызватьИсключение СтрШаблон(
+ "Не смогли установить соединение с тестовым приложением для пользователя %1!
+ |%2",
+ ИмяПользователя,
+ ОписаниеОшибкиСоединения);
+ КонецЕсли;
+
+ Если Результат <> Неопределено Тогда
+ ТекущийКлиент= Результат;
+ ТекущийПорт= Порт;
+ Иначе
+ ТекущийКлиент= Неопределено;
+ ТекущийПорт= Неопределено;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ОтключитьТестКлиент()
+
+ Если ТекущийКлиент = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если ЭтоLinux() Тогда
+ ЗапуститьПриложение("kill -9 `ps aux | grep -ie TESTCLIENT | grep -ie 1cv8c | awk '{print $2}'`");
+ Иначе
+ Scr = Новый COMОбъект("MSScriptControl.ScriptControl");
+ Scr.Language = "vbscript";
+ Scr.AddCode(ТекстСкриптаЗавершитьТестКлиент(ТекущийПорт));
+ КонецЕсли;
+
+ ТекущийКлиент = Неопределено;
+ ТекущийПорт = Неопределено;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ТекстСкриптаЗавершитьТестКлиент(НомерПорта)
+
+ Результат = "
+ |Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next
+ |";
+
+ Если Не ЗначениеЗаполнено(НомерПорта) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Возврат СтрЗаменить(
+ Результат,
+ "%/TESTCLIENT%",
+ "%/TESTCLIENT -TPort" + XMLСтрока(НомерПорта) + "%");
+
+КонецФункции
+
+&НаКлиенте
+Функция СтрокаЗапускаТестКлиента(ИмяПользователя = "", Пароль = "", Порт = "")
+
+ Если Не ЗначениеЗаполнено(ИмяПользователя) Тогда
+ ИмяПользователя = ИмяТекущегоПользователя();
+ КонецЕсли;
+
+ СтрокаЗапуска1с = КаталогПрограммы() + "1cv8c";
+
+ Если Не ЭтоLinux() Тогда
+ СтрокаЗапуска1с = СтрШаблон("%1.exe", СтрокаЗапуска1с);;
+ КонецЕсли;
+
+ Результат = СтрШаблон(
+ "%1 ENTERPRISE /IBConnectionString""%2"" /N""%3""%4 /TESTCLIENT -TPort%5",
+ СтрокаЗапуска1с,
+ СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """"""),
+ ИмяПользователя,
+ ?(ПустаяСтрока(Пароль), ""," /P""" + Пароль + """"),
+ XMLСтрока(Порт));
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаСервереБезКонтекста
+Функция ИмяТекущегоПользователя()
+
+ Возврат ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТаймаутВСекундах()
+
+ Возврат 20;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоLinux()
+
+ СисИнфо = Новый СистемнаяИнформация;
+ ВерсияПриложения = СисИнфо.ВерсияПриложения;
+
+ Возврат СтрНайти(Строка(СисИнфо.ТипПлатформы), "Linux") > 0;
+
+КонецФункции
+
+СтатусыРезультатаТестирования = Новый Структура;
+СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed");
+СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken");
+СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending");
+СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования);
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/ObjectModule.bsl" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/ObjectModule.bsl"
new file mode 100644
index 00000000..56df6390
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/ObjectModule.bsl"
@@ -0,0 +1,19 @@
+
+//{ Plugin interface
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+
+ МетаданныеПлагина= Метаданные();
+
+ Результат = Новый Структура;
+
+ Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита);
+ Результат.Вставить("Идентификатор", МетаданныеПлагина.Имя);
+ Результат.Вставить("Представление", МетаданныеПлагина.Синоним);
+
+ Возврат Новый ФиксированнаяСтруктура(Результат);
+
+КонецФункции
+
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+КонецПроцедуры
+//} Plugin interface
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/maps.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/maps.txt"
new file mode 100644
index 00000000..35388848
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->53df04de-c526-42a9-8ef6-55b2b404deed.0 (50, 304)
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/renames.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/renames.txt"
new file mode 100644
index 00000000..77be0eb3
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/renames.txt"
@@ -0,0 +1,9 @@
+1c895896-ea30-40de-992b-ae37efa6d516-->und\1c895896-ea30-40de-992b-ae37efa6d516
+53df04de-c526-42a9-8ef6-55b2b404deed-->und\53df04de-c526-42a9-8ef6-55b2b404deed
+53df04de-c526-42a9-8ef6-55b2b404deed.0-->und\53df04de-c526-42a9-8ef6-55b2b404deed.0
+copyinfo-->und\copyinfo
+df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad.0\info-->und\df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad.0\info
+df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad.0\text-->ObjectModule.bsl
+root-->und\root
+version-->und\version
+versions-->und\versions
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/1c895896-ea30-40de-992b-ae37efa6d516" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/1c895896-ea30-40de-992b-ae37efa6d516"
new file mode 100644
index 00000000..3925f29c
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/1c895896-ea30-40de-992b-ae37efa6d516"
@@ -0,0 +1,119 @@
+{1,
+{1c895896-ea30-40de-992b-ae37efa6d516},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,0e3bdb19-dec8-4860-8554-9d05e2a33cfd,40070662-bcab-48bd-b0c5-deed07f8a185,
+{0,
+{1,
+{0,0,df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad},"УтвержденияBDDForms",
+{1,"ru","Утверждения BDD Forms"},"Утверждения BDD для управляемых форм",0,0}
+},53df04de-c526-42a9-8ef6-55b2b404deed,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,0},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,53df04de-c526-42a9-8ef6-55b2b404deed},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,5,
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,9f323d92-9d30-4d5f-a278-6b8246064781},"ДопСообщениеОшибки",
+{1,"ru","Доп сообщение ошибки"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,36694a2c-ad55-4747-8b21-31313639fcfb},"ИмяМетода",
+{1,"ru","Имя метода"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,adc99c00-8d18-4a63-b465-db2f6ae35cd7},"ПараметрыМетода",
+{1,"ru","Параметры метода"},"",0,0},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,76797129-7b28-4f6e-a1be-a971d42ac036},"ПроверяемоеЗначение",
+{1,"ru","Проверяемое значение"},"",0,0},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,2b0d1c36-968a-4729-bbd5-5fd8f4e14fe6},"ФлагОтрицания",
+{1,"ru","Флаг отрицания"},"",0,0},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0}
+}
+}
+}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/53df04de-c526-42a9-8ef6-55b2b404deed" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/53df04de-c526-42a9-8ef6-55b2b404deed"
new file mode 100644
index 00000000..b157f8e3
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/53df04de-c526-42a9-8ef6-55b2b404deed"
@@ -0,0 +1,15 @@
+{1,
+{1,
+{0,
+{12,
+{1,
+{0,0,53df04de-c526-42a9-8ef6-55b2b404deed},"Форма",
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/53df04de-c526-42a9-8ef6-55b2b404deed.0" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/53df04de-c526-42a9-8ef6-55b2b404deed.0"
new file mode 100644
index 00000000..91c6a3b5
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/53df04de-c526-42a9-8ef6-55b2b404deed.0"
@@ -0,0 +1,342 @@
+{3,
+{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{1,0},0,0,1,1,1,0,1,0,
+{0,1,0},
+{0},1,
+{21,
+{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},9,"ФормаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{21,
+{0},0,0,0,7,"Navigator",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0},"&НаКлиенте
+Перем ТекущийКлиент;
+
+&НаКлиенте
+Перем ТекущийПорт;
+
+&НаКлиенте
+Перем СтатусыРезультатаТестирования;
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение(""Объект"");
+КонецФункции
+// } Helpers
+
+// FLUENT ASSERTIONS
+
+&НаКлиенте
+Функция ПодключениеКлиентаТестирования(ИмяПользователя = """", Пароль = """", Порт = 1538) Экспорт
+
+ ПодключитьТестКлиент(ИмяПользователя, Пароль, Порт);
+
+ Если ТекущийКлиент = Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон(""Клиент тестирования с именем пользователя %1"", ИмяПользователя);
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ ПОДКЛЮЧЕН."");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ОтключениеКлиентаТестирования() Экспорт
+
+ ОтключитьТестКлиент();
+
+ Если ТекущийКлиент <> Неопределено Тогда
+ ПроверяемоеЗначение= СтрШаблон(""Клиент тестирования на порту %1"", XMLСтрока(ТекущийПорт));
+ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ ОТКЛЮЧЕН."");
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+
+ Возврат ЭтаФорма;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТестНаКлиенте() Экспорт
+ Возврат ""Получилось."";
+КонецФункции
+
+
+// Из УтвержденияBDD
+
+&НаКлиенте
+Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки)
+ Префикс = ""[""+ СтатусыРезультатаТестирования.ОшибкаПроверки + ""]"";
+ ВызватьИсключение Префикс + "" "" + СообщениеОшибки;
+КонецПроцедуры
+
+&НаКлиенте
+Функция СформироватьСообщениеОбОшибке(Знач ПроверяемоеЗначение, Знач Ожидание)
+ Возврат
+ ""Ожидали, что проверяемое значение ("" + ПроверяемоеЗначение + "") ""
+ //+ ?(ФлагОтрицанияДляСообщения, "" НЕ "", "" "")
+ + Ожидание
+ //+ ФорматДСО(ДопСообщениеОшибки)
+ ;
+КонецФункции
+
+// Из ТестКлиенты
+
+&НаКлиенте
+Функция ПодключитьТестКлиент(ИмяПользователя = """", Пароль = """", Порт = 1538) Экспорт
+
+ Если ТекущийКлиент <> Неопределено Тогда
+ ОтключитьТестКлиент();
+ КонецЕсли;
+
+ Результат = Неопределено;
+
+ Попытка
+ Выполнить ""Результат = Новый ТестируемоеПриложение(, XMLСтрока(Порт));"";
+ Исключение
+ КонецПопытки;
+
+ Если Результат = Неопределено Тогда
+ ВызватьИсключение ""Не удалось создать объект ТестируемоеПриложение.
+ |Возможно, что 1С:Предприятие 8 не было запущено в режиме Менеджера тестирования (ключ командной строки /TESTMANAGER)
+ |При запуске Предприятия через Конфигуратор можно включить этот режим в параметрах конфигуратора Сервис -> Параметры -> Запуск 1С:Предприятия -> Дополнительные -> Автоматизированное тестирование -> пункт """"Запускать как менеджер тестирования""""."";
+ КонецЕсли;
+
+ // Попытка подключиться к уже запущенному приложению.
+ Подключен = Ложь;
+ Попытка
+ Результат.УстановитьСоединение();
+ Подключен = Истина;
+ Исключение
+ КонецПопытки;
+
+ Если Подключен Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ ЗапуститьПриложение(СтрокаЗапускаТестКлиента(ИмяПользователя, Пароль, Порт));
+
+ ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутВСекундах();
+ ОписаниеОшибкиСоединения = """";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ Результат.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+
+ Если Не Подключен Тогда
+ ВызватьИсключение СтрШаблон(
+ ""Не смогли установить соединение с тестовым приложением для пользователя %1!
+ |%2"",
+ ИмяПользователя,
+ ОписаниеОшибкиСоединения);
+ КонецЕсли;
+
+ Если Результат <> Неопределено Тогда
+ ТекущийКлиент= Результат;
+ ТекущийПорт= Порт;
+ Иначе
+ ТекущийКлиент= Неопределено;
+ ТекущийПорт= Неопределено;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаКлиенте
+Процедура ОтключитьТестКлиент()
+
+ Если ТекущийКлиент = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если ЭтоLinux() Тогда
+ ЗапуститьПриложение(""kill -9 `ps aux | grep -ie TESTCLIENT | grep -ie 1cv8c | awk '{print $2}'`"");
+ Иначе
+ Scr = Новый COMОбъект(""MSScriptControl.ScriptControl"");
+ Scr.Language = ""vbscript"";
+ Scr.AddCode(ТекстСкриптаЗавершитьТестКлиент(ТекущийПорт));
+ КонецЕсли;
+
+ ТекущийКлиент = Неопределено;
+ ТекущийПорт = Неопределено;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ТекстСкриптаЗавершитьТестКлиент(НомерПорта)
+
+ Результат = ""
+ |Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"""")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"""")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next
+ |"";
+
+ Если Не ЗначениеЗаполнено(НомерПорта) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Возврат СтрЗаменить(
+ Результат,
+ ""%/TESTCLIENT%"",
+ ""%/TESTCLIENT -TPort"" + XMLСтрока(НомерПорта) + ""%"");
+
+КонецФункции
+
+&НаКлиенте
+Функция СтрокаЗапускаТестКлиента(ИмяПользователя = """", Пароль = """", Порт = """")
+
+ Если Не ЗначениеЗаполнено(ИмяПользователя) Тогда
+ ИмяПользователя = ИмяТекущегоПользователя();
+ КонецЕсли;
+
+ СтрокаЗапуска1с = КаталогПрограммы() + ""1cv8c"";
+
+ Если Не ЭтоLinux() Тогда
+ СтрокаЗапуска1с = СтрШаблон(""%1.exe"", СтрокаЗапуска1с);;
+ КонецЕсли;
+
+ Результат = СтрШаблон(
+ ""%1 ENTERPRISE /IBConnectionString""""%2"""" /N""""%3""""%4 /TESTCLIENT -TPort%5"",
+ СтрокаЗапуска1с,
+ СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """""""", """"""""""""),
+ ИмяПользователя,
+ ?(ПустаяСтрока(Пароль), """","" /P"""""" + Пароль + """"""""),
+ XMLСтрока(Порт));
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаСервереБезКонтекста
+Функция ИмяТекущегоПользователя()
+
+ Возврат ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
+
+КонецФункции
+
+&НаКлиенте
+Функция ТаймаутВСекундах()
+
+ Возврат 20;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоLinux()
+
+ СисИнфо = Новый СистемнаяИнформация;
+ ВерсияПриложения = СисИнфо.ВерсияПриложения;
+
+ Возврат СтрНайти(Строка(СисИнфо.ТипПлатформы), ""Linux"") > 0;
+
+КонецФункции
+
+СтатусыРезультатаТестирования = Новый Структура;
+СтатусыРезультатаТестирования.Вставить(""ОшибкаПроверки"", ""Failed"");
+СтатусыРезультатаТестирования.Вставить(""НеизвестнаяОшибка"", ""Broken"");
+СтатусыРезультатаТестирования.Вставить(""ТестПропущен"", ""Pending"");
+СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования);
+",
+{4,1,
+{9,
+{1},0,"Объект",
+{1,0},
+{"Pattern",
+{"#",0e3bdb19-dec8-4860-8554-9d05e2a33cfd}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},1,0,0,0,
+{0,0},
+{0,0}
+},0,0,
+{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
+aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
+LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
+OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
+dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
+cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
+Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
+Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
+LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
+LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
+cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
+YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
+},
+{0,0},
+{0,0},
+{0,0},
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/copyinfo" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/copyinfo"
new file mode 100644
index 00000000..8c3bea8f
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/copyinfo"
@@ -0,0 +1,16 @@
+{4,
+{2,
+{53df04de-c526-42a9-8ef6-55b2b404deed,53df04de-c526-42a9-8ef6-55b2b404deed,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
+},
+{df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad,df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"УтвержденияBDDForms"}
+}
+},
+{1,
+{0e3bdb19-dec8-4860-8554-9d05e2a33cfd,df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad,0}
+},
+{0},
+{0,0},
+{0}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad.0/info" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad.0/info"
new file mode 100644
index 00000000..c70b5f39
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad.0/info"
@@ -0,0 +1 @@
+{3,1,0,"",0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/root" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/root"
new file mode 100644
index 00000000..42444131
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/root"
@@ -0,0 +1 @@
+{2,1c895896-ea30-40de-992b-ae37efa6d516,}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/version" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/version"
new file mode 100644
index 00000000..421eee79
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/version"
@@ -0,0 +1,5 @@
+{
+{216,0,
+{80308,0}
+}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/versions" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/versions"
new file mode 100644
index 00000000..c249f435
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/versions"
@@ -0,0 +1 @@
+{1,10,"",ee907632-93f1-4246-bf2f-784f0d48ded4,"1c895896-ea30-40de-992b-ae37efa6d516",d9b045a1-3ad4-44d1-a6e0-7645acf50053,"53df04de-c526-42a9-8ef6-55b2b404deed",ba8da460-829b-4134-9b8d-d1349ba8bebd,"53df04de-c526-42a9-8ef6-55b2b404deed.0",139f62a4-8182-48da-bf96-e3781664897f,"53df04de-c526-42a9-8ef6-55b2b404deed.1",b584119c-c8c8-45c4-bcbc-51accb15d30a,"copyinfo",d15a5ada-9fc1-4462-969b-256acec8ff0c,"df697f1e-a6b6-4d6d-87cb-2b95f0e1e5ad.0",a8b8dd13-1b59-45f0-88ab-ca0a2955550a,"root",3c715cd4-0204-4e6c-81db-10940d19e8d8,"version",2b8ee76d-97bd-47ed-8402-1fe80b9c03b6,"versions",9d3190d5-eab6-4064-8221-ec7f0e7e368f}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..e4232678
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,302 @@
+
+#Область Инициализация
+
+&НаКлиенте
+Перем КонтекстЯдра;
+
+&НаКлиенте
+Перем Ожидаем;
+
+&НаКлиенте
+Перем ТестКлиент;
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+ ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов;
+ Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
+ ТестКлиент = КонтекстЯдра.Плагин("ТестКлиент");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПередЗапускомТеста() Экспорт
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста() Экспорт
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ВспомогательныеМетоды
+
+&НаСервере
+// Добавляет значение с ключом в тестовые данные для УФ
+Процедура ДобавитьТестовыеДанные(Ключ, ТестовыеДанные)
+
+ СтрокаТестовыхДанных= ТестовыеДанныеУФ.НайтиСтроки(Новый Структура("Ключ", Ключ));
+
+ Если СтрокаТестовыхДанных.Количество() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СтрокаТестовыйДокумент= ТестовыеДанныеУФ.Добавить();
+
+ СтрокаТестовыйДокумент.Ключ= Ключ;
+
+ Значение= Новый СписокЗначений;
+ Значение.Добавить(ТестовыеДанные, Ключ);
+
+ СтрокаТестовыйДокумент.Значение= Значение;
+
+КонецПроцедуры
+
+&НаКлиентеНаСервереБезКонтекста
+// Возвращает первое значение из списка по ключу из тестовых данные для УФ
+Функция ПолучитьТестовыеДанные(ТестовыеДанныеУФ, Ключ)
+
+ СписокТестовыхДанных= ПолучитьСписокТестовыхДанных(ТестовыеДанныеУФ, Ключ);
+
+ Если СписокТестовыхДанных = Неопределено Тогда
+ ТестовыеДанные= Неопределено;
+ Иначе
+ ТестовыеДанные= СписокТестовыхДанных[0].Значение;
+ КонецЕсли;
+
+ Возврат ТестовыеДанные;
+
+КонецФункции
+
+&НаКлиентеНаСервереБезКонтекста
+// Возвращает список значение по ключу из тестовых данные для УФ
+Функция ПолучитьСписокТестовыхДанных(ТестовыеДанныеУФ, Ключ)
+
+ СтрокиТестовыхДанных= ТестовыеДанныеУФ.НайтиСтроки(Новый Структура("Ключ", Ключ));
+
+ Если Не СтрокиТестовыхДанных.Количество() Тогда
+ СписокТестовыхДанных= Неопределено;
+ Иначе
+ СписокТестовыхДанных= СтрокиТестовыхДанных[0].Значение;
+ КонецЕсли;
+
+ Возврат СписокТестовыхДанных;
+
+КонецФункции
+
+// { Подсистема конфигурации xUnitFor1C
+
+&НаСервере
+Функция ПолучитьКонтекстЯдраНаСервере()
+
+ // Получаем доступ к серверному контексту обработки с использованием
+ // полного имени метаданных браузера тестов. Иначе нет возможности получить
+ // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте.
+ // При передаче на сервер клиентский контекст теряется.
+ КонтекстЯдра = Неопределено;
+ МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов);
+ Если НЕ МетаданныеЯдра = Неопределено
+ И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки");
+ Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()");
+ Иначе
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки");
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС);
+ МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1);
+ ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2);
+ Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")");
+ КонецЕсли;
+
+ Возврат КонтекстЯдра;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
+
+#КонецОбласти
+
+#Область Тесты
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдра) Экспорт
+
+ СисИнфо = Новый СистемнаяИнформация;
+ Если СисИнфо.ВерсияПриложения < "8.3.0.0" Тогда
+ Возврат;
+ КонецЕсли;
+
+ НаборТестов.НачатьГруппу("Проверка интерфейса автоматического тестирования", Истина);
+
+ НаборТестов.Добавить("Тест_ПодключениеКлиента", , "Подключение клиента тестирования");
+
+ НаборТестов.Добавить("Тест_ОткрытиеИПроведение", , "Открытие и проведение документа");
+ НаборТестов.Добавить("Тест_ПроверкаДвижений", , "Проверка движений");
+
+ НаборТестов.Добавить("Тест_УстаовкаОтбораВСпискеПоРегистратору", , "Установка отбора в списке по регистратору");
+
+ НаборТестов.ДобавитьДеструктор("Тест_ОтключениеКлиента", "Оключение клиента тестирования и удаление тестовых данных");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПодключениеКлиента() Экспорт
+
+ ТестКлиент.ПодключениеКлиентаТестирования("Администратор", "");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОткрытиеИПроведение() Экспорт
+
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, "Тестовые данные").Не_().ЭтоНеопределено();
+
+ ТестКлиент
+ .ОткрытиеФормыСписка(ТестовыеДанные.ПолноеИмя, ТестовыеДанные.Имя)
+ .УстановкаОтбораВСписке(Новый Структура("Номер,Дата", ТестовыеДанные.Номер, Строка(ТестовыеДанные.Дата)))
+ .ОткрытиеВСписке(ТестовыеДанные.Представление)
+ .Проведение()
+ ;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПроверкаДвижений() Экспорт
+
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, "Тестовые данные").Не_().ЭтоНеопределено();
+
+
+ ТестКлиент
+ .ОткрытиеФормыСписка("РегистрСведений.РСПодчиненныйРегистратору", "РСПодчиненный регистратору")
+ .УстановкаОтбораВСписке(Новый Структура("Ключ,Значение,ПредставлениеТипаДанных,ЗаголовокОкнаВыбораДанных", "Регистратор", СтрШаблон("Номер=%1;Дата=%2", ТестовыеДанные.Номер, ТестовыеДанные.Дата), "Документ2", "Документ2"))
+ .КоличествоСтрокВСписке("Движения документа " + ТестовыеДанные.Представление);
+ ;
+
+ Ожидаем.ЧтоПроверяемоеЗначение(ТестКлиент).Равно(ТестовыеДанные.КоличествоСтрок);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_УстаовкаОтбораВСпискеПоРегистратору() Экспорт
+
+ // перезаполняем время так как оно изменено при оперативном проведении во время предыдущих тестов
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, "Тестовые данные").Не_().ЭтоНеопределено();
+
+ ТестКлиент
+ .ОткрытиеФормыСписка("РегистрСведений.РСПодчиненныйРегистратору", "РСПодчиненный регистратору")
+ .УстановкаОтбораВСпискеПоРегистратору(ТестовыеДанные.ЗаголовокСписка, ТестовыеДанные.ПредставлениеТипа, СтрШаблон("Номер=%1;Дата=%2", ТестовыеДанные.Номер, ТестовыеДанные.Дата))
+ .КоличествоСтрокВСписке("Движения документа " + ТестовыеДанные.Представление);
+ ;
+
+ Ожидаем.ЧтоПроверяемоеЗначение(ТестКлиент).Равно(ТестовыеДанные.КоличествоСтрок);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОтключениеКлиента() Экспорт
+
+ //УдалитьТестовыйДокумент();
+
+ ТестКлиент.ОтключениеКлиентаТестирования();
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ГенерацияТестовыхДанных
+
+&НаСервере
+Функция СоздатьТестовыйДокументНаСервере(СтарыйТестовыйДокумент)
+
+ Если СтарыйТестовыйДокумент = Неопределено Тогда
+
+ ТестовыйДокумент= Документы.Документ2.СоздатьДокумент();
+
+ ТестовыйДокумент.Дата= ТекущаяДата();
+ ТестовыйДокумент.УстановитьНовыйНомер();
+ ТестовыйДокумент.Состав.Добавить();
+ ТестовыйДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);
+
+ Иначе
+ ТестовыйДокумент= СтарыйТестовыйДокумент.Ссылка.ПолучитьОбъект();
+ КонецЕсли;
+
+
+ МетаданныеДокумента= ТестовыйДокумент.Метаданные();
+
+ ТестовыеДанные= Новый Структура;
+ ТестовыеДанные.Вставить("Ссылка", ТестовыйДокумент.Ссылка);
+ ТестовыеДанные.Вставить("Номер", ТестовыйДокумент.Номер);
+ ТестовыеДанные.Вставить("Дата", ТестовыйДокумент.Дата);
+ ТестовыеДанные.Вставить("Имя", МетаданныеДокумента.Имя);
+ ТестовыеДанные.Вставить("ПолноеИмя", МетаданныеДокумента.ПолноеИмя());
+ ТестовыеДанные.Вставить("Представление", Строка(ТестовыйДокумент));
+ ТестовыеДанные.Вставить("КоличествоСтрок", ТестовыйДокумент.Состав.Количество());
+ //TODO: корректные описания из метаданных
+ ТестовыеДанные.Вставить("ПредставлениеТипа", МетаданныеДокумента.Имя);
+ ТестовыеДанные.Вставить("ЗаголовокСписка", МетаданныеДокумента.Имя);
+
+ Возврат ТестовыеДанные;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестовыйДокумент()
+ // Тестовый документ создаём только один раз. В следующий раз только перезаполняем его данные.
+ ТестовыйДокумент= КонтекстЯдра.ПолучитьКонтекст();
+ КонтекстЯдра.СохранитьКонтекст(СоздатьТестовыйДокументНаСервере(ТестовыйДокумент));
+ Возврат КонтекстЯдра.ПолучитьКонтекст();
+КонецФункции
+
+&НаКлиенте
+Процедура УдалитьТестовыйДокумент()
+ УдалитьТестовыйДокументНаСервере(КонтекстЯдра.ПолучитьКонтекст());
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьТестовыйДокументНаСервере(ТестовыеДанные)
+ Если ТестовыеДанные <> Неопределено Тогда
+ ТестовыеДанные.Ссылка.ПолучитьОбъект().Удалить();
+ КонецЕсли;
+КонецПроцедуры
+
+#КонецОбласти
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/maps.txt"
new file mode 100644
index 00000000..eef1be6a
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->8401ee62-68b8-43ea-8738-0c08cbc8c901.0 (50, 352)
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/renames.txt"
new file mode 100644
index 00000000..d4696f7e
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/renames.txt"
@@ -0,0 +1,9 @@
+4e93fd08-5eda-44dd-92ef-b84867283b1e-->und\4e93fd08-5eda-44dd-92ef-b84867283b1e
+8401ee62-68b8-43ea-8738-0c08cbc8c901-->und\8401ee62-68b8-43ea-8738-0c08cbc8c901
+8401ee62-68b8-43ea-8738-0c08cbc8c901.0-->und\8401ee62-68b8-43ea-8738-0c08cbc8c901.0
+copyinfo-->und\copyinfo
+root-->und\root
+UnpackV8.exe-->und\UnpackV8.exe
+version-->und\version
+versions-->und\versions
+zlib1.dll-->und\zlib1.dll
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/4e93fd08-5eda-44dd-92ef-b84867283b1e" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/4e93fd08-5eda-44dd-92ef-b84867283b1e"
new file mode 100644
index 00000000..76117055
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/4e93fd08-5eda-44dd-92ef-b84867283b1e"
@@ -0,0 +1,17 @@
+{1,
+{4e93fd08-5eda-44dd-92ef-b84867283b1e},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,d4e55e33-fb7f-484e-bcf7-2a6d67753130,1112057b-82cb-47fc-b1bf-ac4d51be8b0b,
+{0,
+{1,
+{0,0,84c18118-7744-4171-b86f-e605494b2083},"Тесты_ТестКлиент",
+{1,"ru","Тест ТестКлиент"},"Тест для плагина ТестКлиент",0,0}
+},8401ee62-68b8-43ea-8738-0c08cbc8c901,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,0},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,8401ee62-68b8-43ea-8738-0c08cbc8c901},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0}
+}
+}
+}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/8401ee62-68b8-43ea-8738-0c08cbc8c901" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/8401ee62-68b8-43ea-8738-0c08cbc8c901"
new file mode 100644
index 00000000..20d6a58d
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/8401ee62-68b8-43ea-8738-0c08cbc8c901"
@@ -0,0 +1,15 @@
+{1,
+{1,
+{0,
+{12,
+{1,
+{0,0,8401ee62-68b8-43ea-8738-0c08cbc8c901},"Форма",
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/8401ee62-68b8-43ea-8738-0c08cbc8c901.0" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/8401ee62-68b8-43ea-8738-0c08cbc8c901.0"
new file mode 100644
index 00000000..f12ca360
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/8401ee62-68b8-43ea-8738-0c08cbc8c901.0"
@@ -0,0 +1,464 @@
+{3,
+{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{1,0},0,0,1,1,1,0,1,0,
+{0,1,0},
+{0},1,
+{21,
+{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},9,"ФормаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{21,
+{0},0,0,0,7,"Navigator",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0},"
+#Область Инициализация
+
+&НаКлиенте
+Перем КонтекстЯдра;
+
+&НаКлиенте
+Перем Ожидаем;
+
+&НаКлиенте
+Перем ТестКлиент;
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+ ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов;
+ Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD"");
+ ТестКлиент = КонтекстЯдра.Плагин(""ТестКлиент"");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПередЗапускомТеста() Экспорт
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста() Экспорт
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ВспомогательныеМетоды
+
+&НаСервере
+// Добавляет значение с ключом в тестовые данные для УФ
+Процедура ДобавитьТестовыеДанные(Ключ, ТестовыеДанные)
+
+ СтрокаТестовыхДанных= ТестовыеДанныеУФ.НайтиСтроки(Новый Структура(""Ключ"", Ключ));
+
+ Если СтрокаТестовыхДанных.Количество() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СтрокаТестовыйДокумент= ТестовыеДанныеУФ.Добавить();
+
+ СтрокаТестовыйДокумент.Ключ= Ключ;
+
+ Значение= Новый СписокЗначений;
+ Значение.Добавить(ТестовыеДанные, Ключ);
+
+ СтрокаТестовыйДокумент.Значение= Значение;
+
+КонецПроцедуры
+
+&НаКлиентеНаСервереБезКонтекста
+// Возвращает первое значение из списка по ключу из тестовых данные для УФ
+Функция ПолучитьТестовыеДанные(ТестовыеДанныеУФ, Ключ)
+
+ СписокТестовыхДанных= ПолучитьСписокТестовыхДанных(ТестовыеДанныеУФ, Ключ);
+
+ Если СписокТестовыхДанных = Неопределено Тогда
+ ТестовыеДанные= Неопределено;
+ Иначе
+ ТестовыеДанные= СписокТестовыхДанных[0].Значение;
+ КонецЕсли;
+
+ Возврат ТестовыеДанные;
+
+КонецФункции
+
+&НаКлиентеНаСервереБезКонтекста
+// Возвращает список значение по ключу из тестовых данные для УФ
+Функция ПолучитьСписокТестовыхДанных(ТестовыеДанныеУФ, Ключ)
+
+ СтрокиТестовыхДанных= ТестовыеДанныеУФ.НайтиСтроки(Новый Структура(""Ключ"", Ключ));
+
+ Если Не СтрокиТестовыхДанных.Количество() Тогда
+ СписокТестовыхДанных= Неопределено;
+ Иначе
+ СписокТестовыхДанных= СтрокиТестовыхДанных[0].Значение;
+ КонецЕсли;
+
+ Возврат СписокТестовыхДанных;
+
+КонецФункции
+
+// { Подсистема конфигурации xUnitFor1C
+
+&НаСервере
+Функция ПолучитьКонтекстЯдраНаСервере()
+
+ // Получаем доступ к серверному контексту обработки с использованием
+ // полного имени метаданных браузера тестов. Иначе нет возможности получить
+ // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте.
+ // При передаче на сервер клиентский контекст теряется.
+ КонтекстЯдра = Неопределено;
+ МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов);
+ Если НЕ МетаданныеЯдра = Неопределено
+ И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, ""Обработка"", ""Обработки"");
+ Выполнить(""КонтекстЯдра = "" + ИмяОбработкиКонекстаЯдра + "".Создать()"");
+ Иначе
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, ""ВнешняяОбработка"", ""ВнешниеОбработки"");
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ""."", Символы.ПС);
+ МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1);
+ ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2);
+ Выполнить(""КонтекстЯдра = "" + МенеджерОбъектов + "".Создать(""""""+ИмяОбъекта+"""""")"");
+ КонецЕсли;
+
+ Возврат КонтекстЯдра;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
+
+#КонецОбласти
+
+#Область Тесты
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдра) Экспорт
+
+ СисИнфо = Новый СистемнаяИнформация;
+ Если СисИнфо.ВерсияПриложения < ""8.3.0.0"" Тогда
+ Возврат;
+ КонецЕсли;
+
+ НаборТестов.НачатьГруппу(""Проверка интерфейса автоматического тестирования"", Истина);
+
+ НаборТестов.Добавить(""Тест_ПодключениеКлиента"", , ""Подключение клиента тестирования"");
+
+ НаборТестов.Добавить(""Тест_ОткрытиеИПроведение"", , ""Открытие и проведение документа"");
+ НаборТестов.Добавить(""Тест_ПроверкаДвижений"", , ""Проверка движений"");
+
+ НаборТестов.Добавить(""Тест_УстаовкаОтбораВСпискеПоРегистратору"", , ""Установка отбора в списке по регистратору"");
+
+ НаборТестов.ДобавитьДеструктор(""Тест_ОтключениеКлиента"", ""Оключение клиента тестирования и удаление тестовых данных"");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПодключениеКлиента() Экспорт
+
+ ТестКлиент.ПодключениеКлиентаТестирования(""Администратор"", """");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОткрытиеИПроведение() Экспорт
+
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, ""Тестовые данные"").Не_().ЭтоНеопределено();
+
+ ТестКлиент
+ .ОткрытиеФормыСписка(ТестовыеДанные.ПолноеИмя, ТестовыеДанные.Имя)
+ .УстановкаОтбораВСписке(Новый Структура(""Номер,Дата"", ТестовыеДанные.Номер, Строка(ТестовыеДанные.Дата)))
+ .ОткрытиеВСписке(ТестовыеДанные.Представление)
+ .Проведение()
+ ;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПроверкаДвижений() Экспорт
+
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, ""Тестовые данные"").Не_().ЭтоНеопределено();
+
+
+ ТестКлиент
+ .ОткрытиеФормыСписка(""РегистрСведений.РСПодчиненныйРегистратору"", ""РСПодчиненный регистратору"")
+ .УстановкаОтбораВСписке(Новый Структура(""Ключ,Значение,ПредставлениеТипаДанных,ЗаголовокОкнаВыбораДанных"", ""Регистратор"", СтрШаблон(""Номер=%1;Дата=%2"", ТестовыеДанные.Номер, ТестовыеДанные.Дата), ""Документ2"", ""Документ2""))
+ .КоличествоСтрокВСписке(""Движения документа "" + ТестовыеДанные.Представление);
+ ;
+
+ Ожидаем.ЧтоПроверяемоеЗначение(ТестКлиент).Равно(ТестовыеДанные.КоличествоСтрок);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_УстаовкаОтбораВСпискеПоРегистратору() Экспорт
+
+ // перезаполняем время так как оно изменено при оперативном проведении во время предыдущих тестов
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, ""Тестовые данные"").Не_().ЭтоНеопределено();
+
+ ТестКлиент
+ .ОткрытиеФормыСписка(""РегистрСведений.РСПодчиненныйРегистратору"", ""РСПодчиненный регистратору"")
+ .УстановкаОтбораВСпискеПоРегистратору(ТестовыеДанные.ЗаголовокСписка, ТестовыеДанные.ПредставлениеТипа, СтрШаблон(""Номер=%1;Дата=%2"", ТестовыеДанные.Номер, ТестовыеДанные.Дата))
+ .КоличествоСтрокВСписке(""Движения документа "" + ТестовыеДанные.Представление);
+ ;
+
+ Ожидаем.ЧтоПроверяемоеЗначение(ТестКлиент).Равно(ТестовыеДанные.КоличествоСтрок);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОтключениеКлиента() Экспорт
+
+ //УдалитьТестовыйДокумент();
+
+ ТестКлиент.ОтключениеКлиентаТестирования();
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ГенерацияТестовыхДанных
+
+&НаСервере
+Функция СоздатьТестовыйДокументНаСервере(СтарыйТестовыйДокумент)
+
+ Если СтарыйТестовыйДокумент = Неопределено Тогда
+
+ ТестовыйДокумент= Документы.Документ2.СоздатьДокумент();
+
+ ТестовыйДокумент.Дата= ТекущаяДата();
+ ТестовыйДокумент.УстановитьНовыйНомер();
+ ТестовыйДокумент.Состав.Добавить();
+ ТестовыйДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);
+
+ Иначе
+ ТестовыйДокумент= СтарыйТестовыйДокумент.Ссылка.ПолучитьОбъект();
+ КонецЕсли;
+
+
+ МетаданныеДокумента= ТестовыйДокумент.Метаданные();
+
+ ТестовыеДанные= Новый Структура;
+ ТестовыеДанные.Вставить(""Ссылка"", ТестовыйДокумент.Ссылка);
+ ТестовыеДанные.Вставить(""Номер"", ТестовыйДокумент.Номер);
+ ТестовыеДанные.Вставить(""Дата"", ТестовыйДокумент.Дата);
+ ТестовыеДанные.Вставить(""Имя"", МетаданныеДокумента.Имя);
+ ТестовыеДанные.Вставить(""ПолноеИмя"", МетаданныеДокумента.ПолноеИмя());
+ ТестовыеДанные.Вставить(""Представление"", Строка(ТестовыйДокумент));
+ ТестовыеДанные.Вставить(""КоличествоСтрок"", ТестовыйДокумент.Состав.Количество());
+ //TODO: корректные описания из метаданных
+ ТестовыеДанные.Вставить(""ПредставлениеТипа"", МетаданныеДокумента.Имя);
+ ТестовыеДанные.Вставить(""ЗаголовокСписка"", МетаданныеДокумента.Имя);
+
+ Возврат ТестовыеДанные;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестовыйДокумент()
+ // Тестовый документ создаём только один раз. В следующий раз только перезаполняем его данные.
+ ТестовыйДокумент= КонтекстЯдра.ПолучитьКонтекст();
+ КонтекстЯдра.СохранитьКонтекст(СоздатьТестовыйДокументНаСервере(ТестовыйДокумент));
+ Возврат КонтекстЯдра.ПолучитьКонтекст();
+КонецФункции
+
+&НаКлиенте
+Процедура УдалитьТестовыйДокумент()
+ УдалитьТестовыйДокументНаСервере(КонтекстЯдра.ПолучитьКонтекст());
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьТестовыйДокументНаСервере(ТестовыеДанные)
+ Если ТестовыеДанные <> Неопределено Тогда
+ ТестовыеДанные.Ссылка.ПолучитьОбъект().Удалить();
+ КонецЕсли;
+КонецПроцедуры
+
+#КонецОбласти
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+",
+{4,3,
+{9,
+{1},0,"Объект",
+{1,0},
+{"Pattern",
+{"#",d4e55e33-fb7f-484e-bcf7-2a6d67753130}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},1,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{4},0,"ТестовыеДанныеУФ",
+{1,1,
+{"ru","Тестовые данные УФ"}
+},
+{"Pattern",
+{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,2,
+{5,1,0,"Ключ",
+{1,1,
+{"ru","Ключ"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{5,2,0,"Значение",
+{1,1,
+{"ru","Значение"}
+},
+{"Pattern",
+{"#",4772b3b4-f4a3-49c0-a1a5-8cb5961511a3}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{0,0},
+{0,0}
+},
+{9,
+{5},0,"ПолноеИмяБраузераТестов",
+{1,1,
+{"ru","Полное имя браузера тестов"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},0,0,
+{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
+aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
+LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
+OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
+dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
+cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
+Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
+Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
+LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
+LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
+cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
+YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
+},
+{0,0},
+{0,0},
+{0,0},
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/UnpackV8.exe" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/UnpackV8.exe"
new file mode 100644
index 00000000..af7ade9a
Binary files /dev/null and "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/UnpackV8.exe" differ
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/copyinfo" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/copyinfo"
new file mode 100644
index 00000000..3f18445a
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/copyinfo"
@@ -0,0 +1,16 @@
+{4,
+{2,
+{8401ee62-68b8-43ea-8738-0c08cbc8c901,8401ee62-68b8-43ea-8738-0c08cbc8c901,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
+},
+{84c18118-7744-4171-b86f-e605494b2083,84c18118-7744-4171-b86f-e605494b2083,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"Тесты_ТестКлиент"}
+}
+},
+{1,
+{d4e55e33-fb7f-484e-bcf7-2a6d67753130,84c18118-7744-4171-b86f-e605494b2083,0}
+},
+{0},
+{0,0},
+{0}
+}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/root" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/root"
new file mode 100644
index 00000000..0c48dcf2
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/root"
@@ -0,0 +1 @@
+{2,4e93fd08-5eda-44dd-92ef-b84867283b1e,}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/version" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/version"
new file mode 100644
index 00000000..421eee79
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/version"
@@ -0,0 +1,5 @@
+{
+{216,0,
+{80308,0}
+}
+}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/versions" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/versions"
new file mode 100644
index 00000000..8cb18fa3
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/versions"
@@ -0,0 +1 @@
+{1,8,"",cbbe4fda-b013-42b4-a455-e3510e3fe8a9,"4e93fd08-5eda-44dd-92ef-b84867283b1e",4b7cecad-6c20-4400-9437-abd857ab5eab,"8401ee62-68b8-43ea-8738-0c08cbc8c901",a336a15f-ff9e-4789-9ed8-00fd738161eb,"8401ee62-68b8-43ea-8738-0c08cbc8c901.0",e3be5eca-d71f-4282-80d4-c6ca95ee3046,"copyinfo",2823823d-330d-45c5-bbad-dacff535557c,"root",aedae0c7-022b-4fc4-a1ba-183b14dc3380,"version",3c074fbc-73fb-4152-ae90-bc26abc54eae,"versions",f5df34f3-e870-4784-a8a4-ff8a1a039870}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/zlib1.dll" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/zlib1.dll"
new file mode 100644
index 00000000..1cf8a476
Binary files /dev/null and "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/und/zlib1.dll" differ
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..4c6046df
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,541 @@
+#Если Не ВебКлиент Тогда
+
+#Область ИНИЦИАЛИЗАЦИЯ
+
+&НаКлиенте
+Перем КонтекстЯдра;
+
+&НаКлиенте
+Перем Ожидаем;
+
+&НаКлиенте
+Перем ОжидаемФормы;
+
+&НаКлиенте
+Перем Утверждения;
+
+&НаКлиенте
+Перем ГенераторТестовыхДанных;
+
+&НаКлиенте
+Перем массивТестовыхПриложений;
+
+&НаКлиенте
+Перем ЮнитТестированиеИмя;
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+ ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов;
+ Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
+ Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
+ ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПередЗапускомТеста() Экспорт
+
+ //ИмяПеременнойПользователь = "Пользователь12";
+ //ПользовательИмя = "ТестИмя12";
+ //
+ //ОбновитьПовторноИспользуемыеЗначения();
+ //
+ //КонтекстЯдра.ВывестиСообщение("Перед запуском теста");
+ //
+ //массивТестовыхПриложений = Новый Массив;
+ //
+ //СоздатьТестовыеДанныеСервер(ЮнитТестированиеИмя);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста() Экспорт
+
+ //КонтекстЯдра.ВывестиСообщение("После запуска теста");
+ //УдалитьТестовыеДанныеСервер(ЮнитТестированиеИмя);
+ //ЗавершитьВсеСеансыРаботыСТестовымиПриложениями();
+
+КонецПроцедуры
+
+&НаСервере
+Процедура СоздатьТестовыеДанныеСервер(Знач ЮТестПуть)
+
+ ГенераторТестовыхДанных = ГенераторТестовыхДанных();
+
+ ИмяМакета = "СозданиеОдногоПользователяИБ";
+ //ИмяМакета = "СозданиеОдногоПользователяИБ_УФ";
+
+ ОсновнойОбъект = Объект();
+ МассивИменПользователей = МассивИменПользователейПоУмолчанию();
+ Для каждого ИмяПользователя Из МассивИменПользователей Цикл
+ УдалитьПользователяИБ_ЕслиОнСуществует(ИмяПользователя);
+ КонецЦикла;
+
+ КоллекцияПараметров = Новый Структура("ИмяПеременнойПользователь, ПользовательИмя", ИмяПеременнойПользователь, ПользовательИмя);
+ НовыйТабДок = ПолучитьМакетДанныхДоступа(ИмяМакета, КоллекцияПараметров);
+
+ МассивМакетов = Новый Массив;
+ МассивМакетов.Добавить(НовыйТабДок);
+
+ ТестовыеДанные = ГенераторТестовыхДанных.СоздатьДанныеПоТабличномуДокументу(МассивМакетов);
+
+ ТестовыеДанныеУФ.Очистить();
+
+ ТестовыеДанныеДляУФ = Новый ТаблицаЗначений;
+ Колонка = ТестовыеДанныеДляУФ.Колонки.Добавить("Ключ");
+ Колонка = ТестовыеДанныеДляУФ.Колонки.Добавить("Значение");
+
+ Для каждого ключЗначение Из ТестовыеДанные Цикл
+ СписокВрем = Новый СписокЗначений;
+ Строка = ТестовыеДанныеДляУФ.Добавить();
+ Если ТипЗнч(ключЗначение.Значение) = Тип("ПользовательИнформационнойБазы") Тогда
+ СписокВрем.Добавить(ключЗначение.Значение.Имя, ключЗначение.Ключ);
+ Строка.Ключ = "ПользовательИнформационнойБазы";
+ Иначе
+ Строка.Ключ = ключЗначение.Ключ;
+ СписокВрем.Добавить(ключЗначение.Значение);
+ КонецЕсли;
+ Строка.Значение = СписокВрем;
+ КонецЦикла;
+
+ ЗначениеВДанныеФормы(ТестовыеДанныеДляУФ, ТестовыеДанныеУФ);
+
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьТестовыеДанныеСервер(Знач ЮТестПуть)
+
+ Если ТестовыеДанныеУФ.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ ГенераторТестовыхДанных = ГенераторТестовыхДанных();
+
+ //лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ПользовательИмя);
+ //ЮТест.ПроверитьНеравенство(лПользователь, Неопределено, "лПользователь должен существовать");
+
+ ТестовыеДанные = Новый Структура;
+ Для каждого Строка Из ТестовыеДанныеУФ Цикл
+ Если Строка.Ключ = "ПользовательИнформационнойБазы" Тогда
+ ЭлементСпискаЗначений = Строка.Значение[0];
+ лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(ЭлементСпискаЗначений.Значение));
+ ТестовыеДанные.Вставить(ЭлементСпискаЗначений.Представление, лПользователь);
+ Иначе
+ ТестовыеДанные.Вставить(Строка.Ключ, Строка.Значение[0].Значение);
+ КонецЕсли;
+ КонецЦикла;
+
+ ГенераторТестовыхДанных.УдалитьСозданныеДанные(ТестовыеДанные);
+
+ //лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ПользовательИмя);
+ //ЮТест.ПроверитьРавенство(лПользователь, Неопределено, "лПользователь должен быть удален");
+
+ ТестовыеДанныеУФ.Очистить();
+
+КонецПроцедуры
+
+&НаСервере
+Функция ГенераторТестовыхДанных()
+
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ СериализаторMXL = КонтекстЯдра.СоздатьОбъектПлагина("СериализаторMXL");
+
+ Возврат СериализаторMXL;
+
+КонецФункции
+
+Функция МассивИменПользователейПоУмолчанию()
+ Рез = Новый Массив();
+ Рез.Добавить(ПользовательИмя); //"ТестИмя");
+ //Рез.Добавить("ТестИмя2");// должно совпадать с макетом;
+ Возврат Рез;
+КонецФункции
+
+&НаСервере
+Функция Объект()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+Функция ПолучитьМакетДанныхДоступа(ИмяМакета, КоллекцияПараметров) Экспорт
+
+ Макет = Объект().ПолучитьМакет(ИмяМакета);
+ ЗаполнитьЗначенияСвойств(Макет.Параметры, КоллекцияПараметров);
+ //Если Не КоллекцияПараметров.Свойство("ИмяПользователя") Тогда
+ // Макет.Параметры.ИмяПользователя = ИмяНовогоПользователя;
+ //КонецЕсли;
+
+ НовыйТабДок = Новый ТабличныйДокумент;
+ НовыйТабДок.Вывести(Макет);
+
+ Возврат НовыйТабДок;
+КонецФункции
+
+Процедура УдалитьПользователяИБ_ЕслиОнСуществует(лИмяПользователя) Экспорт
+
+ лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(лИмяПользователя);
+ Если лПользователь <> Неопределено Тогда
+ лПользователь.Удалить();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ЗапуститьТестовоеПриложение(ИмяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах)
+ Перем тестовоеПриложение;
+ строкаЗапуска = ПолучитьСтрокуЗапуска(ИмяПользователя, Пароль, Порт);
+ //Предупреждение("строкаЗапуска "+Символы.ПС+строкаЗапуска, 3);
+ //Предупреждение("Порт "+Порт);
+ ЗапуститьПриложение(строкаЗапуска);
+ тестовоеПриложение = Неопределено;
+ Выполнить("тестовоеПриложение = Новый ТестируемоеПриложение(, XMLСтрока(Порт));");
+
+ Подключен = Ложь;
+ ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутОжиданияПриложенияВСекундах; //60;
+ ОписаниеОшибкиСоединения = "";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ тестовоеПриложение.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+
+ сообщениеОшибки = "Не смогли установить соединение с тестовым приложением для пользователя "+ИмяПользователя+" !" + Символы.ПС + ОписаниеОшибкиСоединения;
+ //юТест.ПроверитьИстину(Подключен, сообщениеОшибки);
+ Если Не Подключен Тогда
+ тестовоеПриложение = Неопределено;
+ ВызватьИсключение сообщениеОшибки;
+ КонецЕсли;
+
+ массивТестовыхПриложений.Добавить(тестовоеПриложение);
+
+ Возврат тестовоеПриложение;
+КонецФункции
+
+&НаКлиенте
+Процедура ЗавершитьВсеСеансыРаботыСТестовымиПриложениями()
+ Если массивТестовыхПриложений.Количество() <> 0 Тогда
+ Для Каждого Подопытный Из массивТестовыхПриложений Цикл
+ Подопытный.РазорватьСоединение();
+ КонецЦикла;
+
+ ЗавершитьВсеТестовыеПриложенияПринудительно();
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗавершитьВсеТестовыеПриложенияПринудительно()
+ Утверждения.ПроверитьЗаполненность(массивТестовыхПриложений.Количество(), "массивТестовыхПриложений.Количество()");
+
+ Scr = Новый COMОбъект("MSScriptControl.ScriptControl");
+ Scr.Language = "vbscript";
+ Scr.AddCode("
+ |Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next
+ |");
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПолучитьСтрокуЗапуска(ИмяПользователя = "", Пароль = "", Порт = "")
+ //Если Не ЗначениеЗаполнено(ИмяПользователя) Тогда
+ // ИмяПользователя = "Администратор";
+ //КонецЕсли;
+
+ Результат = КаталогПрограммы() + "1cv8c.exe ENTERPRISE " +
+ "/IBConnectionString""" + СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """""") + """" +
+ "/N""" + ИмяПользователя + """" + "/P""" + Пароль + """" +
+ " /TESTCLIENT -TPort" + XMLСтрока(Порт);
+
+ Возврат Результат;
+КонецФункции
+
+#КонецОбласти
+
+#Область ТестовыеДанныеУФ
+
+// Добавляет значение с ключом в тестовые данные для УФ
+&НаСервере
+Процедура ДобавитьТестовыеДанные(Ключ, ТестовыеДанные)
+
+ СтрокаТестовыхДанных= ТестовыеДанныеУФ.НайтиСтроки(Новый Структура("Ключ", Ключ));
+
+ Если СтрокаТестовыхДанных.Количество() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СтрокаТестовыйДокумент= ТестовыеДанныеУФ.Добавить();
+
+ СтрокаТестовыйДокумент.Ключ= Ключ;
+
+ Значение= Новый СписокЗначений;
+ Значение.Добавить(ТестовыеДанные, Ключ);
+
+ СтрокаТестовыйДокумент.Значение= Значение;
+
+КонецПроцедуры
+
+// Возвращает первое значение из списка по ключу из тестовых данные для УФ
+&НаКлиентеНаСервереБезКонтекста
+Функция ПолучитьТестовыеДанные(ТестовыеДанныеУФ, Ключ)
+
+ СписокТестовыхДанных= ПолучитьСписокТестовыхДанных(ТестовыеДанныеУФ, Ключ);
+
+ Если СписокТестовыхДанных = Неопределено Тогда
+ ТестовыеДанные= Неопределено;
+ Иначе
+ ТестовыеДанные= СписокТестовыхДанных[0].Значение;
+ КонецЕсли;
+
+ Возврат ТестовыеДанные;
+
+КонецФункции
+
+// Возвращает список значение по ключу из тестовых данные для УФ
+&НаКлиентеНаСервереБезКонтекста
+Функция ПолучитьСписокТестовыхДанных(ТестовыеДанныеУФ, Ключ)
+
+ СтрокиТестовыхДанных= ТестовыеДанныеУФ.НайтиСтроки(Новый Структура("Ключ", Ключ));
+
+ Если Не СтрокиТестовыхДанных.Количество() Тогда
+ СписокТестовыхДанных= Неопределено;
+ Иначе
+ СписокТестовыхДанных= СтрокиТестовыхДанных[0].Значение;
+ КонецЕсли;
+
+ Возврат СписокТестовыхДанных;
+
+КонецФункции
+
+// { Подсистема конфигурации xUnitFor1C
+
+&НаСервере
+Функция ПолучитьКонтекстЯдраНаСервере()
+
+ // Получаем доступ к серверному контексту обработки с использованием
+ // полного имени метаданных браузера тестов. Иначе нет возможности получить
+ // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте.
+ // При передаче на сервер клиентский контекст теряется.
+ КонтекстЯдра = Неопределено;
+ МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов);
+ Если НЕ МетаданныеЯдра = Неопределено
+ И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки");
+ Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()");
+ Иначе
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки");
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС);
+ МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1);
+ ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2);
+ Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")");
+ КонецЕсли;
+
+ Возврат КонтекстЯдра;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
+
+#КонецОбласти
+
+#Область ТЕСТЫ
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+
+ СисИнфо = Новый СистемнаяИнформация;
+ Если СисИнфо.ВерсияПриложения < "8.3.0.0" Тогда
+ Возврат;
+ КонецЕсли;
+
+ НаборТестов.НачатьГруппу("Проверка интерфейса автоматического тестирования", Истина);
+
+ НаборТестов.Добавить("Тест_ПодключениеКлиента", , "Подключение клиента тестирования");
+
+ //НаборТестов.Добавить("Тест_ОткрытиеФормыСписка", , "Открытие формы списка");
+ //НаборТестов.Добавить("Тест_ПоискВСписке", , "Поиск в списке");
+ //НаборТестов.Добавить("Тест_ОткрытиеВСпискеТекущего", , "Открытие в списке текущей строки");
+ //НаборТестов.Добавить("Тест_Проведение", , "Проведение открытого документа");
+
+ НаборТестов.Добавить("Тест_ОткрытиеИПроведение", , "Открытие и проведение документа");
+ НаборТестов.Добавить("Тест_ПроверкаДвижений", , "Проверка движений");
+
+ НаборТестов.ДобавитьДеструктор("Тест_ОтключениеКлиента", "Отключение клиента тестирования");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПодключениеКлиента() Экспорт
+
+ СоздатьТестовыйДокумент();
+
+ Ожидаем.ПодключениеКлиентаТестирования("Администратор", "");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОткрытиеФормыСписка() Экспорт
+
+ Ожидаем.ОткрытиеФормыСписка("Документ.Документ1", "Документ1");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПоискВСписке() Экспорт
+
+ Ожидаем.ПоискВСписке(Новый Структура("Номер,Дата", "000000002", "26.11.2017 23:13:37"));
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОткрытиеВСпискеТекущего() Экспорт
+
+ Ожидаем.ОткрытиеВСписке("Документ1 000000002 от 26.11.2017 23:13:37");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_Проведение() Экспорт
+
+ Ожидаем.Проведение();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОткрытиеИПроведение() Экспорт
+
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, "Тестовые данные").Не_().ЭтоНеопределено();
+
+ Ожидаем
+ .ОткрытиеФормыСписка(ТестовыеДанные.ПолноеИмя, ТестовыеДанные.Имя)
+ .ПоискВСписке(Новый Структура("Номер,Дата", ТестовыеДанные.Номер, Строка(ТестовыеДанные.Дата)))
+ .ОткрытиеВСписке(ТестовыеДанные.Представление)
+ .Проведение()
+ ;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПроверкаДвижений() Экспорт
+
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, "Тестовые данные").Не_().ЭтоНеопределено();
+
+ Ожидаем
+ .ОткрытиеФормыСписка("РегистрСведений.РСПодчиненныйРегистратору", "РСПодчиненный регистратору")
+ .УстановкаОтбораВСписке(Новый Структура("Регистратор", ТестовыеДанные.Представление))
+ .КоличествоСтрокВСписке("Движения документа " + ТестовыеДанные.Представление).Равно(ТестовыеДанные.КоличествоСтрок);
+ ;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОтключениеКлиента() Экспорт
+
+ Ожидаем.ОтключениеКлиентаТестирования();
+
+ УдалитьТестовыйДокумент();
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ТЕСТОВЫЕ_ДАННЫЕ
+
+&НаКлиенте
+Процедура СоздатьТестовыйДокумент()
+ КонтекстЯдра.СохранитьКонтекст(СоздатьТестовыйДокументНаСервере());
+КонецПроцедуры
+
+&НаСервере
+Функция СоздатьТестовыйДокументНаСервере()
+
+ ТестовыйДокумент= Документы.Документ2.СоздатьДокумент();
+ ТестовыйДокумент.Дата= ТекущаяДата();
+ ТестовыйДокумент.УстановитьНовыйНомер();
+
+ ТестовыйДокумент.Состав.Добавить();
+
+ ТестовыйДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);
+
+ МетаданныеДокумента= ТестовыйДокумент.Метаданные();
+
+ ТестовыеДанные= Новый Структура;
+ ТестовыеДанные.Вставить("Ссылка", ТестовыйДокумент.Ссылка);
+ ТестовыеДанные.Вставить("Номер", ТестовыйДокумент.Номер);
+ ТестовыеДанные.Вставить("Дата", ТестовыйДокумент.Дата);
+ ТестовыеДанные.Вставить("Имя", МетаданныеДокумента.Имя);
+ ТестовыеДанные.Вставить("ПолноеИмя", МетаданныеДокумента.ПолноеИмя());
+ ТестовыеДанные.Вставить("Представление", Строка(ТестовыйДокумент));
+ ТестовыеДанные.Вставить("КоличествоСтрок", ТестовыйДокумент.Состав.Количество());
+
+ Возврат ТестовыеДанные;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестовыйДокумент()
+ Возврат КонтекстЯдра.ПолучитьКонтекст();
+КонецФункции
+
+&НаКлиенте
+Процедура УдалитьТестовыйДокумент()
+ УдалитьТестовыйДокументНаСервере(КонтекстЯдра.ПолучитьКонтекст());
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьТестовыйДокументНаСервере(ТестовыеДанные)
+ ТестовыеДанные.Ссылка.ПолучитьОбъект().Удалить();
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецЕсли
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/maps.txt"
new file mode 100644
index 00000000..56b6b7fe
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/maps.txt"
@@ -0,0 +1,3 @@
+Form\Форма\Форма.bsl-->8401ee62-68b8-43ea-8738-0c08cbc8c901.0 (50, 591)
+Макеты\Макет.txt-->1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0
+Макеты\СозданиеОдногоПользователяИБ.mxl-->ff63ef17-ca70-4e24-a81d-c333c276c114.0
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/renames.txt"
new file mode 100644
index 00000000..4b0ef33a
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/renames.txt"
@@ -0,0 +1,13 @@
+1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4-->und\1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4
+1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0-->und\1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0
+4e93fd08-5eda-44dd-92ef-b84867283b1e-->und\4e93fd08-5eda-44dd-92ef-b84867283b1e
+8401ee62-68b8-43ea-8738-0c08cbc8c901-->und\8401ee62-68b8-43ea-8738-0c08cbc8c901
+8401ee62-68b8-43ea-8738-0c08cbc8c901.0-->und\8401ee62-68b8-43ea-8738-0c08cbc8c901.0
+copyinfo-->und\copyinfo
+ff63ef17-ca70-4e24-a81d-c333c276c114-->und\ff63ef17-ca70-4e24-a81d-c333c276c114
+ff63ef17-ca70-4e24-a81d-c333c276c114.0-->und\ff63ef17-ca70-4e24-a81d-c333c276c114.0
+root-->und\root
+UnpackV8.exe-->und\UnpackV8.exe
+version-->und\version
+versions-->und\versions
+zlib1.dll-->und\zlib1.dll
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4"
new file mode 100644
index 00000000..7eda6574
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4"
@@ -0,0 +1,6 @@
+{1,
+{2,4,
+{0,
+{0,0,1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4},"Макет",
+{1,"ru","Макет"},""}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0"
new file mode 100644
index 00000000..12c2bc47
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0"
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/4e93fd08-5eda-44dd-92ef-b84867283b1e" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/4e93fd08-5eda-44dd-92ef-b84867283b1e"
new file mode 100644
index 00000000..7c6dd03b
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/4e93fd08-5eda-44dd-92ef-b84867283b1e"
@@ -0,0 +1,17 @@
+{1,
+{4e93fd08-5eda-44dd-92ef-b84867283b1e},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,d4e55e33-fb7f-484e-bcf7-2a6d67753130,1112057b-82cb-47fc-b1bf-ac4d51be8b0b,
+{0,
+{1,
+{0,0,84c18118-7744-4171-b86f-e605494b2083},"Тест_УтвержденияBDDForms",
+{1,"ru","Тест УтвержденияBDDForms"},"Тест для плагина УтвержденияBDDForms",0,0}
+},8401ee62-68b8-43ea-8738-0c08cbc8c901,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,2,1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4,ff63ef17-ca70-4e24-a81d-c333c276c114},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,8401ee62-68b8-43ea-8738-0c08cbc8c901},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0}
+}
+}
+}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/8401ee62-68b8-43ea-8738-0c08cbc8c901" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/8401ee62-68b8-43ea-8738-0c08cbc8c901"
new file mode 100644
index 00000000..20d6a58d
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/8401ee62-68b8-43ea-8738-0c08cbc8c901"
@@ -0,0 +1,15 @@
+{1,
+{1,
+{0,
+{12,
+{1,
+{0,0,8401ee62-68b8-43ea-8738-0c08cbc8c901},"Форма",
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/8401ee62-68b8-43ea-8738-0c08cbc8c901.0" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/8401ee62-68b8-43ea-8738-0c08cbc8c901.0"
new file mode 100644
index 00000000..62d1763d
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/8401ee62-68b8-43ea-8738-0c08cbc8c901.0"
@@ -0,0 +1,745 @@
+{3,
+{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{1,0},0,0,1,1,1,0,1,0,
+{0,1,0},
+{0},1,
+{21,
+{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},9,"ФормаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{21,
+{0},0,0,0,7,"Navigator",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0},"#Если Не ВебКлиент Тогда
+
+#Область ИНИЦИАЛИЗАЦИЯ
+
+&НаКлиенте
+Перем КонтекстЯдра;
+
+&НаКлиенте
+Перем Ожидаем;
+
+&НаКлиенте
+Перем ОжидаемФормы;
+
+&НаКлиенте
+Перем Утверждения;
+
+&НаКлиенте
+Перем ГенераторТестовыхДанных;
+
+&НаКлиенте
+Перем массивТестовыхПриложений;
+
+&НаКлиенте
+Перем ЮнитТестированиеИмя;
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+ ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов;
+ Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD"");
+ Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения"");
+ ГенераторТестовыхДанных = КонтекстЯдра.Плагин(""СериализаторMXL"");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПередЗапускомТеста() Экспорт
+
+ //ИмяПеременнойПользователь = ""Пользователь12"";
+ //ПользовательИмя = ""ТестИмя12"";
+ //
+ //ОбновитьПовторноИспользуемыеЗначения();
+ //
+ //КонтекстЯдра.ВывестиСообщение(""Перед запуском теста"");
+ //
+ //массивТестовыхПриложений = Новый Массив;
+ //
+ //СоздатьТестовыеДанныеСервер(ЮнитТестированиеИмя);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста() Экспорт
+
+ //КонтекстЯдра.ВывестиСообщение(""После запуска теста"");
+ //УдалитьТестовыеДанныеСервер(ЮнитТестированиеИмя);
+ //ЗавершитьВсеСеансыРаботыСТестовымиПриложениями();
+
+КонецПроцедуры
+
+&НаСервере
+Процедура СоздатьТестовыеДанныеСервер(Знач ЮТестПуть)
+
+ ГенераторТестовыхДанных = ГенераторТестовыхДанных();
+
+ ИмяМакета = ""СозданиеОдногоПользователяИБ"";
+ //ИмяМакета = ""СозданиеОдногоПользователяИБ_УФ"";
+
+ ОсновнойОбъект = Объект();
+ МассивИменПользователей = МассивИменПользователейПоУмолчанию();
+ Для каждого ИмяПользователя Из МассивИменПользователей Цикл
+ УдалитьПользователяИБ_ЕслиОнСуществует(ИмяПользователя);
+ КонецЦикла;
+
+ КоллекцияПараметров = Новый Структура(""ИмяПеременнойПользователь, ПользовательИмя"", ИмяПеременнойПользователь, ПользовательИмя);
+ НовыйТабДок = ПолучитьМакетДанныхДоступа(ИмяМакета, КоллекцияПараметров);
+
+ МассивМакетов = Новый Массив;
+ МассивМакетов.Добавить(НовыйТабДок);
+
+ ТестовыеДанные = ГенераторТестовыхДанных.СоздатьДанныеПоТабличномуДокументу(МассивМакетов);
+
+ ТестовыеДанныеУФ.Очистить();
+
+ ТестовыеДанныеДляУФ = Новый ТаблицаЗначений;
+ Колонка = ТестовыеДанныеДляУФ.Колонки.Добавить(""Ключ"");
+ Колонка = ТестовыеДанныеДляУФ.Колонки.Добавить(""Значение"");
+
+ Для каждого ключЗначение Из ТестовыеДанные Цикл
+ СписокВрем = Новый СписокЗначений;
+ Строка = ТестовыеДанныеДляУФ.Добавить();
+ Если ТипЗнч(ключЗначение.Значение) = Тип(""ПользовательИнформационнойБазы"") Тогда
+ СписокВрем.Добавить(ключЗначение.Значение.Имя, ключЗначение.Ключ);
+ Строка.Ключ = ""ПользовательИнформационнойБазы"";
+ Иначе
+ Строка.Ключ = ключЗначение.Ключ;
+ СписокВрем.Добавить(ключЗначение.Значение);
+ КонецЕсли;
+ Строка.Значение = СписокВрем;
+ КонецЦикла;
+
+ ЗначениеВДанныеФормы(ТестовыеДанныеДляУФ, ТестовыеДанныеУФ);
+
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьТестовыеДанныеСервер(Знач ЮТестПуть)
+
+ Если ТестовыеДанныеУФ.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ ГенераторТестовыхДанных = ГенераторТестовыхДанных();
+
+ //лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ПользовательИмя);
+ //ЮТест.ПроверитьНеравенство(лПользователь, Неопределено, ""лПользователь должен существовать"");
+
+ ТестовыеДанные = Новый Структура;
+ Для каждого Строка Из ТестовыеДанныеУФ Цикл
+ Если Строка.Ключ = ""ПользовательИнформационнойБазы"" Тогда
+ ЭлементСпискаЗначений = Строка.Значение[0];
+ лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(ЭлементСпискаЗначений.Значение));
+ ТестовыеДанные.Вставить(ЭлементСпискаЗначений.Представление, лПользователь);
+ Иначе
+ ТестовыеДанные.Вставить(Строка.Ключ, Строка.Значение[0].Значение);
+ КонецЕсли;
+ КонецЦикла;
+
+ ГенераторТестовыхДанных.УдалитьСозданныеДанные(ТестовыеДанные);
+
+ //лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ПользовательИмя);
+ //ЮТест.ПроверитьРавенство(лПользователь, Неопределено, ""лПользователь должен быть удален"");
+
+ ТестовыеДанныеУФ.Очистить();
+
+КонецПроцедуры
+
+&НаСервере
+Функция ГенераторТестовыхДанных()
+
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ СериализаторMXL = КонтекстЯдра.СоздатьОбъектПлагина(""СериализаторMXL"");
+
+ Возврат СериализаторMXL;
+
+КонецФункции
+
+Функция МассивИменПользователейПоУмолчанию()
+ Рез = Новый Массив();
+ Рез.Добавить(ПользовательИмя); //""ТестИмя"");
+ //Рез.Добавить(""ТестИмя2"");// должно совпадать с макетом;
+ Возврат Рез;
+КонецФункции
+
+&НаСервере
+Функция Объект()
+ Возврат РеквизитФормыВЗначение(""Объект"");
+КонецФункции
+
+Функция ПолучитьМакетДанныхДоступа(ИмяМакета, КоллекцияПараметров) Экспорт
+
+ Макет = Объект().ПолучитьМакет(ИмяМакета);
+ ЗаполнитьЗначенияСвойств(Макет.Параметры, КоллекцияПараметров);
+ //Если Не КоллекцияПараметров.Свойство(""ИмяПользователя"") Тогда
+ // Макет.Параметры.ИмяПользователя = ИмяНовогоПользователя;
+ //КонецЕсли;
+
+ НовыйТабДок = Новый ТабличныйДокумент;
+ НовыйТабДок.Вывести(Макет);
+
+ Возврат НовыйТабДок;
+КонецФункции
+
+Процедура УдалитьПользователяИБ_ЕслиОнСуществует(лИмяПользователя) Экспорт
+
+ лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(лИмяПользователя);
+ Если лПользователь <> Неопределено Тогда
+ лПользователь.Удалить();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ЗапуститьТестовоеПриложение(ИмяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах)
+ Перем тестовоеПриложение;
+ строкаЗапуска = ПолучитьСтрокуЗапуска(ИмяПользователя, Пароль, Порт);
+ //Предупреждение(""строкаЗапуска ""+Символы.ПС+строкаЗапуска, 3);
+ //Предупреждение(""Порт ""+Порт);
+ ЗапуститьПриложение(строкаЗапуска);
+ тестовоеПриложение = Неопределено;
+ Выполнить(""тестовоеПриложение = Новый ТестируемоеПриложение(, XMLСтрока(Порт));"");
+
+ Подключен = Ложь;
+ ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутОжиданияПриложенияВСекундах; //60;
+ ОписаниеОшибкиСоединения = """";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ тестовоеПриложение.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+
+ сообщениеОшибки = ""Не смогли установить соединение с тестовым приложением для пользователя ""+ИмяПользователя+"" !"" + Символы.ПС + ОписаниеОшибкиСоединения;
+ //юТест.ПроверитьИстину(Подключен, сообщениеОшибки);
+ Если Не Подключен Тогда
+ тестовоеПриложение = Неопределено;
+ ВызватьИсключение сообщениеОшибки;
+ КонецЕсли;
+
+ массивТестовыхПриложений.Добавить(тестовоеПриложение);
+
+ Возврат тестовоеПриложение;
+КонецФункции
+
+&НаКлиенте
+Процедура ЗавершитьВсеСеансыРаботыСТестовымиПриложениями()
+ Если массивТестовыхПриложений.Количество() <> 0 Тогда
+ Для Каждого Подопытный Из массивТестовыхПриложений Цикл
+ Подопытный.РазорватьСоединение();
+ КонецЦикла;
+
+ ЗавершитьВсеТестовыеПриложенияПринудительно();
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗавершитьВсеТестовыеПриложенияПринудительно()
+ Утверждения.ПроверитьЗаполненность(массивТестовыхПриложений.Количество(), ""массивТестовыхПриложений.Количество()"");
+
+ Scr = Новый COMОбъект(""MSScriptControl.ScriptControl"");
+ Scr.Language = ""vbscript"";
+ Scr.AddCode(""
+ |Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"""")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"""")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next
+ |"");
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПолучитьСтрокуЗапуска(ИмяПользователя = """", Пароль = """", Порт = """")
+ //Если Не ЗначениеЗаполнено(ИмяПользователя) Тогда
+ // ИмяПользователя = ""Администратор"";
+ //КонецЕсли;
+
+ Результат = КаталогПрограммы() + ""1cv8c.exe ENTERPRISE "" +
+ ""/IBConnectionString"""""" + СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """""""", """""""""""") + """""""" +
+ ""/N"""""" + ИмяПользователя + """""""" + ""/P"""""" + Пароль + """""""" +
+ "" /TESTCLIENT -TPort"" + XMLСтрока(Порт);
+
+ Возврат Результат;
+КонецФункции
+
+#КонецОбласти
+
+#Область ТестовыеДанныеУФ
+
+// Добавляет значение с ключом в тестовые данные для УФ
+&НаСервере
+Процедура ДобавитьТестовыеДанные(Ключ, ТестовыеДанные)
+
+ СтрокаТестовыхДанных= ТестовыеДанныеУФ.НайтиСтроки(Новый Структура(""Ключ"", Ключ));
+
+ Если СтрокаТестовыхДанных.Количество() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СтрокаТестовыйДокумент= ТестовыеДанныеУФ.Добавить();
+
+ СтрокаТестовыйДокумент.Ключ= Ключ;
+
+ Значение= Новый СписокЗначений;
+ Значение.Добавить(ТестовыеДанные, Ключ);
+
+ СтрокаТестовыйДокумент.Значение= Значение;
+
+КонецПроцедуры
+
+// Возвращает первое значение из списка по ключу из тестовых данные для УФ
+&НаКлиентеНаСервереБезКонтекста
+Функция ПолучитьТестовыеДанные(ТестовыеДанныеУФ, Ключ)
+
+ СписокТестовыхДанных= ПолучитьСписокТестовыхДанных(ТестовыеДанныеУФ, Ключ);
+
+ Если СписокТестовыхДанных = Неопределено Тогда
+ ТестовыеДанные= Неопределено;
+ Иначе
+ ТестовыеДанные= СписокТестовыхДанных[0].Значение;
+ КонецЕсли;
+
+ Возврат ТестовыеДанные;
+
+КонецФункции
+
+// Возвращает список значение по ключу из тестовых данные для УФ
+&НаКлиентеНаСервереБезКонтекста
+Функция ПолучитьСписокТестовыхДанных(ТестовыеДанныеУФ, Ключ)
+
+ СтрокиТестовыхДанных= ТестовыеДанныеУФ.НайтиСтроки(Новый Структура(""Ключ"", Ключ));
+
+ Если Не СтрокиТестовыхДанных.Количество() Тогда
+ СписокТестовыхДанных= Неопределено;
+ Иначе
+ СписокТестовыхДанных= СтрокиТестовыхДанных[0].Значение;
+ КонецЕсли;
+
+ Возврат СписокТестовыхДанных;
+
+КонецФункции
+
+// { Подсистема конфигурации xUnitFor1C
+
+&НаСервере
+Функция ПолучитьКонтекстЯдраНаСервере()
+
+ // Получаем доступ к серверному контексту обработки с использованием
+ // полного имени метаданных браузера тестов. Иначе нет возможности получить
+ // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте.
+ // При передаче на сервер клиентский контекст теряется.
+ КонтекстЯдра = Неопределено;
+ МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов);
+ Если НЕ МетаданныеЯдра = Неопределено
+ И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, ""Обработка"", ""Обработки"");
+ Выполнить(""КонтекстЯдра = "" + ИмяОбработкиКонекстаЯдра + "".Создать()"");
+ Иначе
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, ""ВнешняяОбработка"", ""ВнешниеОбработки"");
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ""."", Символы.ПС);
+ МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1);
+ ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2);
+ Выполнить(""КонтекстЯдра = "" + МенеджерОбъектов + "".Создать(""""""+ИмяОбъекта+"""""")"");
+ КонецЕсли;
+
+ Возврат КонтекстЯдра;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
+
+#КонецОбласти
+
+#Область ТЕСТЫ
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+
+ СисИнфо = Новый СистемнаяИнформация;
+ Если СисИнфо.ВерсияПриложения < ""8.3.0.0"" Тогда
+ Возврат;
+ КонецЕсли;
+
+ НаборТестов.НачатьГруппу(""Проверка интерфейса автоматического тестирования"", Истина);
+
+ НаборТестов.Добавить(""Тест_ПодключениеКлиента"", , ""Подключение клиента тестирования"");
+
+ //НаборТестов.Добавить(""Тест_ОткрытиеФормыСписка"", , ""Открытие формы списка"");
+ //НаборТестов.Добавить(""Тест_ПоискВСписке"", , ""Поиск в списке"");
+ //НаборТестов.Добавить(""Тест_ОткрытиеВСпискеТекущего"", , ""Открытие в списке текущей строки"");
+ //НаборТестов.Добавить(""Тест_Проведение"", , ""Проведение открытого документа"");
+
+ НаборТестов.Добавить(""Тест_ОткрытиеИПроведение"", , ""Открытие и проведение документа"");
+ НаборТестов.Добавить(""Тест_ПроверкаДвижений"", , ""Проверка движений"");
+
+ НаборТестов.ДобавитьДеструктор(""Тест_ОтключениеКлиента"", ""Отключение клиента тестирования"");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПодключениеКлиента() Экспорт
+
+ СоздатьТестовыйДокумент();
+
+ Ожидаем.ПодключениеКлиентаТестирования(""Администратор"", """");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОткрытиеФормыСписка() Экспорт
+
+ Ожидаем.ОткрытиеФормыСписка(""Документ.Документ1"", ""Документ1"");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПоискВСписке() Экспорт
+
+ Ожидаем.ПоискВСписке(Новый Структура(""Номер,Дата"", ""000000002"", ""26.11.2017 23:13:37""));
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОткрытиеВСпискеТекущего() Экспорт
+
+ Ожидаем.ОткрытиеВСписке(""Документ1 000000002 от 26.11.2017 23:13:37"");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_Проведение() Экспорт
+
+ Ожидаем.Проведение();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОткрытиеИПроведение() Экспорт
+
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, ""Тестовые данные"").Не_().ЭтоНеопределено();
+
+ Ожидаем
+ .ОткрытиеФормыСписка(ТестовыеДанные.ПолноеИмя, ТестовыеДанные.Имя)
+ .ПоискВСписке(Новый Структура(""Номер,Дата"", ТестовыеДанные.Номер, Строка(ТестовыеДанные.Дата)))
+ .ОткрытиеВСписке(ТестовыеДанные.Представление)
+ .Проведение()
+ ;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ПроверкаДвижений() Экспорт
+
+ ТестовыеДанные= ПолучитьТестовыйДокумент();
+
+ Ожидаем.Что(ТестовыеДанные, ""Тестовые данные"").Не_().ЭтоНеопределено();
+
+ Ожидаем
+ .ОткрытиеФормыСписка(""РегистрСведений.РСПодчиненныйРегистратору"", ""РСПодчиненный регистратору"")
+ .УстановкаОтбораВСписке(Новый Структура(""Регистратор"", ТестовыеДанные.Представление))
+ .КоличествоСтрокВСписке(""Движения документа "" + ТестовыеДанные.Представление).Равно(ТестовыеДанные.КоличествоСтрок);
+ ;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ОтключениеКлиента() Экспорт
+
+ Ожидаем.ОтключениеКлиентаТестирования();
+
+ УдалитьТестовыйДокумент();
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ТЕСТОВЫЕ_ДАННЫЕ
+
+&НаКлиенте
+Процедура СоздатьТестовыйДокумент()
+ КонтекстЯдра.СохранитьКонтекст(СоздатьТестовыйДокументНаСервере());
+КонецПроцедуры
+
+&НаСервере
+Функция СоздатьТестовыйДокументНаСервере()
+
+ ТестовыйДокумент= Документы.Документ2.СоздатьДокумент();
+ ТестовыйДокумент.Дата= ТекущаяДата();
+ ТестовыйДокумент.УстановитьНовыйНомер();
+
+ ТестовыйДокумент.Состав.Добавить();
+
+ ТестовыйДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);
+
+ МетаданныеДокумента= ТестовыйДокумент.Метаданные();
+
+ ТестовыеДанные= Новый Структура;
+ ТестовыеДанные.Вставить(""Ссылка"", ТестовыйДокумент.Ссылка);
+ ТестовыеДанные.Вставить(""Номер"", ТестовыйДокумент.Номер);
+ ТестовыеДанные.Вставить(""Дата"", ТестовыйДокумент.Дата);
+ ТестовыеДанные.Вставить(""Имя"", МетаданныеДокумента.Имя);
+ ТестовыеДанные.Вставить(""ПолноеИмя"", МетаданныеДокумента.ПолноеИмя());
+ ТестовыеДанные.Вставить(""Представление"", Строка(ТестовыйДокумент));
+ ТестовыеДанные.Вставить(""КоличествоСтрок"", ТестовыйДокумент.Состав.Количество());
+
+ Возврат ТестовыеДанные;
+
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьТестовыйДокумент()
+ Возврат КонтекстЯдра.ПолучитьКонтекст();
+КонецФункции
+
+&НаКлиенте
+Процедура УдалитьТестовыйДокумент()
+ УдалитьТестовыйДокументНаСервере(КонтекстЯдра.ПолучитьКонтекст());
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьТестовыйДокументНаСервере(ТестовыеДанные)
+ ТестовыеДанные.Ссылка.ПолучитьОбъект().Удалить();
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецЕсли
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+",
+{4,5,
+{9,
+{1},0,"Объект",
+{1,0},
+{"Pattern",
+{"#",d4e55e33-fb7f-484e-bcf7-2a6d67753130}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},1,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{2},0,"ИмяПеременнойПользователь",
+{1,1,
+{"ru","Имя переменной пользователь"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{3},0,"ПользовательИмя",
+{1,1,
+{"ru","Пользователь имя"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{4},0,"ТестовыеДанныеУФ",
+{1,1,
+{"ru","Тестовые данные УФ"}
+},
+{"Pattern",
+{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,2,
+{5,1,0,"Ключ",
+{1,1,
+{"ru","Ключ"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{5,2,0,"Значение",
+{1,1,
+{"ru","Значение"}
+},
+{"Pattern",
+{"#",4772b3b4-f4a3-49c0-a1a5-8cb5961511a3}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{0,0},
+{0,0}
+},
+{9,
+{5},0,"ПолноеИмяБраузераТестов",
+{1,1,
+{"ru","Полное имя браузера тестов"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},0,0,
+{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
+aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
+LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
+OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
+dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
+cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
+Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
+Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
+LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
+LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
+cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
+YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
+},
+{0,0},
+{0,0},
+{0,0},
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/UnpackV8.exe" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/UnpackV8.exe"
new file mode 100644
index 00000000..af7ade9a
Binary files /dev/null and "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/UnpackV8.exe" differ
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/copyinfo" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/copyinfo"
new file mode 100644
index 00000000..360ace66
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/copyinfo"
@@ -0,0 +1,16 @@
+{4,
+{2,
+{8401ee62-68b8-43ea-8738-0c08cbc8c901,8401ee62-68b8-43ea-8738-0c08cbc8c901,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
+},
+{84c18118-7744-4171-b86f-e605494b2083,84c18118-7744-4171-b86f-e605494b2083,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"Тест_УтвержденияBDDForms"}
+}
+},
+{1,
+{d4e55e33-fb7f-484e-bcf7-2a6d67753130,84c18118-7744-4171-b86f-e605494b2083,0}
+},
+{0},
+{0,0},
+{0}
+}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/ff63ef17-ca70-4e24-a81d-c333c276c114" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/ff63ef17-ca70-4e24-a81d-c333c276c114"
new file mode 100644
index 00000000..22205aa6
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/ff63ef17-ca70-4e24-a81d-c333c276c114"
@@ -0,0 +1,6 @@
+{1,
+{2,0,
+{1,
+{0,0,ff63ef17-ca70-4e24-a81d-c333c276c114},"СозданиеОдногоПользователяИБ",
+{1,"ru","Создание одного пользователя ИБ"},"",0,0}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/ff63ef17-ca70-4e24-a81d-c333c276c114.0" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/ff63ef17-ca70-4e24-a81d-c333c276c114.0"
new file mode 100644
index 00000000..d94fe3a2
Binary files /dev/null and "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/ff63ef17-ca70-4e24-a81d-c333c276c114.0" differ
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/root" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/root"
new file mode 100644
index 00000000..0c48dcf2
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/root"
@@ -0,0 +1 @@
+{2,4e93fd08-5eda-44dd-92ef-b84867283b1e,}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/version" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/version"
new file mode 100644
index 00000000..421eee79
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/version"
@@ -0,0 +1,5 @@
+{
+{216,0,
+{80308,0}
+}
+}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/versions" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/versions"
new file mode 100644
index 00000000..bc21d3b3
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/versions"
@@ -0,0 +1 @@
+{1,12,"",c263c128-4702-4eb0-8826-91cd1678c9fa,"1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4",ea63c74b-456c-49c3-b592-a8710b5a5eb3,"1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0",033dea6d-c3b2-4a6a-8fbd-8f59b3448e70,"4e93fd08-5eda-44dd-92ef-b84867283b1e",131a3adc-d427-4e2d-85f9-a7299ae6fdc4,"8401ee62-68b8-43ea-8738-0c08cbc8c901",31dc6f11-211b-4172-a668-446eac5bd5e5,"8401ee62-68b8-43ea-8738-0c08cbc8c901.0",0f7a428b-6143-4097-b440-618fe7171943,"copyinfo",030e0b2b-6bda-4f80-b17a-b422d471b8e6,"ff63ef17-ca70-4e24-a81d-c333c276c114",9d5a1a6d-fbab-489a-84fb-caafa1e34cde,"ff63ef17-ca70-4e24-a81d-c333c276c114.0",85c09c47-ea22-4948-ba85-8105c32666dc,"root",8114ed73-4156-433a-8226-f5d15cfd746e,"version",dfef2e33-a68f-4538-ae6a-8d8f2889abbf,"versions",6373719c-e8d5-4dd4-b246-437827c52419}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/zlib1.dll" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/zlib1.dll"
new file mode 100644
index 00000000..1cf8a476
Binary files /dev/null and "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/und/zlib1.dll" differ
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/\320\234\320\260\320\272\320\265\321\202\321\213/\320\234\320\260\320\272\320\265\321\202.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/\320\234\320\260\320\272\320\265\321\202\321\213/\320\234\320\260\320\272\320\265\321\202.txt"
new file mode 100644
index 00000000..12c2bc47
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/\320\234\320\260\320\272\320\265\321\202\321\213/\320\234\320\260\320\272\320\265\321\202.txt"
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.mxl" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.mxl"
new file mode 100644
index 00000000..d94fe3a2
Binary files /dev/null and "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.mxl" differ
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt"
new file mode 100644
index 00000000..e1b72886
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDDForms/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt"
@@ -0,0 +1,10 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+ПользовательИБ ИмяПеременнойПользователь
+ Имя ПользовательИмя
+ ОсновнойИнтерфейс
+ Пароль
+ РежимЗапуска Управляемое приложение
+ Роли
+ Роль ПолныеПрава
+ Роль АдминистраторСистемы
+ Роль ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок
\ No newline at end of file
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..a31dfdcc
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,151 @@
+&НаКлиенте
+Перем ПолеЗначение;
+
+&НаКлиенте
+Перем ОкноПриложенияНастройкаСпискаФормаНастройкаСписка;
+
+&НаКлиенте
+Процедура Отладка(Команда)
+ НастройкаСписка(Подключение());
+КонецПроцедуры
+
+&НаКлиенте
+Функция Подключение()
+
+ ТестовоеПриложение = Новый ТестируемоеПриложение();
+ ВремяОкончанияОжидания = ТекущаяДата() + 60;
+ Подключен = Ложь;
+ ОписаниеОшибкиСоединения = "";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ ТестовоеПриложение.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+ Если Не Подключен Тогда
+ ТестовоеПриложение = Неопределено;
+ Сообщить("Не смогли установить соединение! " + Символы.ПС + ОписаниеОшибкиСоединения);
+ КонецЕсли;
+
+ Возврат ТестовоеПриложение;
+
+КонецФункции
+
+&НаКлиенте
+Процедура НастройкаСписка(ТестовоеПриложение)
+
+ ЗаголовокСписка= "РСПодчиненный регистратору";
+
+ ОкноПриложения= ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ЗаголовокСписка, , 30);
+ ФормаСписка = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"), ЗаголовокСписка);
+
+ ЗаголовокСпискаРегистратора= "Документ2";
+ ПредставлениеТипаРегистратора= "Документ2";
+
+ ОписаниеСтрокиРегистратора = Новый Соответствие();
+ ОписаниеСтрокиРегистратора.Вставить("Дата", "28.11.2017 14:56:18");
+ ОписаниеСтрокиРегистратора.Вставить("номер", "2");
+
+ УстановитьОтборПоРегистратору(ТестовоеПриложение, ФормаСписка, ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, ОписаниеСтрокиРегистратора);
+
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УстановитьОтборПоРегистратору(ТестовоеПриложение, ФормаСписка, ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, ОписаниеСтрокиРегистратора)
+
+
+ КнопкаНастроитьСписок = ФормаСписка.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Настроить список...");
+ КнопкаНастроитьСписок.Нажать();
+
+
+ ОкноПриложенияНастройкаСписка = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Настройка списка", , 30);
+ ОкноПриложенияНастройкаСпискаФормаНастройкаСписка = ОкноПриложенияНастройкаСписка.НайтиОбъект(Тип("ТестируемаяФорма"), "Настройка списка");
+
+ ТаблицаВыбраныеПоля= ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Отбор. Элементы");
+
+ ОписаниеСтроки = Новый Соответствие();
+ ОписаниеСтроки.Вставить("Представление", "Регистратор");
+ ЕстьРегистратор= ТаблицаВыбраныеПоля.ПерейтиКСтроке(ОписаниеСтроки, НаправлениеПереходаКСтроке.Вниз);
+
+ // Добавляем в отбор регистратор когда его там нет
+
+ Если Не ЕстьРегистратор Тогда
+
+ ТаблицаДоступныеПоля = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Доступные поля");
+
+ ОписаниеСтроки = Новый Соответствие();
+ ОписаниеСтроки.Вставить("Доступные поля", "Регистратор");
+
+ ТаблицаДоступныеПоля.ПерейтиКСтроке(ОписаниеСтроки);
+
+ ТаблицаДоступныеПоля.Выбрать();
+
+ КонецЕсли;
+
+ // Переходим к регистратору
+
+ ТаблицаОтборЭлементы = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Отбор. Элементы");
+
+ ТаблицаОтборЭлементы.Активизировать();
+
+ ОписаниеСтроки = Новый Соответствие();
+ ОписаниеСтроки.Вставить("Представление", "Регистратор");
+ ТаблицаОтборЭлементы.ПерейтиКСтроке(ОписаниеСтроки);
+
+ // Устанавливаем использование когда оно не установлено
+
+ ПолеИспользование = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "Использование");
+ Если ПолеИспользование.ПолучитьПредставлениеДанных() <> "Да" Тогда
+ ПолеИспользование.УстановитьОтметку();
+ КонецЕсли;
+
+ ПолеЗначение = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "Значение");
+ ПолеЗначение.Активизировать();
+
+ ТаблицаВыбраныеПоля.ИзменитьСтроку();
+
+ ПолеЗначение.Выбрать();
+
+ ОкноПриложенияВыборТипаДанных = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Выбор типа данных", , 30);
+ ОкноПриложенияВыборТипаДанныхФормаВыборТипаДанных = ОкноПриложенияВыборТипаДанных.НайтиОбъект(Тип("ТестируемаяФорма"), "Выбор типа данных");
+
+ ТаблицаТипов = ОкноПриложенияВыборТипаДанныхФормаВыборТипаДанных.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), , "TypeTree");
+
+ ТаблицаТипов.Активизировать();
+
+ ОписаниеСтроки = Новый Соответствие();
+ ОписаниеСтроки.Вставить("", ПредставлениеТипаРегистратора);
+ ТаблицаТипов.ПерейтиКСтроке(ОписаниеСтроки);
+
+ ТаблицаТипов.Выбрать();
+
+ ОкноПриложенияВыборРегистратора = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ЗаголовокСпискаРегистратора, , 30);
+ ОкноПриложенияРегистратораФормаВыборРегистратора = ОкноПриложенияВыборРегистратора.НайтиОбъект(Тип("ТестируемаяФорма"), ЗаголовокСпискаРегистратора);
+
+ ТаблицаДокументов= ОкноПриложенияРегистратораФормаВыборРегистратора.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), , "Список");
+
+ ТаблицаДокументов.ПерейтиКСтроке(ОписаниеСтрокиРегистратора);
+
+ ТаблицаДокументов.Выбрать();
+
+ ТаблицаВыбраныеПоля.ЗакончитьРедактированиеСтроки(Ложь);
+
+ КнопкаЗавершитьРедактирование = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Завершить редактирование");
+ КнопкаЗавершитьРедактирование.Нажать();
+
+КонецПроцедуры
+
+
+&НаКлиенте
+Процедура ВыполнитьАлгоритм(Команда)
+ Выполнить(ТекстАлгоритма);
+КонецПроцедуры
+
+
+
+
+
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/maps.txt" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/maps.txt"
new file mode 100644
index 00000000..61983c37
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->e6d114c2-c29a-44b2-b39f-f1af53593e3e.0 (275, 426)
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/renames.txt" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/renames.txt"
new file mode 100644
index 00000000..a974e3c7
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/renames.txt"
@@ -0,0 +1,7 @@
+bc378f3d-a633-4358-9698-51a1f5512ba7-->und\bc378f3d-a633-4358-9698-51a1f5512ba7
+copyinfo-->und\copyinfo
+e6d114c2-c29a-44b2-b39f-f1af53593e3e-->und\e6d114c2-c29a-44b2-b39f-f1af53593e3e
+e6d114c2-c29a-44b2-b39f-f1af53593e3e.0-->und\e6d114c2-c29a-44b2-b39f-f1af53593e3e.0
+root-->und\root
+version-->und\version
+versions-->und\versions
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/bc378f3d-a633-4358-9698-51a1f5512ba7" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/bc378f3d-a633-4358-9698-51a1f5512ba7"
new file mode 100644
index 00000000..1fbfacc6
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/bc378f3d-a633-4358-9698-51a1f5512ba7"
@@ -0,0 +1,17 @@
+{1,
+{bc378f3d-a633-4358-9698-51a1f5512ba7},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,4143571b-fa01-4675-bcc0-bbd72205844a,62d4d9cd-d919-44f7-8646-984036df1852,
+{0,
+{1,
+{0,0,e2890d75-2b2f-4da7-bb54-055c070cab87},"Отладка_ОтборВСписке",
+{1,"ru","Отладка отбор в списке"},"",0,0}
+},e6d114c2-c29a-44b2-b39f-f1af53593e3e,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,0},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,e6d114c2-c29a-44b2-b39f-f1af53593e3e},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0}
+}
+}
+}
\ No newline at end of file
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/copyinfo" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/copyinfo"
new file mode 100644
index 00000000..5ddb6658
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/copyinfo"
@@ -0,0 +1,16 @@
+{4,
+{2,
+{e2890d75-2b2f-4da7-bb54-055c070cab87,e2890d75-2b2f-4da7-bb54-055c070cab87,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"Отладка_ОтборВСписке"}
+},
+{e6d114c2-c29a-44b2-b39f-f1af53593e3e,e6d114c2-c29a-44b2-b39f-f1af53593e3e,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
+}
+},
+{1,
+{4143571b-fa01-4675-bcc0-bbd72205844a,e2890d75-2b2f-4da7-bb54-055c070cab87,0}
+},
+{0},
+{0,0},
+{0}
+}
\ No newline at end of file
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/e6d114c2-c29a-44b2-b39f-f1af53593e3e" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/e6d114c2-c29a-44b2-b39f-f1af53593e3e"
new file mode 100644
index 00000000..2a3f1449
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/e6d114c2-c29a-44b2-b39f-f1af53593e3e"
@@ -0,0 +1,15 @@
+{1,
+{1,
+{0,
+{12,
+{1,
+{0,0,e6d114c2-c29a-44b2-b39f-f1af53593e3e},"Форма",
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/e6d114c2-c29a-44b2-b39f-f1af53593e3e.0" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/e6d114c2-c29a-44b2-b39f-f1af53593e3e.0"
new file mode 100644
index 00000000..521e2fea
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/e6d114c2-c29a-44b2-b39f-f1af53593e3e.0"
@@ -0,0 +1,520 @@
+{3,
+{46,0,0,0,0,1,1,1,00000000-0000-0000-0000-000000000000,1,
+{1,0},0,0,1,1,1,0,1,0,
+{0,1,0},
+{0},1,
+{21,
+{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,9,"ФормаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,1},2,a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{1,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"Отладка",
+{1,0},1,
+{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{2,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ОтладкаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,0,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{8,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ФормаВыполнитьАлгоритм",
+{1,0},1,
+{2,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{9,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФормаВыполнитьАлгоритмРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,0,0},1,0,0,0,3,3},1,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{6,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"Группа1",
+{1,0},
+{1,0},0,1,0,0,0,1,1,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,1,0,2,1,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,1,0,1,2},1,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{3,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"ТекстАлгоритма",1,0,
+{1,0},
+{1,0},
+{1,
+{2}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{32,
+{3,0},250,0,1,1,1,2,1,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,2,3,
+{-31},90,"Liberation Mono",1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0},
+{0,1,0},1,
+{21,
+{4,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ТекстАлгоритмаКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{5,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТекстАлгоритмаРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},1,0,1,
+{10,
+{7,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Группа1РасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},"","",1,
+{21,
+{0},0,0,0,7,"Navigator",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorExtendedTooltip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,1,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",0,0,0,0,0,0,3,3,0,0,0,100,1,1,0},"&НаКлиенте
+Перем ПолеЗначение;
+
+&НаКлиенте
+Перем ОкноПриложенияНастройкаСпискаФормаНастройкаСписка;
+
+&НаКлиенте
+Процедура Отладка(Команда)
+ НастройкаСписка(Подключение());
+КонецПроцедуры
+
+&НаКлиенте
+Функция Подключение()
+
+ ТестовоеПриложение = Новый ТестируемоеПриложение();
+ ВремяОкончанияОжидания = ТекущаяДата() + 60;
+ Подключен = Ложь;
+ ОписаниеОшибкиСоединения = """";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ ТестовоеПриложение.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+ Если Не Подключен Тогда
+ ТестовоеПриложение = Неопределено;
+ Сообщить(""Не смогли установить соединение! "" + Символы.ПС + ОписаниеОшибкиСоединения);
+ КонецЕсли;
+
+ Возврат ТестовоеПриложение;
+
+КонецФункции
+
+&НаКлиенте
+Процедура НастройкаСписка(ТестовоеПриложение)
+
+ ЗаголовокСписка= ""РСПодчиненный регистратору"";
+
+ ОкноПриложения= ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ЗаголовокСписка, , 30);
+ ФормаСписка = ОкноПриложения.НайтиОбъект(Тип(""ТестируемаяФорма""), ЗаголовокСписка);
+
+ ЗаголовокСпискаРегистратора= ""Документ2"";
+ ПредставлениеТипаРегистратора= ""Документ2"";
+
+ ОписаниеСтрокиРегистратора = Новый Соответствие();
+ ОписаниеСтрокиРегистратора.Вставить(""Дата"", ""28.11.2017 14:56:18"");
+ ОписаниеСтрокиРегистратора.Вставить(""номер"", ""2"");
+
+ УстановитьОтборПоРегистратору(ТестовоеПриложение, ФормаСписка, ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, ОписаниеСтрокиРегистратора);
+
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УстановитьОтборПоРегистратору(ТестовоеПриложение, ФормаСписка, ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, ОписаниеСтрокиРегистратора)
+
+
+ КнопкаНастроитьСписок = ФормаСписка.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ""Настроить список..."");
+ КнопкаНастроитьСписок.Нажать();
+
+
+ ОкноПриложенияНастройкаСписка = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ""Настройка списка"", , 30);
+ ОкноПриложенияНастройкаСпискаФормаНастройкаСписка = ОкноПриложенияНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяФорма""), ""Настройка списка"");
+
+ ТаблицаВыбраныеПоля= ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), ""Отбор. Элементы"");
+
+ ОписаниеСтроки = Новый Соответствие();
+ ОписаниеСтроки.Вставить(""Представление"", ""Регистратор"");
+ ЕстьРегистратор= ТаблицаВыбраныеПоля.ПерейтиКСтроке(ОписаниеСтроки, НаправлениеПереходаКСтроке.Вниз);
+
+ // Добавляем в отбор регистратор когда его там нет
+
+ Если Не ЕстьРегистратор Тогда
+
+ ТаблицаДоступныеПоля = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), ""Доступные поля"");
+
+ ОписаниеСтроки = Новый Соответствие();
+ ОписаниеСтроки.Вставить(""Доступные поля"", ""Регистратор"");
+
+ ТаблицаДоступныеПоля.ПерейтиКСтроке(ОписаниеСтроки);
+
+ ТаблицаДоступныеПоля.Выбрать();
+
+ КонецЕсли;
+
+ // Переходим к регистратору
+
+ ТаблицаОтборЭлементы = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), ""Отбор. Элементы"");
+
+ ТаблицаОтборЭлементы.Активизировать();
+
+ ОписаниеСтроки = Новый Соответствие();
+ ОписаниеСтроки.Вставить(""Представление"", ""Регистратор"");
+ ТаблицаОтборЭлементы.ПерейтиКСтроке(ОписаниеСтроки);
+
+ // Устанавливаем использование когда оно не установлено
+
+ ПолеИспользование = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), ""Использование"");
+ Если ПолеИспользование.ПолучитьПредставлениеДанных() <> ""Да"" Тогда
+ ПолеИспользование.УстановитьОтметку();
+ КонецЕсли;
+
+ ПолеЗначение = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), ""Значение"");
+ ПолеЗначение.Активизировать();
+
+ ТаблицаВыбраныеПоля.ИзменитьСтроку();
+
+ ПолеЗначение.Выбрать();
+
+ ОкноПриложенияВыборТипаДанных = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ""Выбор типа данных"", , 30);
+ ОкноПриложенияВыборТипаДанныхФормаВыборТипаДанных = ОкноПриложенияВыборТипаДанных.НайтиОбъект(Тип(""ТестируемаяФорма""), ""Выбор типа данных"");
+
+ ТаблицаТипов = ОкноПриложенияВыборТипаДанныхФормаВыборТипаДанных.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), , ""TypeTree"");
+
+ ТаблицаТипов.Активизировать();
+
+ ОписаниеСтроки = Новый Соответствие();
+ ОписаниеСтроки.Вставить("""", ПредставлениеТипаРегистратора);
+ ТаблицаТипов.ПерейтиКСтроке(ОписаниеСтроки);
+
+ ТаблицаТипов.Выбрать();
+
+ ОкноПриложенияВыборРегистратора = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ЗаголовокСпискаРегистратора, , 30);
+ ОкноПриложенияРегистратораФормаВыборРегистратора = ОкноПриложенияВыборРегистратора.НайтиОбъект(Тип(""ТестируемаяФорма""), ЗаголовокСпискаРегистратора);
+
+ ТаблицаДокументов= ОкноПриложенияРегистратораФормаВыборРегистратора.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), , ""Список"");
+
+ ТаблицаДокументов.ПерейтиКСтроке(ОписаниеСтрокиРегистратора);
+
+ ТаблицаДокументов.Выбрать();
+
+ ТаблицаВыбраныеПоля.ЗакончитьРедактированиеСтроки(Ложь);
+
+ КнопкаЗавершитьРедактирование = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ""Завершить редактирование"");
+ КнопкаЗавершитьРедактирование.Нажать();
+
+КонецПроцедуры
+
+
+&НаКлиенте
+Процедура ВыполнитьАлгоритм(Команда)
+ Выполнить(ТекстАлгоритма);
+КонецПроцедуры
+
+
+
+
+
+",
+{4,2,
+{9,
+{1},0,"Объект",
+{1,0},
+{"Pattern",
+{"#",4143571b-fa01-4675-bcc0-bbd72205844a}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},1,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{2},0,"ТекстАлгоритма",
+{1,1,
+{"ru","Текст алгоритма"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,1,0,0,
+{0,0},
+{0,0}
+},0,0,
+{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
+aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
+LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
+OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
+dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
+cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
+Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
+Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
+LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
+LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
+cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
+YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
+},
+{0,0},
+{0,2,
+{8,
+{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Отладка",
+{1,1,
+{"ru","Отладка"}
+},
+{1,1,
+{"ru","Отладка"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"Отладка",3,0,0,
+{0,0},1,0,1,0,0},
+{8,
+{2,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"ВыполнитьАлгоритм",
+{1,1,
+{"ru","Выполнить алгоритм"}
+},
+{1,1,
+{"ru","Выполнить алгоритм"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,0,
+{0},"",-1,-1,1,0,""},"ВыполнитьАлгоритм",3,0,0,
+{0,0},1,0,1,0,0}
+},
+{0,0},
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/root" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/root"
new file mode 100644
index 00000000..4b02ec64
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/root"
@@ -0,0 +1 @@
+{2,bc378f3d-a633-4358-9698-51a1f5512ba7,}
\ No newline at end of file
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/version" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/version"
new file mode 100644
index 00000000..32619b14
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/version"
@@ -0,0 +1,5 @@
+{
+{216,0,
+{80309,0}
+}
+}
\ No newline at end of file
diff --git "a/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/versions" "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/versions"
new file mode 100644
index 00000000..47e8ad76
--- /dev/null
+++ "b/src/Utils/\320\236\321\202\320\273\320\260\320\264\320\272\320\260_\320\236\321\202\320\261\320\276\321\200\320\222\320\241\320\277\320\270\321\201\320\272\320\265/und/versions"
@@ -0,0 +1 @@
+{1,8,"",b8d4f2ee-f6ef-4ba8-a397-8c667c7b751a,"bc378f3d-a633-4358-9698-51a1f5512ba7",671c2b7e-0543-4474-98ab-21a49e59cccd,"copyinfo",d92843ea-c9a5-43e0-b6c4-944285a5b8c0,"e6d114c2-c29a-44b2-b39f-f1af53593e3e",8aa0bbe5-5954-404d-a41d-fffe25aa372a,"e6d114c2-c29a-44b2-b39f-f1af53593e3e.0",a17c048d-b356-40ab-8c59-d27a04dc2027,"root",ae3613b8-bd0f-4a93-87c3-104858546d69,"version",0834473f-3ff0-43e8-8ffc-451e2e04d201,"versions",e7ca8f05-5996-4a5c-93c4-54e5af931f89}
\ No newline at end of file
diff --git "a/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index 2ede32f5..4eba3ecf 100644
--- "a/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
+++ "b/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -235,15 +235,26 @@
ОписанияПлагинов = Новый Соответствие;
+ ОбъектыПлагинов= Новый Массив;
+
Для Каждого ОписаниеФайла Из ЗагружаемыеФайлы Цикл
+
ФайлОбъект = Новый Файл(ОписаниеФайла.Имя);
ИмяПлагина = ФайлОбъект.ИмяБезРасширения;
- ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина);
Попытка
- ОбъектОбработки = ВнешниеОбработки.Создать(ИмяПлагина, Ложь);
- ОбъектОбработки.Инициализация(ЭтотОбъектНаСервере());
- ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов));
+
+ ДополнительнаяОбработка= ПолучитьДополнительнуюОбработкуБСП(ИмяПлагина);
+
+ Если ДополнительнаяОбработка = Неопределено Тогда
+ ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина);
+ ОбъектПлагина = ВнешниеОбработки.Создать(ИмяПлагина, Ложь);
+ Иначе
+ ОбъектПлагина= Вычислить("ДополнительныеОтчетыИОбработкиВызовСервера.ОбъектВнешнейОбработки(ДополнительнаяОбработка)");
+ КонецЕсли;
+
+ ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектПлагина.ОписаниеПлагина(Объект.ТипыПлагинов));
+
Исключение
Ошибка = "Возникла ошибка при загрузке плагина: "+ОписаниеФайла.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Сообщить(Ошибка);
@@ -252,6 +263,19 @@
КонецЦикла;
+ // Во время инициализации плагину может понадобиться другой плагин, который ещё не загружен
+
+ ОбъектКонтекстаЯдра= ЭтотОбъектНаСервере();
+
+ Для Каждого ОбъектПлагина Из ОбъектыПлагинов Цикл
+ Попытка
+ ОбъектПлагина.Инициализация(ОбъектКонтекстаЯдра);
+ Исключение
+ Ошибка = "Возникла ошибка при инициализации плагина: " + ОбъектПлагина.Метаданные().Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Сообщить(Ошибка);
+ КонецПопытки;
+ КонецЦикла;
+
Возврат Новый ФиксированноеСоответствие(ОписанияПлагинов);
КонецФункции // ПодключитьПлагиныНаСервере()
@@ -261,6 +285,22 @@
Объект.ТипыУзловДереваТестов = Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
КонецПроцедуры
+&НаСервереБезКонтекста
+Функция ПолучитьДополнительнуюОбработкуБСП(ИмяВнешнейОбработки)
+ Попытка
+ ДополнительнаяОбработка= Вычислить("Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяВнешнейОбработки)");
+ Если ДополнительнаяОбработка.Пустая() Тогда
+ ДополнительнаяОбработка= Неопределено
+ КонецЕсли;
+ Исключение
+ ДополнительнаяОбработка= Неопределено;
+ КонецПопытки;
+ Если ДополнительнаяОбработка <> Неопределено И ДополнительнаяОбработка.ПометкаУдаления Тогда
+ ДополнительнаяОбработка= Неопределено;
+ КонецЕсли;
+ Возврат ДополнительнаяОбработка;
+КонецФункции
+
&НаКлиенте
Функция Плагин(Знач Идентификатор) Экспорт
@@ -275,11 +315,22 @@
ИначеЕсли ОбъектПлагин = Истина Тогда
// загрузка клиентского плагина "По требованию"
ИмяПлагина = Объект.Плагины[ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы)];
+
Попытка
Если Объект.ЭтоВстроеннаяОбработка Тогда
ОбъектПлагин = ПолучитьФорму("Обработка." + ДополнитьИдентификаторПрефиксомПодсистемы(ИмяПлагина, Объект.ИспользуемыйПрефиксПодсистемы) + ".Форма", , ЭтаФорма);
Иначе
- ОбъектПлагин = ПолучитьФорму("ВнешняяОбработка." + ИмяПлагина + ".Форма", , ЭтаФорма);
+
+ ДополнительнаяОбработка= ПолучитьДополнительнуюОбработкуБСП(ИмяПлагина);
+
+ Если ДополнительнаяОбработка = Неопределено Тогда
+ ИмяПодключения= ИмяПлагина;
+ Иначе
+ ИмяПодключения= Вычислить("ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ДополнительнаяОбработка)");
+ КонецЕсли;
+
+ ОбъектПлагин = ПолучитьФорму("ВнешняяОбработка." + ИмяПодключения + ".Форма", , ЭтаФорма);
+
КонецЕсли;
Попытка
@@ -296,11 +347,14 @@
КонецПопытки;
КэшФормПлагинов.Вставить(ИдентификаторБезПрефиксовПодсистемы, ОбъектПлагин);
+
Исключение
// TODO добавить поведение при отсутствии управляемой формы у плагина
ВызватьИсключение;
КонецПопытки;
-
+
+
+
КонецЕсли;
Возврат ОбъектПлагин;
diff --git "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form" "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form"
index 3b8c5144..b4edd155 100644
--- "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form"
+++ "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form"
@@ -730,7 +730,7 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0},
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},9,2,0,0,1,1,
{5,d4746b64-45af-49b5-a280-c2206705887b,9,1,1,
-{6,db368e7f-9280-4e81-883b-9c65ba315c62,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,f315f338-f61a-4cf3-8200-488ab721d9a7,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаВыполнитьВыделенныеТестыНажатие",
{1,"КнопкаВыполнитьВыделенныеТестыНажатие",
{1,1,
@@ -836,7 +836,7 @@ gg==}
},0,""},
{0,118,8}
},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,db368e7f-9280-4e81-883b-9c65ba315c62,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,f315f338-f61a-4cf3-8200-488ab721d9a7,
{8,"ВыполнитьТест",0,4,
{1,2,
{"#","Выполнить тест"},
@@ -1182,7 +1182,7 @@ RU5ErkJggg==}
},0,""},
{0,0,0},0,2,
{5,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1,3,
-{6,75a7f862-dc84-4f3c-bb23-85fc6f95ccdf,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,8b4a6c7b-d673-4cfa-9eb0-4c5569a46615,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаЗагрузитьТестыЗагрузитьНастройкиИзФайла",
{1,"КнопкаЗагрузитьТестыЗагрузитьНастройкиИзФайла",
{1,1,
@@ -1199,19 +1199,19 @@ RU5ErkJggg==}
{0,0,0}
}
},0},
-{6,a3c501cf-0b0c-43c7-8e6c-c515ee4f4d8e,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{6,6eddeba4-12cc-47e0-978a-77e1f198e2dc,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
-{6,ca09fbcb-29b4-4050-809d-00a2c2e69426,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{6,1dfb9a85-ab8e-439d-9fe8-bc7f5c18d57a,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26},0},2,
-{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,75a7f862-dc84-4f3c-bb23-85fc6f95ccdf,
+{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,8b4a6c7b-d673-4cfa-9eb0-4c5569a46615,
{8,"ЗагрузитьНастройкиИзФайла",0,1,
{1,1,
{"ru","Загрузить настройки из файла ..."}
-},1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,28,1e2,0,0,1,0,0,0,0},a3c501cf-0b0c-43c7-8e6c-c515ee4f4d8e,
+},1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,28,1e2,0,0,1,0,0,0,0},6eddeba4-12cc-47e0-978a-77e1f198e2dc,
{8,"Разделитель",0,1,
{1,1,
{"ru","Действие"}
-},0,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1e2,2,0,1,0,0,0,0},ca09fbcb-29b4-4050-809d-00a2c2e69426,
+},0,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1e2,2,0,1,0,0,0,0},1dfb9a85-ab8e-439d-9fe8-bc7f5c18d57a,
{8,"ИсторияЗагрузкиТестов",0,1,
{1,1,
{"ru","История загрузки тестов"}
@@ -1344,7 +1344,7 @@ AAAASUVORK5CYII=}
},0,""},
{0,0,0},0,2,
{5,41c23139-b710-4b93-a93e-1a3fe9843cfe,5,1,3,
-{6,fa708bd8-8fc9-4dd0-af4f-399937e0b3f5,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,4d9640ed-a79a-4c94-be78-d9374d773633,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования",
{1,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования",
{1,1,
@@ -1361,7 +1361,7 @@ AAAASUVORK5CYII=}
{0,0,0}
}
},0},
-{6,bea52a2a-47e0-4a43-9676-a823943f7bd5,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,de313afa-9546-42af-bb87-72b5afb9f1bb,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПерезагрузитьПоследниеТестыПоИстории",
{1,"ПерезагрузитьПоследниеТестыПоИстории",
{1,1,
@@ -1417,17 +1417,17 @@ fpcIxAUgkUoIHsoxHlpxsReNeI9EIrDkX2QLIpCML+Wkf5z+LcAAUD/gDNueXkgA
AAAASUVORK5CYII=}
},0,""}
},
-{6,b07922f0-763b-4284-9d3e-6097f5c5ca96,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{6,c2af5c3b-05e5-4e5c-bf39-5ab81851af40,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1,
-{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,bea52a2a-47e0-4a43-9676-a823943f7bd5,
+{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,de313afa-9546-42af-bb87-72b5afb9f1bb,
{8,"ПерезагрузитьТесты",0,1,
{1,1,
{"ru","Перезагрузить тесты"}
-},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},b07922f0-763b-4284-9d3e-6097f5c5ca96,
+},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},c2af5c3b-05e5-4e5c-bf39-5ab81851af40,
{8,"Разделитель",0,1,
{1,1,
{"ru","Действие"}
-},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},fa708bd8-8fc9-4dd0-af4f-399937e0b3f5,
+},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},4d9640ed-a79a-4c94-be78-d9374d773633,
{8,"ПерезагрузитьБраузерТестирования",0,1,
{1,1,
{"#","Перезагрузить браузер тестирования"}
@@ -2054,7 +2054,24 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==}
{0},"",-1,-1,1,0,""},
{0,0,0},0,2,
{5,28c47454-3a17-4ec8-b47f-d5008bf3ea41,5,1,3,
-{6,5e1dc361-6a51-432e-bf7a-90a396690417,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,bb0072d7-01c7-45ae-8d84-0fdf2bb209b1,1,e1692cc2-605b-4535-84dd-28440238746c,
+{3,"КнопкаИнструментыКонвертерТестов",
+{1,"КнопкаИнструментыКонвертерТестов",
+{1,1,
+{"ru","Конвертер тестов"}
+},
+{1,1,
+{"ru","Конвертер тестов"}
+},
+{1,1,
+{"ru","Конвертер тестов"}
+},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{0,0,0}
+}
+},0},
+{6,181be089-e5f7-4f3c-8efb-3d70046d98ed,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаИнструментыГенераторМакетовДанных",
{1,"КнопкаИнструментыГенераторМакетовДанных",
{1,1,
@@ -2080,24 +2097,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==}
{4,1,
{0,01ec9d9a-7497-4d88-b93f-066c633a4866},"",-1,-1,1,0,""}
},
-{6,89ded119-30d5-4a33-866a-e8cb51c2a44a,1,e1692cc2-605b-4535-84dd-28440238746c,
-{3,"КнопкаИнструментыКонвертерТестов",
-{1,"КнопкаИнструментыКонвертерТестов",
-{1,1,
-{"ru","Конвертер тестов"}
-},
-{1,1,
-{"ru","Конвертер тестов"}
-},
-{1,1,
-{"ru","Конвертер тестов"}
-},
-{4,0,
-{0},"",-1,-1,1,0,""},
-{0,0,0}
-}
-},0},
-{6,c654e4cb-802c-491f-8642-57bed47a0400,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,a85fae4e-5573-4b4f-bd19-c95c9b1d78db,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаИнструментыПоказатьГУИД",
{1,"КнопкаИнструментыПоказатьГУИД",
{1,1,
@@ -2114,15 +2114,15 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==}
{0,0,0}
}
},0},1,
-{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,5e1dc361-6a51-432e-bf7a-90a396690417,
+{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,181be089-e5f7-4f3c-8efb-3d70046d98ed,
{8,"ГенераторМакетовДанных",0,1,
{1,1,
{"#","Генератор макетов данных"}
-},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},c654e4cb-802c-491f-8642-57bed47a0400,
+},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},a85fae4e-5573-4b4f-bd19-c95c9b1d78db,
{8,"ПоказатьГУИД",0,1,
{1,1,
{"#","Показать ГУИД"}
-},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},89ded119-30d5-4a33-866a-e8cb51c2a44a,
+},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},bb0072d7-01c7-45ae-8d84-0fdf2bb209b1,
{8,"КонвертерТестов",0,1,
{1,1,
{"ru","Конвертер тестов в формат 4-й версии"}
@@ -2252,14 +2252,14 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==}
{0}
}
}
-},859,552,1,0,1,4,4,1390,859,552,96},
+},859,552,1,0,1,4,4,1398,859,552,96},
{
{1},27,
{4,
{
{1},0,0,1,"ОбработкаОбъект",
{"Pattern",
-{"#",9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9}
+{"#",36de71ca-ee4f-4778-9ceb-2f16d2cd8b0a}
}
},
{
diff --git a/src/xddTestRunner/maps.txt b/src/xddTestRunner/maps.txt
index 9c2cb88b..30319ae2 100644
--- a/src/xddTestRunner/maps.txt
+++ b/src/xddTestRunner/maps.txt
@@ -1 +1 @@
-Form\УправляемаяФорма\Форма.bsl-->ed07b230-8bf7-4423-b861-a31f23c7471f.0 (2 251, 3 607)
+Form\УправляемаяФорма\Форма.bsl-->cf4631cb-8c17-4bb9-baa2-e262059f8239.0 (2 251, 3 661)
diff --git a/src/xddTestRunner/renames.txt b/src/xddTestRunner/renames.txt
index aa353b5a..777c14d5 100644
--- a/src/xddTestRunner/renames.txt
+++ b/src/xddTestRunner/renames.txt
@@ -1,12 +1,12 @@
-11ad5c96-c434-4088-bf66-ddff06c57ed8.0\info-->und\11ad5c96-c434-4088-bf66-ddff06c57ed8.0\info
-11ad5c96-c434-4088-bf66-ddff06c57ed8.0\text-->ObjectModule.bsl
-11ad5c96-c434-4088-bf66-ddff06c57ed8.1-->und\11ad5c96-c434-4088-bf66-ddff06c57ed8.1
-5070e3c3-f74b-4ecd-9756-1136a230eca2-->und\5070e3c3-f74b-4ecd-9756-1136a230eca2
-a1ce7ef7-f372-4589-b899-7fbf88efa7bf-->und\a1ce7ef7-f372-4589-b899-7fbf88efa7bf
-a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0-->Form\Форма
+3fc601ef-4854-4f00-bd63-f0ebdaf3d5b9-->und\3fc601ef-4854-4f00-bd63-f0ebdaf3d5b9
+8858e806-7f8d-47be-9a9e-ab729b336d41-->und\8858e806-7f8d-47be-9a9e-ab729b336d41
+8858e806-7f8d-47be-9a9e-ab729b336d41.0-->Form\Форма
+b28ef09f-b7ea-4a75-a9a2-78d144076508.0\info-->und\b28ef09f-b7ea-4a75-a9a2-78d144076508.0\info
+b28ef09f-b7ea-4a75-a9a2-78d144076508.0\text-->ObjectModule.bsl
+b28ef09f-b7ea-4a75-a9a2-78d144076508.1-->und\b28ef09f-b7ea-4a75-a9a2-78d144076508.1
+cf4631cb-8c17-4bb9-baa2-e262059f8239-->und\cf4631cb-8c17-4bb9-baa2-e262059f8239
+cf4631cb-8c17-4bb9-baa2-e262059f8239.0-->und\cf4631cb-8c17-4bb9-baa2-e262059f8239.0
copyinfo-->und\copyinfo
-ed07b230-8bf7-4423-b861-a31f23c7471f-->und\ed07b230-8bf7-4423-b861-a31f23c7471f
-ed07b230-8bf7-4423-b861-a31f23c7471f.0-->und\ed07b230-8bf7-4423-b861-a31f23c7471f.0
root-->und\root
version-->und\version
versions-->und\versions
diff --git a/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2 b/src/xddTestRunner/und/3fc601ef-4854-4f00-bd63-f0ebdaf3d5b9
similarity index 77%
rename from src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2
rename to src/xddTestRunner/und/3fc601ef-4854-4f00-bd63-f0ebdaf3d5b9
index 5459fa31..1be28992 100644
--- a/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2
+++ b/src/xddTestRunner/und/3fc601ef-4854-4f00-bd63-f0ebdaf3d5b9
@@ -1,23 +1,23 @@
{1,
-{5070e3c3-f74b-4ecd-9756-1136a230eca2},1,
+{3fc601ef-4854-4f00-bd63-f0ebdaf3d5b9},1,
{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
{1,
-{4,9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9,4ab27be4-7b10-4bb7-81eb-539076e44058,
+{4,36de71ca-ee4f-4778-9ceb-2f16d2cd8b0a,e3e9461e-9836-44ea-80c7-b810e14e5cf4,
{0,
{1,
-{0,0,11ad5c96-c434-4088-bf66-ddff06c57ed8},"xddTestRunner",
+{0,0,b28ef09f-b7ea-4a75-a9a2-78d144076508},"xddTestRunner",
{1,"ru","Тестирование для 1С:Предприятия 8, xUnitFor1C"},"https://github.com/xDrivenDevelopment/xUnitFor1C",0,0}
-},a1ce7ef7-f372-4589-b899-7fbf88efa7bf,"",ed07b230-8bf7-4423-b861-a31f23c7471f},4,
+},8858e806-7f8d-47be-9a9e-ab729b336d41,"",cf4631cb-8c17-4bb9-baa2-e262059f8239},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,0},
-{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,a1ce7ef7-f372-4589-b899-7fbf88efa7bf,ed07b230-8bf7-4423-b861-a31f23c7471f},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,8858e806-7f8d-47be-9a9e-ab729b336d41,cf4631cb-8c17-4bb9-baa2-e262059f8239},
{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,14,
{
{0,
{27,
{2,
{1,
-{0,0,c1ba54a0-a096-4a11-bc8b-5199576eca67},"ВозможныеИсключения",
+{0,0,15c4f236-c299-4e1a-8f68-43109ce00eea},"ВозможныеИсключения",
{1,"ru","Возможные исключения"},"",0,0},
{"Pattern"}
},0,
@@ -36,7 +36,7 @@
{27,
{2,
{1,
-{0,0,966b3a73-6c03-4ff4-8768-54a1ac3bb295},"ВозможныеСобытия",
+{0,0,bda198e7-2759-47de-bc77-ac0ded9dfb8f},"ВозможныеСобытия",
{1,"ru","Возможные события"},"",0,0},
{"Pattern"}
},0,
@@ -55,7 +55,7 @@
{27,
{2,
{1,
-{0,0,f29d604e-0e64-4aa6-b589-ff586180d5cf},"Настройки",
+{0,0,187d61a1-cc94-49cd-8b78-00bf4948d003},"Настройки",
{1,"ru","Настройки"},"",0,0},
{"Pattern"}
},0,
@@ -74,7 +74,7 @@
{27,
{2,
{1,
-{0,0,73c64032-a845-4bb8-9d30-f5b19f712f85},"Плагины",
+{0,0,a1314ad7-95f6-4e8d-a23d-75304f9ef086},"Плагины",
{1,"ru","Плагины"},"",0,0},
{"Pattern"}
},0,
@@ -93,7 +93,7 @@
{27,
{2,
{1,
-{0,0,0ee2237e-eff1-4672-b9fd-4d254f6d4b1a},"СостоянияТестов",
+{0,0,fe69c5c3-a3b9-43c2-a4d5-7ba0d172623e},"СостоянияТестов",
{1,"ru","Состояния тестов"},"",0,0},
{"Pattern"}
},0,
@@ -112,7 +112,7 @@
{27,
{2,
{1,
-{0,0,f6db7088-52fe-44ec-94f4-c29a5a160d0f},"ТекущийКонтейнер",
+{0,0,c75bf729-b35c-4441-9672-719060a8f796},"ТекущийКонтейнер",
{1,"ru","Текущий контейнер"},"",0,0},
{"Pattern"}
},0,
@@ -131,7 +131,7 @@
{27,
{2,
{1,
-{0,0,2476a703-4846-4172-87e2-da08366f9c67},"ТипыПлагинов",
+{0,0,37a394ba-f2eb-4355-92e6-dea907a632ee},"ТипыПлагинов",
{1,"ru","Типы плагинов"},"",0,0},
{"Pattern"}
},0,
@@ -150,7 +150,7 @@
{27,
{2,
{1,
-{0,0,660a1fcb-04b5-4dde-b0a0-b5580172c383},"ТипыУзловДереваТестов",
+{0,0,715c41d9-b49b-426b-8b1f-27955edf0759},"ТипыУзловДереваТестов",
{1,"ru","Типы узлов дерева тестов"},"",0,0},
{"Pattern"}
},0,
@@ -169,7 +169,7 @@
{27,
{2,
{1,
-{0,0,27301104-5ea7-4ade-b198-4c81a6b380fd},"СтатусыРезультатаТестирования",
+{0,0,bc524cfb-812c-404c-b9f2-f0d3516b3faa},"СтатусыРезультатаТестирования",
{1,"ru","Статусы результата тестирования"},"",0,0},
{"Pattern"}
},0,
@@ -188,7 +188,7 @@
{27,
{2,
{1,
-{0,0,e554f66d-117f-465a-adf3-0247ca468be3},"ЭтоВстроеннаяОбработка",
+{0,0,6667c188-7009-493a-985b-1f3ff74ed3b4},"ЭтоВстроеннаяОбработка",
{1,"ru","Это встроенная обработка"},"",0,0},
{"Pattern",
{"B"}
@@ -209,7 +209,7 @@
{27,
{2,
{1,
-{0,0,25c6bd62-5cc5-41a3-b726-eaa6f64ed54a},"ИспользуемыйПрефиксПодсистемы",
+{0,0,573c1b1d-720b-469c-9040-1dafc98adbf9},"ИспользуемыйПрефиксПодсистемы",
{1,"ru","Используемый префикс подсистемы"},"Префикс для объектов, встроенных в состав конфигурации. Если браузер тестов, плагины и утилиты встроены в конфигурцаию, то они должны иметь один префикс.",0,0},
{"Pattern",
{"S",20,1}
@@ -230,7 +230,7 @@
{27,
{2,
{1,
-{0,0,661aabb5-acfd-4925-b0d1-ca22e2481a9b},"ПолноеИмяБраузераТестов",
+{0,0,6a97cb5a-fba1-46ac-a218-c666dad7b393},"ПолноеИмяБраузераТестов",
{1,"ru","Полное имя браузера тестов"},"",0,0},
{"Pattern",
{"S",512,1}
@@ -251,7 +251,7 @@
{27,
{2,
{1,
-{0,0,459571ca-47ca-4c56-ad46-8ea05b580771},"ПолныйПутьКФайлуБраузераТестов",
+{0,0,55be9f5d-8172-40b3-baf3-309c999db4b7},"ПолныйПутьКФайлуБраузераТестов",
{1,"ru","Полный путь к файлу браузера тестов"},"",0,0},
{"Pattern",
{"S"}
@@ -272,7 +272,7 @@
{27,
{2,
{1,
-{0,0,2749d7a3-7d96-4566-b2cb-5b12efd38679},"ПутьФайлаНастроек",
+{0,0,4f76189e-c2cf-4622-90cc-ea64a4a498bb},"ПутьФайлаНастроек",
{1,"ru","Путь файла настроек"},"",0,0},
{"Pattern",
{"S"}
diff --git a/src/xddTestRunner/und/a1ce7ef7-f372-4589-b899-7fbf88efa7bf b/src/xddTestRunner/und/8858e806-7f8d-47be-9a9e-ab729b336d41
similarity index 78%
rename from src/xddTestRunner/und/a1ce7ef7-f372-4589-b899-7fbf88efa7bf
rename to src/xddTestRunner/und/8858e806-7f8d-47be-9a9e-ab729b336d41
index b52326ee..3f8a2d06 100644
--- a/src/xddTestRunner/und/a1ce7ef7-f372-4589-b899-7fbf88efa7bf
+++ b/src/xddTestRunner/und/8858e806-7f8d-47be-9a9e-ab729b336d41
@@ -3,7 +3,7 @@
{0,
{12,
{1,
-{0,0,a1ce7ef7-f372-4589-b899-7fbf88efa7bf},"Форма",
+{0,0,8858e806-7f8d-47be-9a9e-ab729b336d41},"Форма",
{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,0,
{2,
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
diff --git a/src/xddTestRunner/und/b28ef09f-b7ea-4a75-a9a2-78d144076508.0/info b/src/xddTestRunner/und/b28ef09f-b7ea-4a75-a9a2-78d144076508.0/info
new file mode 100644
index 00000000..c70b5f39
--- /dev/null
+++ b/src/xddTestRunner/und/b28ef09f-b7ea-4a75-a9a2-78d144076508.0/info
@@ -0,0 +1 @@
+{3,1,0,"",0}
\ No newline at end of file
diff --git a/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1 b/src/xddTestRunner/und/b28ef09f-b7ea-4a75-a9a2-78d144076508.1
similarity index 97%
rename from src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1
rename to src/xddTestRunner/und/b28ef09f-b7ea-4a75-a9a2-78d144076508.1
index 5c07e2e9..788dba8d 100644
--- a/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1
+++ b/src/xddTestRunner/und/b28ef09f-b7ea-4a75-a9a2-78d144076508.1
@@ -4,8 +4,8 @@ cmFuc2l0aW9uYWwvL0VOIj48aHRtbD48aGVhZD48bWV0YSBjb250ZW50PSJ0ZXh0
L2h0bWw7Y2hhcnNldD11dGYtOCIgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIj48
L21ldGE+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0idjhoZWxwOi8vc2VydmljZV9ib29rL3NlcnZpY2Vfc3R5bGUiPjwvbGluaz48
-bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1TSFRNTCAxMS4wMC4xMDU3
-MC4xMDAxIj48L21ldGE+PC9oZWFkPjxib2R5Pg0KPHA+PGEgaHJlZj0iaHR0cHM6
+bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1TSFRNTCAxMS4wMC45NjAw
+LjE4NjE4Ij48L21ldGE+PC9oZWFkPjxib2R5Pg0KPHA+PGEgaHJlZj0iaHR0cHM6
Ly9naXRodWIuY29tL3hEcml2ZW5EZXZlbG9wbWVudC94VW5pdEZvcjFDL3dpa2ki
Pmh0dHBzOi8vZ2l0aHViLmNvbS94RHJpdmVuRGV2ZWxvcG1lbnQveFVuaXRGb3Ix
Qy93aWtpPC9hPjwvcD4NCjxoMT48L2gxPg0KPHA+eFVuaXRGb3IxQyAtINC90LDQ
diff --git a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f b/src/xddTestRunner/und/cf4631cb-8c17-4bb9-baa2-e262059f8239
similarity index 79%
rename from src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f
rename to src/xddTestRunner/und/cf4631cb-8c17-4bb9-baa2-e262059f8239
index 40208e9e..87c935e6 100644
--- a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f
+++ b/src/xddTestRunner/und/cf4631cb-8c17-4bb9-baa2-e262059f8239
@@ -3,7 +3,7 @@
{0,
{12,
{1,
-{0,0,ed07b230-8bf7-4423-b861-a31f23c7471f},"УправляемаяФорма",
+{0,0,cf4631cb-8c17-4bb9-baa2-e262059f8239},"УправляемаяФорма",
{1,"ru","Управляемая форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
{2,
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
diff --git a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 b/src/xddTestRunner/und/cf4631cb-8c17-4bb9-baa2-e262059f8239.0
similarity index 95%
rename from src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0
rename to src/xddTestRunner/und/cf4631cb-8c17-4bb9-baa2-e262059f8239.0
index 2b0ec7ad..5e311788 100644
--- a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0
+++ b/src/xddTestRunner/und/cf4631cb-8c17-4bb9-baa2-e262059f8239.0
@@ -2191,15 +2191,26 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
ОписанияПлагинов = Новый Соответствие;
+ ОбъектыПлагинов= Новый Массив;
+
Для Каждого ОписаниеФайла Из ЗагружаемыеФайлы Цикл
+
ФайлОбъект = Новый Файл(ОписаниеФайла.Имя);
ИмяПлагина = ФайлОбъект.ИмяБезРасширения;
- ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина);
Попытка
- ОбъектОбработки = ВнешниеОбработки.Создать(ИмяПлагина, Ложь);
- ОбъектОбработки.Инициализация(ЭтотОбъектНаСервере());
- ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов));
+
+ ДополнительнаяОбработка= ПолучитьДополнительнуюОбработкуБСП(ИмяПлагина);
+
+ Если ДополнительнаяОбработка = Неопределено Тогда
+ ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина);
+ ОбъектПлагина = ВнешниеОбработки.Создать(ИмяПлагина, Ложь);
+ Иначе
+ ОбъектПлагина= Вычислить(""ДополнительныеОтчетыИОбработкиВызовСервера.ОбъектВнешнейОбработки(ДополнительнаяОбработка)"");
+ КонецЕсли;
+
+ ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектПлагина.ОписаниеПлагина(Объект.ТипыПлагинов));
+
Исключение
Ошибка = ""Возникла ошибка при загрузке плагина: ""+ОписаниеФайла.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Сообщить(Ошибка);
@@ -2208,6 +2219,19 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
КонецЦикла;
+ // Во время инициализации плагину может понадобиться другой плагин, который ещё не загружен
+
+ ОбъектКонтекстаЯдра= ЭтотОбъектНаСервере();
+
+ Для Каждого ОбъектПлагина Из ОбъектыПлагинов Цикл
+ Попытка
+ ОбъектПлагина.Инициализация(ОбъектКонтекстаЯдра);
+ Исключение
+ Ошибка = ""Возникла ошибка при инициализации плагина: "" + ОбъектПлагина.Метаданные().Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Сообщить(Ошибка);
+ КонецПопытки;
+ КонецЦикла;
+
Возврат Новый ФиксированноеСоответствие(ОписанияПлагинов);
КонецФункции // ПодключитьПлагиныНаСервере()
@@ -2217,6 +2241,22 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
Объект.ТипыУзловДереваТестов = Плагин(""ПостроительДереваТестов"").Объект.ТипыУзловДереваТестов;
КонецПроцедуры
+&НаСервереБезКонтекста
+Функция ПолучитьДополнительнуюОбработкуБСП(ИмяВнешнейОбработки)
+ Попытка
+ ДополнительнаяОбработка= Вычислить(""Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяВнешнейОбработки)"");
+ Если ДополнительнаяОбработка.Пустая() Тогда
+ ДополнительнаяОбработка= Неопределено
+ КонецЕсли;
+ Исключение
+ ДополнительнаяОбработка= Неопределено;
+ КонецПопытки;
+ Если ДополнительнаяОбработка <> Неопределено И ДополнительнаяОбработка.ПометкаУдаления Тогда
+ ДополнительнаяОбработка= Неопределено;
+ КонецЕсли;
+ Возврат ДополнительнаяОбработка;
+КонецФункции
+
&НаКлиенте
Функция Плагин(Знач Идентификатор) Экспорт
@@ -2231,11 +2271,22 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
ИначеЕсли ОбъектПлагин = Истина Тогда
// загрузка клиентского плагина ""По требованию""
ИмяПлагина = Объект.Плагины[ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы)];
+
Попытка
Если Объект.ЭтоВстроеннаяОбработка Тогда
ОбъектПлагин = ПолучитьФорму(""Обработка."" + ДополнитьИдентификаторПрефиксомПодсистемы(ИмяПлагина, Объект.ИспользуемыйПрефиксПодсистемы) + "".Форма"", , ЭтаФорма);
Иначе
- ОбъектПлагин = ПолучитьФорму(""ВнешняяОбработка."" + ИмяПлагина + "".Форма"", , ЭтаФорма);
+
+ ДополнительнаяОбработка= ПолучитьДополнительнуюОбработкуБСП(ИмяПлагина);
+
+ Если ДополнительнаяОбработка = Неопределено Тогда
+ ИмяПодключения= ИмяПлагина;
+ Иначе
+ ИмяПодключения= Вычислить(""ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ДополнительнаяОбработка)"");
+ КонецЕсли;
+
+ ОбъектПлагин = ПолучитьФорму(""ВнешняяОбработка."" + ИмяПодключения + "".Форма"", , ЭтаФорма);
+
КонецЕсли;
Попытка
@@ -2252,11 +2303,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
КонецПопытки;
КэшФормПлагинов.Вставить(ИдентификаторБезПрефиксовПодсистемы, ОбъектПлагин);
+
Исключение
// TODO добавить поведение при отсутствии управляемой формы у плагина
ВызватьИсключение;
КонецПопытки;
-
+
+
+
КонецЕсли;
Возврат ОбъектПлагин;
@@ -3316,7 +3370,7 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
{1},0,"Объект",
{1,0},
{"Pattern",
-{"#",9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9}
+{"#",36de71ca-ee4f-4778-9ceb-2f16d2cd8b0a}
},
{0,
{0,
diff --git a/src/xddTestRunner/und/copyinfo b/src/xddTestRunner/und/copyinfo
index 48164363..0e06d4bb 100644
--- a/src/xddTestRunner/und/copyinfo
+++ b/src/xddTestRunner/und/copyinfo
@@ -1,17 +1,17 @@
{4,
{3,
-{11ad5c96-c434-4088-bf66-ddff06c57ed8,11ad5c96-c434-4088-bf66-ddff06c57ed8,1,
-{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"xddTestRunner"}
-},
-{a1ce7ef7-f372-4589-b899-7fbf88efa7bf,a1ce7ef7-f372-4589-b899-7fbf88efa7bf,1,
+{8858e806-7f8d-47be-9a9e-ab729b336d41,8858e806-7f8d-47be-9a9e-ab729b336d41,1,
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
},
-{ed07b230-8bf7-4423-b861-a31f23c7471f,ed07b230-8bf7-4423-b861-a31f23c7471f,1,
+{b28ef09f-b7ea-4a75-a9a2-78d144076508,b28ef09f-b7ea-4a75-a9a2-78d144076508,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"xddTestRunner"}
+},
+{cf4631cb-8c17-4bb9-baa2-e262059f8239,cf4631cb-8c17-4bb9-baa2-e262059f8239,1,
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"УправляемаяФорма"}
}
},
{1,
-{9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9,11ad5c96-c434-4088-bf66-ddff06c57ed8,0}
+{36de71ca-ee4f-4778-9ceb-2f16d2cd8b0a,b28ef09f-b7ea-4a75-a9a2-78d144076508,0}
},
{6,
{
diff --git a/src/xddTestRunner/und/root b/src/xddTestRunner/und/root
index 4cacd89a..4e93ca00 100644
--- a/src/xddTestRunner/und/root
+++ b/src/xddTestRunner/und/root
@@ -1 +1 @@
-{2,5070e3c3-f74b-4ecd-9756-1136a230eca2,}
\ No newline at end of file
+{2,3fc601ef-4854-4f00-bd63-f0ebdaf3d5b9,}
\ No newline at end of file
diff --git a/src/xddTestRunner/und/version b/src/xddTestRunner/und/version
index 421eee79..32619b14 100644
--- a/src/xddTestRunner/und/version
+++ b/src/xddTestRunner/und/version
@@ -1,5 +1,5 @@
{
{216,0,
-{80308,0}
+{80309,0}
}
}
\ No newline at end of file
diff --git a/src/xddTestRunner/und/versions b/src/xddTestRunner/und/versions
index 23ae2dd2..7f21fe15 100644
--- a/src/xddTestRunner/und/versions
+++ b/src/xddTestRunner/und/versions
@@ -1 +1 @@
-{1,13,"",167bf462-8ab4-4c86-a86b-8268666ad1f4,"11ad5c96-c434-4088-bf66-ddff06c57ed8.0",0d23ac0b-6b1e-4611-aa6b-8b41501bbc6f,"11ad5c96-c434-4088-bf66-ddff06c57ed8.1",cb6e1145-4486-4457-b7fb-2926909257fb,"5070e3c3-f74b-4ecd-9756-1136a230eca2",59450728-f7ab-485c-927e-22f0c59ee21c,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf",c3620363-9c21-4184-acdc-888f01289b15,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0",6b3ea77c-57a9-4f5b-aa2b-5e90f5e83621,"copyinfo",4746229a-d6c3-4721-a49c-76999063a9c7,"ed07b230-8bf7-4423-b861-a31f23c7471f",cf2bb849-ce22-4995-aa08-1d17d67e9552,"ed07b230-8bf7-4423-b861-a31f23c7471f.0",16506150-b430-4429-ad1c-5b3d117f462e,"ed07b230-8bf7-4423-b861-a31f23c7471f.1",d2376067-c9d3-4379-9abc-b96f699d83ed,"root",9373e236-f9a8-46ed-b837-50485de35c04,"version",a162087e-e228-4b28-930b-cbb78881e54b,"versions",48bee36b-a124-4c33-be98-f746042997c4}
\ No newline at end of file
+{1,12,"",fd07a09d-3637-4c1c-9c39-82944a3a2376,"3fc601ef-4854-4f00-bd63-f0ebdaf3d5b9",6d6f4ac4-ce81-4234-88e8-eb6c776ebfb3,"8858e806-7f8d-47be-9a9e-ab729b336d41",f61baa69-6449-4af4-bca7-7cb06ae8f923,"8858e806-7f8d-47be-9a9e-ab729b336d41.0",f07da2c9-826b-422f-bc1e-09b050490741,"b28ef09f-b7ea-4a75-a9a2-78d144076508.0",6c52ae1e-1cb0-4b83-a208-6fdf53af9b3e,"b28ef09f-b7ea-4a75-a9a2-78d144076508.1",45846db8-154a-48f3-a847-d22bd62d245c,"cf4631cb-8c17-4bb9-baa2-e262059f8239",fecc6103-4511-4601-a143-2edab7d7b60f,"cf4631cb-8c17-4bb9-baa2-e262059f8239.0",6ec57dfd-26ff-4b82-b4b1-8a080d41dd78,"copyinfo",d5868428-5386-470d-8cd9-4ee0d4fec632,"root",1f2c070d-0d2b-4f54-b265-de05fc452f73,"version",137a7edd-8df8-4452-afcc-1c6fc9045193,"versions",0a11ec15-9683-46d9-a49d-d6e0ee6abecb}
\ No newline at end of file
diff --git a/xddTestRunner.epf b/xddTestRunner.epf
index fde36660..7196f3aa 100644
Binary files a/xddTestRunner.epf and b/xddTestRunner.epf differ