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..b4956b09 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..5dd7faa3 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..066c98eb 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\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" "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\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" 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 554d4f73..2aad7bec 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" +++ "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,4e8e1a4a-a947-419b-95c8-58a411e3ffa4},"Форма", +{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..40d0e8af --- /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,1061 @@ +#Область Инициализация + +&НаКлиенте +Перем ЗапущенныеТестКлиенты; + +&НаКлиенте +Перем ТестируемоеОкно; + +&НаКлиенте +Перем ТестируемыйЭлемент; + +&НаКлиенте +Перем ОписаниеОшибки; + +&НаКлиенте +Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт + Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); +КонецФункции + +&НаСервере +Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) + Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); +КонецФункции + +#КонецОбласти + +#Область Интерфейс + +&НаКлиенте +Процедура ПодключитьТестКлиент_ПакетныйРежим(Параметры_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..3f4d3f81 --- /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-->9d1f8bf5-5ef4-4748-a663-d0b347155564.0 (2 408, 3 469) 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..76f04c1a --- /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 @@ +7408134e-7968-4afa-8817-05f097c6f95d.0\info-->und\7408134e-7968-4afa-8817-05f097c6f95d.0\info +7408134e-7968-4afa-8817-05f097c6f95d.0\text-->ObjectModule.bsl +9d1f8bf5-5ef4-4748-a663-d0b347155564-->und\9d1f8bf5-5ef4-4748-a663-d0b347155564 +9d1f8bf5-5ef4-4748-a663-d0b347155564.0-->und\9d1f8bf5-5ef4-4748-a663-d0b347155564.0 +a8f67215-9b4c-4a77-bea9-796f222af1d3-->und\a8f67215-9b4c-4a77-bea9-796f222af1d3 +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\321\213/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/7408134e-7968-4afa-8817-05f097c6f95d.0/info" similarity index 100% rename from "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/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/7408134e-7968-4afa-8817-05f097c6f95d.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/d75f146d-5027-4604-80fd-3b704ddd86a8" "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/9d1f8bf5-5ef4-4748-a663-d0b347155564" 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\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/9d1f8bf5-5ef4-4748-a663-d0b347155564" index cb022da1..b0453dd5 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\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/9d1f8bf5-5ef4-4748-a663-d0b347155564" @@ -3,7 +3,7 @@ {0, {12, {1, -{0,0,d75f146d-5027-4604-80fd-3b704ddd86a8},"Форма", +{0,0,9d1f8bf5-5ef4-4748-a663-d0b347155564},"Форма", {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\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/9d1f8bf5-5ef4-4748-a663-d0b347155564.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/9d1f8bf5-5ef4-4748-a663-d0b347155564.0" new file mode 100644 index 00000000..77a76c7e --- /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/9d1f8bf5-5ef4-4748-a663-d0b347155564.0" @@ -0,0 +1,3994 @@ +{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", +{"#",ff547597-0d06-49ab-bc3b-4941309ac041} +}, +{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\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/a8f67215-9b4c-4a77-bea9-796f222af1d3" "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/a8f67215-9b4c-4a77-bea9-796f222af1d3" new file mode 100644 index 00000000..83321977 --- /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/a8f67215-9b4c-4a77-bea9-796f222af1d3" @@ -0,0 +1,17 @@ +{1, +{a8f67215-9b4c-4a77-bea9-796f222af1d3},1, +{c3831ec8-d8d5-4f93-8a22-f9bfae07327f, +{1, +{4,ff547597-0d06-49ab-bc3b-4941309ac041,05d80e9c-4751-40b5-adff-03ec76f76e43, +{0, +{1, +{0,0,7408134e-7968-4afa-8817-05f097c6f95d},"МенеджерТестКлиентов", +{1,"ru","Менеджер тест клиентов"},"",0,0} +},9d1f8bf5-5ef4-4748-a663-d0b347155564,"",00000000-0000-0000-0000-000000000000},4, +{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, +{3daea016-69b7-4ed4-9453-127911372fe6,0}, +{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,9d1f8bf5-5ef4-4748-a663-d0b347155564}, +{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/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..1cb39752 --- /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, +{7408134e-7968-4afa-8817-05f097c6f95d,7408134e-7968-4afa-8817-05f097c6f95d,1, +{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"МенеджерТестКлиентов"} +}, +{9d1f8bf5-5ef4-4748-a663-d0b347155564,9d1f8bf5-5ef4-4748-a663-d0b347155564,1, +{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"} +} +}, +{1, +{ff547597-0d06-49ab-bc3b-4941309ac041,7408134e-7968-4afa-8817-05f097c6f95d,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..376b2120 --- /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,a8f67215-9b4c-4a77-bea9-796f222af1d3,} \ 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..32619b14 --- /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, +{80309,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..2ca4e113 --- /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,"",faca9353-9f10-4bc0-9b6a-3c2487937f31,"7408134e-7968-4afa-8817-05f097c6f95d.0",73f36e07-1368-4cc3-87c1-6115e2cdfebc,"9d1f8bf5-5ef4-4748-a663-d0b347155564",80c3e867-adf0-40de-8276-12c5389b1aec,"9d1f8bf5-5ef4-4748-a663-d0b347155564.0",a6bf837c-8280-4be1-a01a-1b695469b3a5,"a8f67215-9b4c-4a77-bea9-796f222af1d3",19886713-2194-4032-96c6-2577aec646df,"copyinfo",d38b5e2c-70de-4fb4-a346-a3a4355e2d71,"root",8d297cec-fe50-4a81-b827-b429079f8b76,"version",f8ec4a4f-7ba2-424f-862e-8852bd25c686,"versions",0b577ea3-eb39-4ec7-856d-1e5e782c9b55} \ 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/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\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/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\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..5e1e2ae5 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,526 @@ Результат = ПодключитьТестКлиент(ИмяПользователя, Пароль, Порт); ЗапомнитьДанныеТестКлиента(Результат, ИмяПользователя, Порт); + ПолучитьОсновноеОкно(); + Возврат Результат; КонецФункции -// } Plugin interface -// { Helpers +#КонецОбласти + +#Область ИнтерфейсАвтоматическогоТестирования + +&НаКлиенте +Функция ПолучитьОписаниеОшибки() Экспорт + Возврат ОписаниеОшибки; +КонецФункции + +&НаКлиенте +Функция ПолучитьТестируемыйЭлемент() Экспорт + Возврат ТестируемыйЭлемент; +КонецФункции + +&НаКлиенте +Функция ПолучитьТестируемоеОкно() Экспорт + Возврат ТестируемоеОкно; +КонецФункции + +&НаКлиенте +Функция ПолучитьОкно(ТекстЗаголовка, ОжиданиеСуществования= Истина) Экспорт + + ТестКлиент= ТестКлиентПоУмолчанию(); + + Если ОжиданиеСуществования Тогда + ТестируемоеОкно= ТестКлиент.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ТекстЗаголовка, , 20); + Иначе + // Несуществующее окно НайтиОбъект ищет очень долго и вызывает ошибку при последующих подключениях + ТестируемоеОкно= Неопределено; + тестируемыеОкна= ТестКлиент.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"), , , 20); + Для Каждого ТeкущееОкно Из тестируемыеОкна Цикл + Если Найти(ТeкущееОкно.Заголовок, ТекстЗаголовка) Тогда + ТестируемоеОкно= ТeкущееОкно; + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Возврат ТестируемоеОкно; + +КонецФункции + +&НаКлиенте +Функция ПолучитьОсновноеОкно() Экспорт + + ТестКлиент= ТестКлиентПоУмолчанию(); + + ОкнаТестКлиента= ТестКлиент.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"), , , 20); + + ТестируемоеОкно= Неопределено; + + Для каждого ОкноТестКлиента Из ОкнаТестКлиента Цикл + Если ОкноТестКлиента.Основное Тогда + ТестируемоеОкно= ОкноТестКлиента; + Прервать; + КонецЕсли; + КонецЦикла; + + Возврат ТестируемоеОкно; + +КонецФункции + +&НаКлиенте +Процедура ОткрытьФормуСписка(ПолноеИмяОбъектаМетаданных, ТекстЗаголовка= Неопределено) Экспорт + + ОсновноеОкно= ПолучитьОсновноеОкно(); + + ОсновноеОкно.ВыполнитьКоманду("e1cib/list/" + ПолноеИмяОбъектаМетаданных); + + Если ТекстЗаголовка <> Неопределено Тогда + ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка); + Если ТестируемоеОкно = Неопределено Тогда + ТестируемыйЭлемент= Неопределено; + Иначе + ТестируемыйЭлемент= ТестируемоеОкно.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Список", , 20); + КонецЕсли; + Иначе + ТестируемоеОкно= Неопределено; + ТестируемыйЭлемент= Неопределено; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция НайтиВСписке(СтруктураПоиска, Знач Список= Неопределено) Экспорт + + Если Список = Неопределено Тогда + Список = ТестируемыйЭлемент; + КонецЕсли; + + УбедитьсяЧтоЭтоСписок(Список); + + Если ЭтоПустойСписок(Список) Тогда + Возврат Ложь; + КонецЕсли; + + Список.ПерейтиКПервойСтроке(); + + Попытка + // Падает когда такой строки нет в списке? Платформа 8.3.10.2580 + Возврат Список.ПерейтиКСтроке(КОписаниюСтроки(СтруктураПоиска)); + Исключение + Возврат Ложь; + КонецПопытки; + +КонецФункции + +&НаКлиенте +Функция ОткрытьВСписке(ТекстЗаголовка, СтруктураПоиска= Неопределено) Экспорт + + УбедитьсяЧтоЭтоСписок(); + + Если СтруктураПоиска <> Неопределено Тогда + НайтиВСписке(КОписаниюСтроки(СтруктураПоиска)); + КонецЕсли; + + ТестируемыйЭлемент.Выбрать(); + + УстановитьТестируемоеОкно(ТекстЗаголовка); + + Возврат (ТестируемоеОкно <> Неопределено); + +КонецФункции + +&НаКлиенте +Функция КоличествоСтрокВСписке(Знач ТестСписок= Неопределено) Экспорт + + Если ТестСписок = Неопределено Тогда + ТестСписок= ТестируемыйЭлемент; + КонецЕсли; + + УбедитьсяЧтоЭтоСписок(ТестСписок); + + ТестируемыйЭлемент.ВыделитьВсеСтроки(); + ВыделенныеСтроки= ТестируемыйЭлемент.ПолучитьВыделенныеСтроки(); + + Возврат ВыделенныеСтроки.Количество(); + +КонецФункции + +&НаКлиенте +Функция ЭтотСписокПустой(КоличествоСлужебныхСтрок= 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); +КонецФункции + &НаСервере Функция ЭтотОбъектНаСервере() Возврат РеквизитФормыВЗначение("Объект"); @@ -169,7 +701,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 +729,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 +819,216 @@ КонецФункции -// } Helpers \ No newline at end of file +&НаКлиенте +Процедура УстановитьТестируемоеОкно(ТекстЗаголовка) + Если ТекстЗаголовка = Неопределено Тогда + ТестируемоеОкно= Неопределено; + Иначе + ТестируемоеОкно= ПолучитьОкно(ТекстЗаголовка); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура УбедитьсяЧтоЭтоСписок(Знач ТестСписок= Неопределено) Экспорт + + Если ТестСписок = Неопределено Тогда + ТестСписок= ТестируемыйЭлемент; + КонецЕсли; + + Если ТипЗнч(ТестСписок) <> Тип("ТестируемаяТаблицаФормы") Тогда + ВызватьИсключение "Тестируемый элемент не являяется списком"; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +// Формирует из параметра Соответствие для использования в тиовых методах поиска +// Поддерживаемые типы +// Структура +// Массив Структуры Имя, Значение +// Строка "Имя=Значение;..." +// Соответствие +// Неопределено +Функция КОписаниюСтроки(Параметр) + + ТипПараметра= ТипЗнч(Параметр); + + ОписаниеСтроки= Неопределено; + + Если ТипПараметра = Тип("Неопределено") Тогда + + ОписаниеСтроки= Новый Соответствие(); + + ИначеЕсли ТипПараметра = Тип("Соответствие") Тогда + + ОписаниеСтроки= Параметр; + + ИначеЕсли ТипПараметра = Тип("Структура") Или ТипПараметра = Тип("Массив") Тогда + + ОписаниеСтроки = Новый Соответствие(); + + Для каждого Элемент Из Параметр Цикл + ОписаниеСтроки.Вставить(Элемент.Ключ, Элемент.Значение); + КонецЦикла; + + ИначеЕсли ТипПараметра = Тип("Строка") Тогда + + ОписаниеСтроки = Новый Соответствие(); + + Пары= СтрРазделить(Параметр, ";", Истина); + + Для каждого Пара Из Пары Цикл + + ИмяЗначение= СтрРазделить(Пара, "=", Истина); + + Если ИмяЗначение.Количество() = 0 Тогда + Продолжить; + ИначеЕсли ИмяЗначение.Количество() = 1 Тогда + Значение= ""; + Иначе + Значение= ИмяЗначение[1]; + КонецЕсли; + + Попытка + ОписаниеСтроки.Вставить(ИмяЗначение[0], Значение); + Исключение + КонецПопытки; + + КонецЦикла; + + + + Иначе + + ВызватьИсключение "Неподдерживаемый тип " + ТипПараметра; + + КонецЕсли; + + Возврат ОписаниеСтроки; + +КонецФункции + +#КонецОбласти + +#Область Отладка + +&НаКлиенте +Функция СформироватьСтруктуруПоиска() + + СтруктураПоиска= Новый Массив; + + Для каждого Элемент Из Отладка_СтруктураПоиска Цикл + ЭлементПоиска= Новый Структура("Ключ,Значение,ПредставлениеТипаДанных,ЗаголовокОкнаВыбораДанных"); + ЗаполнитьЗначенияСвойств(ЭлементПоиска, Элемент); + СтруктураПоиска.Добавить(ЭлементПоиска); + КонецЦикла; + + Возврат СтруктураПоиска; + +КонецФункции + +&НаКлиенте +Процедура Отладка_Подключить(Команда) + ТестКлиентПоПараметрам(Отладка_ИмяПользователя, Отладка_Пароль, 1538); +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_Отключить(Команда) + ЗавершитьВсеТестКлиенты(); +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_ОткрытьСписок(Команда) + ОткрытьФормуСписка(Отладка_ПолноеИмя, Отладка_ТекстЗаголовка); + Если ТестируемоеОкно = Неопределено Тогда + ВызватьИсключение "Не найдено окно с заголовком " + Отладка_ПолноеИмя ; + КонецЕсли; + Если ТестируемыйЭлемент = Неопределено Тогда + ВызватьИсключение "Форма не содержит список"; + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_ОткрытьВСписке(Команда) + + СтруктураПоиска= СформироватьСтруктуруПоиска(); + + ОткрытьВСписке(Отладка_ТекстЗаголовка, Отладка_СтруктураПоиска); + +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_НайтиВСписке(Команда) + + НайтиВСписке(СформироватьСтруктуруПоиска()); + +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_ОткрытьВСпискеТекущий(Команда) + ОткрытьВСписке(Отладка_ТекстЗаголовка); +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_Провести(Команда) + Провести(Отладка_ЗакрытьПослеПроведения); +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_УстановитьОтборВСписке(Команда) + + УстановитьОтборВСписке(СформироватьСтруктуруПоиска()); + +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_ОтборВСпискеПоРегистратору(Команда) + ОтборУстановлен= УстановитьОтборВСпискеПоРегистратору(Отладка_ЗаголовокСпискаРегистратора, Отладка_ПредставлениеТипаРегистратора, СформироватьСтруктуруПоиска()); + Если ОтборУстановлен Тогда + Сообщить("Отбор установлен"); + Иначе + Сообщить(ОписаниеОшибки); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_Пауза(Команда) + Сообщить(ТекущаяДата()); + Пауза(Отладка_ЧислоСекунд); + Сообщить(ТекущаяДата()); +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_ЭтоПустойСписок(Команда) + Сообщить(ЭтоПустойСписок(ТестируемыйЭлемент)); +КонецПроцедуры + +&НаКлиенте +Процедура Отладка_Выполнить(Команда) + Выполнить(Отладка_Алгоритм); +КонецПроцедуры + +#КонецОбласти + + + + + + + + + + + + + + + + + + + + + + + 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/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\321\213/ObjectModule.bsl" index 996e8c55..b63b714b 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/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\321\213/ObjectModule.bsl" @@ -1,4 +1,47 @@  +#Область Дополнительные_внешние_отчеты_и_обработки + +Функция СведенияОВнешнейОбработке() Экспорт + + РегистрационныеДанные = Новый Структура; + + РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка"); + РегистрационныеДанные.Вставить("Наименование", ЭтотОбъект.Метаданные().Синоним); + РегистрационныеДанные.Вставить("Версия", "2.0"); + РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь); + РегистрационныеДанные.Вставить("Информация", ЭтотОбъект.Метаданные().Синоним); + + ТЗКоманды = Новый ТаблицаЗначений; + + ТЗКоманды.Колонки.Добавить("Идентификатор"); + ТЗКоманды.Колонки.Добавить("Представление"); + ТЗКоманды.Колонки.Добавить("Модификатор"); + ТЗКоманды.Колонки.Добавить("ПоказыватьОповещение"); + ТЗКоманды.Колонки.Добавить("Использование"); + + СтрокаКоманды = ТЗКоманды.Добавить(); + + СтрокаКоманды.Идентификатор = ЭтотОбъект.Метаданные().Имя; + СтрокаКоманды.Представление = ЭтотОбъект.Метаданные().Синоним; + СтрокаКоманды.ПоказыватьОповещение = Ложь; + СтрокаКоманды.Использование = "ОткрытиеФормы"; + + РегистрационныеДанные.Вставить("Команды", ТЗКоманды); + + Возврат РегистрационныеДанные; + +КонецФункции + +Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт + НастройкиВарианта = Вычислить("ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, ""ИмяВарианта"")"); +КонецПроцедуры + +Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт + Настройки.ВыводитьСуммуВыделенныхЯчеек = Истина; +КонецПроцедуры + +#КонецОбласти + // { Plugin interface Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт Результат = Новый Структура; 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..e5f44780 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-->0154ccbe-a73b-4da8-90af-9e01d33d51fa.0 (2 408, 3 442) 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/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\321\213/renames.txt" index f90a2039..f9c6db17 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/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\321\213/renames.txt" @@ -1,8 +1,8 @@ -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 +0154ccbe-a73b-4da8-90af-9e01d33d51fa-->und\0154ccbe-a73b-4da8-90af-9e01d33d51fa +0154ccbe-a73b-4da8-90af-9e01d33d51fa.0-->und\0154ccbe-a73b-4da8-90af-9e01d33d51fa.0 +9b9ff75c-1bb3-46d3-a9a9-2b070e05efe8-->und\9b9ff75c-1bb3-46d3-a9a9-2b070e05efe8 +ad68b916-1787-45d1-bd8c-1948b654d7e1.0\info-->und\ad68b916-1787-45d1-bd8c-1948b654d7e1.0\info +ad68b916-1787-45d1-bd8c-1948b654d7e1.0\text-->ObjectModule.bsl copyinfo-->und\copyinfo root-->und\root version-->und\version 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/0154ccbe-a73b-4da8-90af-9e01d33d51fa" "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/0154ccbe-a73b-4da8-90af-9e01d33d51fa" new file mode 100644 index 00000000..aba6232a --- /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\321\213/und/0154ccbe-a73b-4da8-90af-9e01d33d51fa" @@ -0,0 +1,15 @@ +{1, +{1, +{0, +{12, +{1, +{0,0,0154ccbe-a73b-4da8-90af-9e01d33d51fa},"Форма", +{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\321\213/und/0154ccbe-a73b-4da8-90af-9e01d33d51fa.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/0154ccbe-a73b-4da8-90af-9e01d33d51fa.0" new file mode 100644 index 00000000..42cd0b62 --- /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\321\213/und/0154ccbe-a73b-4da8-90af-9e01d33d51fa.0" @@ -0,0 +1,3967 @@ +{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) Экспорт + + УбедитьсяЧтоЭтоСписок(ТестируемыйЭлемент); + + Возврат ЭтоПустойСписок(ТестируемыйЭлемент, КоличествоСлужебныхСтрок); + +КонецФункции + +&НаКлиенте +Функция Провести(ЗакрытьПослеПроведения= Ложь) Экспорт + + ОписаниеОшибки= """"; + + Если ЗакрытьПослеПроведения Тогда + ИмяКнопки= ""ФормаПровестиИЗакрыть""; + Иначе + ТекстЗаголовкаКнопки= ""ФормаПровести""; + КонецЕсли; + + ЗаголовокПроводимогоОкна= ТестируемоеОкно.Заголовок; + + ТестируемаяФорма= ТестируемоеОкно.НайтиОбъект(Тип(""ТестируемаяФорма""), , , 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", +{"#",803a1027-e727-459e-8dae-c5ced5cc27e1} +}, +{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\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" "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/11c5f751-bfaf-480a-92fe-7f30023f2e9a" deleted file mode 100644 index 13bcdb4f..00000000 --- "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/11c5f751-bfaf-480a-92fe-7f30023f2e9a" +++ /dev/null @@ -1,17 +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, -{1, -{0,0,908d0aaf-e4ec-4668-8d14-3e8075d222fd},"ТестКлиенты", -{1,"ru","Тест клиенты"},"",0,0} -},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,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/9b9ff75c-1bb3-46d3-a9a9-2b070e05efe8" "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/9b9ff75c-1bb3-46d3-a9a9-2b070e05efe8" new file mode 100644 index 00000000..ec382385 --- /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\321\213/und/9b9ff75c-1bb3-46d3-a9a9-2b070e05efe8" @@ -0,0 +1,17 @@ +{1, +{9b9ff75c-1bb3-46d3-a9a9-2b070e05efe8},1, +{c3831ec8-d8d5-4f93-8a22-f9bfae07327f, +{1, +{4,803a1027-e727-459e-8dae-c5ced5cc27e1,6f21098c-21d4-49ea-82e0-5707a131b3e3, +{0, +{1, +{0,0,ad68b916-1787-45d1-bd8c-1948b654d7e1},"ТестКлиенты", +{1,"ru","Тест клиенты"},"",0,0} +},0154ccbe-a73b-4da8-90af-9e01d33d51fa,"",00000000-0000-0000-0000-000000000000},4, +{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, +{3daea016-69b7-4ed4-9453-127911372fe6,0}, +{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,0154ccbe-a73b-4da8-90af-9e01d33d51fa}, +{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,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\321\213/und/ad68b916-1787-45d1-bd8c-1948b654d7e1.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\321\213/und/ad68b916-1787-45d1-bd8c-1948b654d7e1.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\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..d2488f37 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" @@ -1,16 +1,33 @@ {4, {2, -{4e8e1a4a-a947-419b-95c8-58a411e3ffa4,4e8e1a4a-a947-419b-95c8-58a411e3ffa4,1, +{0154ccbe-a73b-4da8-90af-9e01d33d51fa,0154ccbe-a73b-4da8-90af-9e01d33d51fa,1, {d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"} }, -{908d0aaf-e4ec-4668-8d14-3e8075d222fd,908d0aaf-e4ec-4668-8d14-3e8075d222fd,1, +{ad68b916-1787-45d1-bd8c-1948b654d7e1,ad68b916-1787-45d1-bd8c-1948b654d7e1,1, {c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"ТестКлиенты"} } }, {1, -{85629dd2-6be4-49c6-9a69-13411102aa57,908d0aaf-e4ec-4668-8d14-3e8075d222fd,0} +{803a1027-e727-459e-8dae-c5ced5cc27e1,ad68b916-1787-45d1-bd8c-1948b654d7e1,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}, {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/root" "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/root" index fe2f30c4..30eb6f1d 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/root" +++ "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/root" @@ -1 +1 @@ -{2,11c5f751-bfaf-480a-92fe-7f30023f2e9a,} \ No newline at end of file +{2,9b9ff75c-1bb3-46d3-a9a9-2b070e05efe8,} \ 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..3ef8e373 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,"",9eb269b0-7289-4d20-8275-d3a28ba58e39,"0154ccbe-a73b-4da8-90af-9e01d33d51fa",46050540-9df7-4ca2-830d-9c04f0fa6656,"0154ccbe-a73b-4da8-90af-9e01d33d51fa.0",311bd970-96db-47ed-94d7-29e97aabad72,"9b9ff75c-1bb3-46d3-a9a9-2b070e05efe8",a77c9e4d-ee73-4561-8728-2c61df0b8ea1,"ad68b916-1787-45d1-bd8c-1948b654d7e1.0",63da5dba-731b-4862-b18d-5f998dc8bfab,"copyinfo",ea523838-8e70-4acd-9a90-b42da5ec2494,"root",f07773e0-f67f-4118-b0b6-1637fe7cdd3c,"version",f909d59c-dd0e-4133-a243-69793711ad42,"versions",38062e2b-a16a-4568-b6ba-b5dffde3e3c3} \ 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\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\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" similarity index 56% rename from "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" 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\217BDDForms/und/53df04de-c526-42a9-8ef6-55b2b404deed.0" index 9891b06f..91c6a3b5 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\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" @@ -48,7 +48,13 @@ },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 &НаКлиенте @@ -60,44 +66,80 @@ Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); КонецФункции +// } Plugin interface + +// { Helpers +&НаСервере +Функция ЭтотОбъектНаСервере() + Возврат РеквизитФормыВЗначение(""Объект""); +КонецФункции +// } Helpers + +// FLUENT ASSERTIONS &НаКлиенте -Процедура ПодключитьТестКлиент_ПакетныйРежим(Параметры_xddTestClient) Экспорт +Функция ПодключениеКлиентаТестирования(ИмяПользователя = """", Пароль = """", Порт = 1538) Экспорт - Если Параметры_xddTestClient.Количество() > 0 И ТипЗнч(Параметры_xddTestClient[0]) <> Тип(""ФиксированныйМассив"") Тогда - НовыйМассивПараметров = Новый Массив; - НовыйМассивПараметров.Добавить(Параметры_xddTestClient); - Параметры_xddTestClient = НовыйМассивПараметров; + ПодключитьТестКлиент(ИмяПользователя, Пароль, Порт); + + Если ТекущийКлиент = Неопределено Тогда + ПроверяемоеЗначение= СтрШаблон(""Клиент тестирования с именем пользователя %1"", ИмяПользователя); + СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ ПОДКЛЮЧЕН.""); + ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - Для Каждого ОчередныеПараметры Из Параметры_xddTestClient Цикл - Попытка - ПользовательПарольПорт = СтрРазделить(ОчередныеПараметры[0], "":""); - Если ПользовательПарольПорт.Количество() = 3 Тогда - ТестКлиент = ПодключитьТестКлиент( - ПользовательПарольПорт[0], - ПользовательПарольПорт[1], - ПользовательПарольПорт[2]); - ЗапомнитьДанныеТестКлиента(ТестКлиент, ПользовательПарольПорт[0], ПользовательПарольПорт[2]); - Иначе - ТестКлиент = ПодключитьТестКлиент(); - ЗапомнитьДанныеТестКлиента(ТестКлиент, """", """"); - КонецЕсли; - Исключение - Инфо = ИнформацияОбОшибке(); - ОписаниеОшибки = ""Ошибка подключения тест-клиента в пакетном режиме - |"" + ПодробноеПредставлениеОшибки(Инфо); - - ЗафиксироватьОшибкуВЖурналеРегистрации(""xUnitFor1C.ПодключитьТестКлиент"", ОписаниеОшибки); - Сообщить(ОписаниеОшибки, СтатусСообщения.ОченьВажное); - КонецПопытки; - КонецЦикла; + Возврат ЭтаФорма; + +КонецФункции + +&НаКлиенте +Функция ОтключениеКлиентаТестирования() Экспорт + ОтключитьТестКлиент(); + + Если ТекущийКлиент <> Неопределено Тогда + ПроверяемоеЗначение= СтрШаблон(""Клиент тестирования на порту %1"", XMLСтрока(ТекущийПорт)); + СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, ""БУДЕТ ОТКЛЮЧЕН.""); + ВызватьОшибкуПроверки(СообщениеОшибки); + КонецЕсли; + + Возврат ЭтаФорма; + +КонецФункции + +&НаКлиенте +Функция ТестНаКлиенте() Экспорт + Возврат ""Получилось.""; +КонецФункции + + +// Из УтвержденияBDD + +&НаКлиенте +Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки) + Префикс = ""[""+ СтатусыРезультатаТестирования.ОшибкаПроверки + ""]""; + ВызватьИсключение Префикс + "" "" + СообщениеОшибки; КонецПроцедуры +&НаКлиенте +Функция СформироватьСообщениеОбОшибке(Знач ПроверяемоеЗначение, Знач Ожидание) + Возврат + ""Ожидали, что проверяемое значение ("" + ПроверяемоеЗначение + "") "" + //+ ?(ФлагОтрицанияДляСообщения, "" НЕ "", "" "") + + Ожидание + //+ ФорматДСО(ДопСообщениеОшибки) + ; +КонецФункции + +// Из ТестКлиенты + &НаКлиенте Функция ПодключитьТестКлиент(ИмяПользователя = """", Пароль = """", Порт = 1538) Экспорт + Если ТекущийКлиент <> Неопределено Тогда + ОтключитьТестКлиент(); + КонецЕсли; + Результат = Неопределено; Попытка @@ -145,64 +187,65 @@ ОписаниеОшибкиСоединения); КонецЕсли; + Если Результат <> Неопределено Тогда + ТекущийКлиент= Результат; + ТекущийПорт= Порт; + Иначе + ТекущийКлиент= Неопределено; + ТекущийПорт= Неопределено; + КонецЕсли; + Возврат Результат; КонецФункции &НаКлиенте -Процедура ЗавершитьВсеТестКлиенты() Экспорт +Процедура ОтключитьТестКлиент() - Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда + Если ТекущийКлиент = Неопределено Тогда Возврат; КонецЕсли; - Для Каждого ТекЗначение Из ЗапущенныеТестКлиенты Цикл - Если ЭтоLinux() Тогда - ЗапуститьПриложение(""kill -9 `ps aux | grep -ie TESTCLIENT | grep -ie 1cv8c | awk '{print $2}'`""); - Иначе - Scr = Новый COMОбъект(""MSScriptControl.ScriptControl""); - Scr.Language = ""vbscript""; - Scr.AddCode(ТекстСкриптаЗавершитьТестКлиент(ТекЗначение.Порт)); - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - -&НаКлиенте -Функция ТестКлиентПоУмолчанию() Экспорт - - Если ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда - Возврат ЗапущенныеТестКлиенты[0].ТестКлиент; + Если ЭтоLinux() Тогда + ЗапуститьПриложение(""kill -9 `ps aux | grep -ie TESTCLIENT | grep -ie 1cv8c | awk '{print $2}'`""); + Иначе + Scr = Новый COMОбъект(""MSScriptControl.ScriptControl""); + Scr.Language = ""vbscript""; + Scr.AddCode(ТекстСкриптаЗавершитьТестКлиент(ТекущийПорт)); КонецЕсли; - Результат = ПодключитьТестКлиент(); - ЗапомнитьДанныеТестКлиента(Результат, """", """"); - - Возврат Результат; + ТекущийКлиент = Неопределено; + ТекущийПорт = Неопределено; -КонецФункции +КонецПроцедуры &НаКлиенте -Функция ТестКлиентПоПараметрам(ИмяПользователя = """", Пароль = """", Порт = 1538) Экспорт +Функция ТекстСкриптаЗавершитьТестКлиент(НомерПорта) - Результат = НайтиЗапущенныйКлиент(ИмяПользователя, Порт); - Если Результат <> Неопределено Тогда + Результат = "" + |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Строка(НомерПорта) + ""%""); КонецФункции -// } Plugin interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение(""Объект""); -КонецФункции &НаКлиенте Функция СтрокаЗапускаТестКлиента(ИмяПользователя = """", Пароль = """", Порт = """") @@ -243,55 +286,6 @@ КонецФункции -&НаКлиенте -Функция ТекстСкриптаЗавершитьТестКлиент(НомерПорта) - - Результат = "" - |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"" + НомерПорта + ""%""); - -КонецФункции - -&НаКлиенте -Функция ПолноеИмяИсполняемогоФайла() - - Возврат СтрШаблон(""%1%2%3"", - КаталогПрограммы(), - ""1cv8c"", - РасширениеИсполняемогоФайла()); - -КонецФункции - -&НаКлиенте -Функция РасширениеИсполняемогоФайла() - - Если ЭтоLinux() Тогда - Возврат """"; - Иначе - Возврат "".exe""; - КонецЕсли; - -КонецФункции - &НаКлиенте Функция ЭтоLinux() @@ -302,50 +296,18 @@ КонецФункции -&НаСервере -Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ИдентификаторГенератораОтчета, Знач ОписаниеОшибки) - ЗаписьЖурналаРегистрации(ИдентификаторГенератораОтчета, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки); -КонецПроцедуры - -&НаКлиенте -Процедура ЗапомнитьДанныеТестКлиента(ТестКлиент, ИмяПользователя, Порт) - - ДанныеТестКлиента = Новый Структура; - ДанныеТестКлиента.Вставить(""ТестКлиент"", ТестКлиент); - ДанныеТестКлиента.Вставить(""ИмяПользователя"", ИмяПользователя); - ДанныеТестКлиента.Вставить(""Порт"", Порт); - - Если ЗапущенныеТестКлиенты = Неопределено Тогда - ЗапущенныеТестКлиенты = Новый Массив; - КонецЕсли; - - ЗапущенныеТестКлиенты.Добавить(ДанныеТестКлиента); - -КонецПроцедуры - -&НаКлиенте -Функция НайтиЗапущенныйКлиент(ИмяПользователя, Порт) - - Если Не ЗначениеЗаполнено(ЗапущенныеТестКлиенты) Тогда - Возврат Неопределено; - КонецЕсли; - - Для Каждого ТекЗапущенныйКлиент Из ЗапущенныеТестКлиенты Цикл - Если ТекЗапущенныйКлиент.ИмяПользователя = ИмяПользователя - И ТекЗапущенныйКлиент.Порт = Порт Тогда - Возврат ТекЗапущенныйКлиент.ТестКлиент; - КонецЕсли; - КонецЦикла; - -КонецФункции - -// } Helpers", +СтатусыРезультатаТестирования = Новый Структура; +СтатусыРезультатаТестирования.Вставить(""ОшибкаПроверки"", ""Failed""); +СтатусыРезультатаТестирования.Вставить(""НеизвестнаяОшибка"", ""Broken""); +СтатусыРезультатаТестирования.Вставить(""ТестПропущен"", ""Pending""); +СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); +", {4,1, {9, {1},0,"Объект", {1,0}, {"Pattern", -{"#",85629dd2-6be4-49c6-9a69-13411102aa57} +{"#",0e3bdb19-dec8-4860-8554-9d05e2a33cfd} }, {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\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..9fe01845 --- /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..c27e9f39 --- /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..32619b14 --- /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, +{80309,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..a0d4e12f --- /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,"",b94a0476-a8e9-40af-81cb-73d70d6b1997,"4e93fd08-5eda-44dd-92ef-b84867283b1e",75812cad-947d-4bc6-a5b5-a628969f4da5,"8401ee62-68b8-43ea-8738-0c08cbc8c901",48e578a3-15fb-4403-a1cd-2a2915fc5b5e,"8401ee62-68b8-43ea-8738-0c08cbc8c901.0",edb42b88-7610-4b07-9ee2-b42f2129686f,"copyinfo",4284067c-a4bf-403b-9a8a-01fc241a663b,"root",5c17852d-6e31-4c03-af05-e559ca0f547d,"version",9bbae7f4-e8d9-40a2-8c52-13ddd89874f1,"versions",43317bd3-9f15-4f45-ba66-d3e226797891} \ 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..ad41c9bc --- /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,536 @@ + +#Область ИНИЦИАЛИЗАЦИЯ + +&НаКлиенте +Перем КонтекстЯдра; + +&НаКлиенте +Перем Ожидаем; + +&НаКлиенте +Перем ОжидаемФормы; + +&НаКлиенте +Перем Утверждения; + +&НаКлиенте +Перем ГенераторТестовыхДанных; + +&НаКлиенте +Перем массивТестовыхПриложений; + +&НаКлиенте +Перем ЮнитТестированиеИмя; + +&НаКлиенте +Процедура Инициализация(КонтекстЯдраПараметр) Экспорт + КонтекстЯдра = КонтекстЯдраПараметр; + ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; + Ожидаем = КонтекстЯдра.Плагин("Утверждения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" Тогда + Возврат; + КонецЕсли; + + НаборТестов.НачатьГруппу("Проверка интерфейса автоматического тестирования", Истина); + + НаборТестов.Добавить("Тест_ПодключениеКлиента", , "Подключение клиента тестирования"); + + НаборТестов.Добавить("Тест_ОткрытиеИПроведение", , "Открытие и проведение документа"); + НаборТестов.Добавить("Тест_ПроверкаДвижений", , "Проверка движений"); + + НаборТестов.Добавить("Тест_УстаовкаОтбораВСпискеПоРегистратору", , "Установка отбора в списке по регистратору"); + + НаборТестов.ДобавитьДеструктор("Тест_ОтключениеКлиента", "Оключение клиента тестирования и удаление тестовых данных"); + +КонецПроцедуры + +#КонецОбласти + +#Область ТЕСТЫ + +&НаКлиенте +Процедура Тест_ПодключениеКлиента() Экспорт + + Ожидаем.ПодключениеКлиентаТестирования("Администратор", "", 1538); + +КонецПроцедуры + +&НаКлиенте +Процедура Тест_ОткрытиеИПроведение() Экспорт + + ТестовыеДанные= ПолучитьТестовыйДокумент(); + + Ожидаем.Что(ТестовыеДанные, "Тестовые данные").Не_().ЭтоНеопределено(); + + Ожидаем + .ОткрытиеФормыСписка(ТестовыеДанные.ПолноеИмя, ТестовыеДанные.Имя) + .ПоискВСписке(Новый Структура("Номер,Дата", ТестовыеДанные.Номер, Строка(ТестовыеДанные.Дата))) + .ОткрытиеВСписке(ТестовыеДанные.Представление) + .Проведение() + ; + +КонецПроцедуры + +&НаКлиенте +Процедура Тест_ПроверкаДвижений() Экспорт + + ТестовыеДанные= ПолучитьТестовыйДокумент(); + + Ожидаем.Что(ТестовыеДанные, "Тестовые данные").Не_().ЭтоНеопределено(); + + + Ожидаем + .ОткрытиеФормыСписка("РегистрСведений.РСПодчиненныйРегистратору", "РСПодчиненный регистратору") + .УстановкаОтбораВСписке(Новый Структура("Ключ,Значение,ПредставлениеТипаДанных,ЗаголовокОкнаДанных", "Регистратор", СтрШаблон("Номер=%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\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..3d9e0e14 --- /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, 586) +Макеты\Макет.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..4c8b8c5c --- /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,740 @@ +{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"" Тогда + Возврат; + КонецЕсли; + + НаборТестов.НачатьГруппу(""Проверка интерфейса автоматического тестирования"", Истина); + + НаборТестов.Добавить(""Тест_ПодключениеКлиента"", , ""Подключение клиента тестирования""); + + НаборТестов.Добавить(""Тест_ОткрытиеИПроведение"", , ""Открытие и проведение документа""); + НаборТестов.Добавить(""Тест_ПроверкаДвижений"", , ""Проверка движений""); + + НаборТестов.Добавить(""Тест_УстаовкаОтбораВСпискеПоРегистратору"", , ""Установка отбора в списке по регистратору""); + + НаборТестов.ДобавитьДеструктор(""Тест_ОтключениеКлиента"", ""Оключение клиента тестирования и удаление тестовых данных""); + +КонецПроцедуры + +#КонецОбласти + +#Область ТЕСТЫ + +&НаКлиенте +Процедура Тест_ПодключениеКлиента() Экспорт + + Ожидаем.ПодключениеКлиентаТестирования(""Администратор"", """", 1538); + +КонецПроцедуры + +&НаКлиенте +Процедура Тест_ОткрытиеИПроведение() Экспорт + + ТестовыеДанные= ПолучитьТестовыйДокумент(); + + Ожидаем.Что(ТестовыеДанные, ""Тестовые данные"").Не_().ЭтоНеопределено(); + + Ожидаем + .ОткрытиеФормыСписка(ТестовыеДанные.ПолноеИмя, ТестовыеДанные.Имя) + .ПоискВСписке(Новый Структура(""Номер,Дата"", ТестовыеДанные.Номер, Строка(ТестовыеДанные.Дата))) + .ОткрытиеВСписке(ТестовыеДанные.Представление) + .Проведение() + ; + +КонецПроцедуры + +&НаКлиенте +Процедура Тест_ПроверкаДвижений() Экспорт + + ТестовыеДанные= ПолучитьТестовыйДокумент(); + + Ожидаем.Что(ТестовыеДанные, ""Тестовые данные"").Не_().ЭтоНеопределено(); + + + Ожидаем + .ОткрытиеФормыСписка(""РегистрСведений.РСПодчиненныйРегистратору"", ""РСПодчиненный регистратору"") + .УстановкаОтбораВСписке(Новый Структура(""Ключ,Значение,ПредставлениеТипаДанных,ЗаголовокОкнаДанных"", ""Регистратор"", СтрШаблон(""Номер=%1;Дата=%2"", ТестовыеДанные.Номер, ТестовыеДанные.Дата), ""Документ2"", ""Документ2"")) + .КоличествоСтрокВСписке(""Движения документа "" + ТестовыеДанные.Представление).Равно(ТестовыеДанные.КоличествоСтрок); + ; + +КонецПроцедуры + +&НаКлиенте +Процедура Тест_УстаовкаОтбораВСпискеПоРегистратору() Экспорт + + // перезаполняем время так как оно изменено при оперативном проведении во время предыдущих тестов + ТестовыеДанные= ПолучитьТестовыйДокумент(); + + Ожидаем.Что(ТестовыеДанные, ""Тестовые данные"").Не_().ЭтоНеопределено(); + + Ожидаем + .ОткрытиеФормыСписка(""РегистрСведений.РСПодчиненныйРегистратору"", ""РСПодчиненный регистратору"") + .УстановкаОтбораВСпискеПоРегистратору(ТестовыеДанные.ЗаголовокСписка, ТестовыеДанные.ПредставлениеТипа, СтрШаблон(""Номер=%1;Дата=%2"", ТестовыеДанные.Номер, ТестовыеДанные.Дата)) + .КоличествоСтрокВСписке(""Движения документа "" + ТестовыеДанные.Представление).Равно(ТестовыеДанные.КоличествоСтрок); + ; + +КонецПроцедуры + +&НаКлиенте +Процедура Тест_ОтключениеКлиента() Экспорт + + //УдалитьТестовыйДокумент(); + + Ожидаем.ОтключениеКлиентаТестирования(); + +КонецПроцедуры + +#КонецОбласти + +#Область ГЕНЕРАЦИЯ_ТЕСТОВЫХ_ДАННЫХ + +&НаСервере +Функция СоздатьТестовыйДокументНаСервере(СтарыйТестовыйДокумент) + + Если СтарыйТестовыйДокумент = Неопределено Тогда + + ТестовыйДокумент= Документы.Документ2.СоздатьДокумент(); + + ТестовыйДокумент.Дата= ТекущаяДата(); + ТестовыйДокумент.УстановитьНовыйНомер(); + ТестовыйДокумент.Состав.Добавить(); + ТестовыйДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный); + + Иначе + ТестовыйДокумент= СтарыйТестовыйДокумент.Ссылка.ПолучитьОбъект(); + КонецЕсли; + + + МетаданныеДокумента= ТестовыйДокумент.Метаданные(); + + ТестовыеДанные= Новый Структура; + ТестовыеДанные.Вставить(""Ссылка"", ТестовыйДокумент.Ссылка); + ТестовыеДанные.Вставить(""Номер"", ТестовыйДокумент.Номер); + ТестовыеДанные.Вставить(""Дата"", ТестовыйДокумент.Дата); + ТестовыеДанные.Вставить(""Имя"", МетаданныеДокумента.Имя); + ТестовыеДанные.Вставить(""ПолноеИмя"", МетаданныеДокумента.ПолноеИмя()); + ТестовыеДанные.Вставить(""Представление"", Строка(ТестовыйДокумент)); + ТестовыеДанные.Вставить(""КоличествоСтрок"", ТестовыйДокумент.Состав.Количество()); + //TODO: корректные описания из метаданных + ТестовыеДанные.Вставить(""ПредставлениеТипа"", МетаданныеДокумента.Имя); + ТестовыеДанные.Вставить(""ЗаголовокСписка"", МетаданныеДокумента.Имя); + + Возврат ТестовыеДанные; + +КонецФункции + +&НаКлиенте +Функция ПолучитьТестовыйДокумент() + // Тестовый документ создаём только один раз. В следующий раз только перезаполняем его данные. + ТестовыйДокумент= КонтекстЯдра.ПолучитьКонтекст(); + КонтекстЯдра.СохранитьКонтекст(СоздатьТестовыйДокументНаСервере(ТестовыйДокумент)); + Возврат КонтекстЯдра.ПолучитьКонтекст(); +КонецФункции + +&НаКлиенте +Процедура УдалитьТестовыйДокумент() + УдалитьТестовыйДокументНаСервере(КонтекстЯдра.ПолучитьКонтекст()); +КонецПроцедуры + +&НаСервере +Процедура УдалитьТестовыйДокументНаСервере(ТестовыеДанные) + Если ТестовыеДанные <> Неопределено Тогда + ТестовыеДанные.Ссылка.ПолучитьОбъект().Удалить(); + КонецЕсли; +КонецПроцедуры + +#КонецОбласти + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +", +{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..60a28b36 --- /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,"",ceebe31a-f4f7-439b-a84f-287193b8a333,"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",05f855a7-2673-4be0-96d7-d2e25ea93e83,"8401ee62-68b8-43ea-8738-0c08cbc8c901",2c22de15-7869-4422-92e8-215c9c4ddee9,"8401ee62-68b8-43ea-8738-0c08cbc8c901.0",cd5720b9-7d6d-4f54-ae08-19f132fbfa3a,"copyinfo",7ecbc3aa-6801-4a34-98c1-0c8cf1e63ca7,"ff63ef17-ca70-4e24-a81d-c333c276c114",e0b21789-b6ab-430c-af81-c02a96f7ec2c,"ff63ef17-ca70-4e24-a81d-c333c276c114.0",0dc51df3-27ed-4b02-b633-5dff31cf3ee4,"root",44725bf4-9324-424b-afa1-f1d60f3ddd1d,"version",b1a550b7-7157-4f7b-b559-8a64922731ad,"versions",65fec0ca-038a-4b19-999f-b45fa55ba661} \ 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..dad6c00a --- /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,168 @@ +&НаКлиенте +Перем ПолеЗначение; + +&НаКлиенте +Перем ОкноПриложенияНастройкаСпискаФормаНастройкаСписка; + +&НаКлиенте +Процедура Отладка(Команда) + НастройкаСписка(Подключение()); +КонецПроцедуры + +&НаКлиенте +Функция Подключение() + + ТестовоеПриложение = Новый ТестируемоеПриложение(, Порт); + ВремяОкончанияОжидания = ТекущаяДата() + 10; + Подключен = Ложь; + ОписаниеОшибкиСоединения = ""; + Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл + Попытка + ТестовоеПриложение.УстановитьСоединение(); + Подключен = Истина; + Прервать; + Исключение + ОписаниеОшибкиСоединения = ОписаниеОшибки(); + КонецПопытки; + КонецЦикла; + Если Не Подключен Тогда + ТестовоеПриложение = Неопределено; + ВызватьИсключение "Не смогли установить соединение! " + Символы.ПС + ОписаниеОшибкиСоединения; + КонецЕсли; + + Возврат ТестовоеПриложение; + +КонецФункции + +&НаКлиенте +Процедура НастройкаСписка(ТестовоеПриложение) + + ЗаголовокСписка= "РСПодчиненный регистратору"; + + ОкноПриложения= ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ЗаголовокСписка, , 30); + ФормаСписка = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"), ЗаголовокСписка); + + ЗаголовокСпискаРегистратора= "Документ2"; + ПредставлениеТипаРегистратора= "Документ2"; + + ОписаниеСтрокиРегистратора = Новый Соответствие(); + ОписаниеСтрокиРегистратора.Вставить("Дата", "28.11.2017 14:56:18"); + ОписаниеСтрокиРегистратора.Вставить("Номер", "2"); + + УстановитьОтборПоРегистратору(ТестовоеПриложение, ФормаСписка, ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, ОписаниеСтрокиРегистратора); + + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьОтборПоРегистратору(ТестовоеПриложение, ФормаСписка, ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, ОписаниеСтрокиРегистратора) + + + КнопкаНастроитьСписок = ФормаСписка.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Настроить список..."); + КнопкаНастроитьСписок.Нажать(); + + + ОкноПриложенияНастройкаСписка = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Настройка списка", , 30); + ОкноПриложенияНастройкаСпискаФормаНастройкаСписка = ОкноПриложенияНастройкаСписка.НайтиОбъект(Тип("ТестируемаяФорма"), "Настройка списка"); + + ТаблицаВыбраныеПоля= ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Отбор. Элементы"); + + ТаблицаВыбраныеПоля.Активизировать(); + + ТаблицаВыбраныеПоля.ПерейтиКПоследнейСтроке(); + + ТаблицаВыбраныеПоля.ВыделитьВсеСтроки(); + КоличествоСтрок= ТаблицаВыбраныеПоля.ПолучитьВыделенныеСтроки().Количество(); + + Пока КоличествоСтрок > 1 Цикл + + ТаблицаВыбраныеПоля.ПерейтиКПоследнейСтроке(); + ТаблицаВыбраныеПоля.УдалитьСтроку(); + + ТаблицаВыбраныеПоля.ВыделитьВсеСтроки(); + КоличествоСтрок= ТаблицаВыбраныеПоля.ПолучитьВыделенныеСтроки().Количество(); + + КонецЦикла; + + ОписаниеСтроки = Новый Соответствие(); + ОписаниеСтроки.Вставить("Представление", "Регистратор"); + ЕстьРегистратор= ТаблицаВыбраныеПоля.ПерейтиКСтроке(ОписаниеСтроки, НаправлениеПереходаКСтроке.Вниз); + + // Добавляем в отбор регистратор когда его там нет + + Если Не ЕстьРегистратор Тогда + + ТаблицаДоступныеПоля = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Доступные поля"); + + ОписаниеСтроки = Новый Соответствие(); + ОписаниеСтроки.Вставить("Доступные поля", "Регистратор"); + + ТаблицаДоступныеПоля.ПерейтиКСтроке(ОписаниеСтроки); + + ТаблицаДоступныеПоля.Выбрать(); + + КонецЕсли; + + // Переходим к регистратору + + ТаблицаОтборЭлементы = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Отбор. Элементы"); + + ТаблицаОтборЭлементы.Активизировать(); + + ОписаниеСтроки = Новый Соответствие(); + ОписаниеСтроки.Вставить("Представление", "Регистратор"); + ТаблицаОтборЭлементы.ПерейтиКСтроке(ОписаниеСтроки); + + // Устанавливаем использование когда оно не установлено + + ПолеИспользование = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "Использование"); + Если ПолеИспользование.ПолучитьПредставлениеДанных() <> "Да" Тогда + ПолеИспользование.УстановитьОтметку(); + КонецЕсли; + + ПолеЗначение = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "Значение"); + ПолеЗначение.Активизировать(); + + ТаблицаВыбраныеПоля.ИзменитьСтроку(); + + ПолеЗначение.Выбрать(); + + ОкноПриложенияВыборТипаДанных = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Выбор типа данных", , 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..66622cd2 --- /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 (368, 536) 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..1e322ff2 --- /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,653 @@ +{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},2,77ffcc29-7f2d-4223-b22f-19666e7250ba, +{33, +{10,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, +{0, +{0, +{"B",1},0} +},2,"Порт",1,0, +{1,0}, +{1,0}, +{1, +{3} +}, +{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, +{11,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, +{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},3,3},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},"&НаКлиенте +Перем ПолеЗначение; + +&НаКлиенте +Перем ОкноПриложенияНастройкаСпискаФормаНастройкаСписка; + +&НаКлиенте +Процедура Отладка(Команда) + НастройкаСписка(Подключение()); +КонецПроцедуры + +&НаКлиенте +Функция Подключение() + + ТестовоеПриложение = Новый ТестируемоеПриложение(, Порт); + ВремяОкончанияОжидания = ТекущаяДата() + 10; + Подключен = Ложь; + ОписаниеОшибкиСоединения = """"; + Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл + Попытка + ТестовоеПриложение.УстановитьСоединение(); + Подключен = Истина; + Прервать; + Исключение + ОписаниеОшибкиСоединения = ОписаниеОшибки(); + КонецПопытки; + КонецЦикла; + Если Не Подключен Тогда + ТестовоеПриложение = Неопределено; + ВызватьИсключение ""Не смогли установить соединение! "" + Символы.ПС + ОписаниеОшибкиСоединения; + КонецЕсли; + + Возврат ТестовоеПриложение; + +КонецФункции + +&НаКлиенте +Процедура НастройкаСписка(ТестовоеПриложение) + + ЗаголовокСписка= ""РСПодчиненный регистратору""; + + ОкноПриложения= ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ЗаголовокСписка, , 30); + ФормаСписка = ОкноПриложения.НайтиОбъект(Тип(""ТестируемаяФорма""), ЗаголовокСписка); + + ЗаголовокСпискаРегистратора= ""Документ2""; + ПредставлениеТипаРегистратора= ""Документ2""; + + ОписаниеСтрокиРегистратора = Новый Соответствие(); + ОписаниеСтрокиРегистратора.Вставить(""Дата"", ""28.11.2017 14:56:18""); + ОписаниеСтрокиРегистратора.Вставить(""Номер"", ""2""); + + УстановитьОтборПоРегистратору(ТестовоеПриложение, ФормаСписка, ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, ОписаниеСтрокиРегистратора); + + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьОтборПоРегистратору(ТестовоеПриложение, ФормаСписка, ЗаголовокСпискаРегистратора, ПредставлениеТипаРегистратора, ОписаниеСтрокиРегистратора) + + + КнопкаНастроитьСписок = ФормаСписка.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ""Настроить список...""); + КнопкаНастроитьСписок.Нажать(); + + + ОкноПриложенияНастройкаСписка = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ""Настройка списка"", , 30); + ОкноПриложенияНастройкаСпискаФормаНастройкаСписка = ОкноПриложенияНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяФорма""), ""Настройка списка""); + + ТаблицаВыбраныеПоля= ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), ""Отбор. Элементы""); + + ТаблицаВыбраныеПоля.Активизировать(); + + ТаблицаВыбраныеПоля.ПерейтиКПоследнейСтроке(); + + ТаблицаВыбраныеПоля.ВыделитьВсеСтроки(); + КоличествоСтрок= ТаблицаВыбраныеПоля.ПолучитьВыделенныеСтроки().Количество(); + + Пока КоличествоСтрок > 1 Цикл + + ТаблицаВыбраныеПоля.ПерейтиКПоследнейСтроке(); + ТаблицаВыбраныеПоля.УдалитьСтроку(); + + ТаблицаВыбраныеПоля.ВыделитьВсеСтроки(); + КоличествоСтрок= ТаблицаВыбраныеПоля.ПолучитьВыделенныеСтроки().Количество(); + + КонецЦикла; + + ОписаниеСтроки = Новый Соответствие(); + ОписаниеСтроки.Вставить(""Представление"", ""Регистратор""); + ЕстьРегистратор= ТаблицаВыбраныеПоля.ПерейтиКСтроке(ОписаниеСтроки, НаправлениеПереходаКСтроке.Вниз); + + // Добавляем в отбор регистратор когда его там нет + + Если Не ЕстьРегистратор Тогда + + ТаблицаДоступныеПоля = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), ""Доступные поля""); + + ОписаниеСтроки = Новый Соответствие(); + ОписаниеСтроки.Вставить(""Доступные поля"", ""Регистратор""); + + ТаблицаДоступныеПоля.ПерейтиКСтроке(ОписаниеСтроки); + + ТаблицаДоступныеПоля.Выбрать(); + + КонецЕсли; + + // Переходим к регистратору + + ТаблицаОтборЭлементы = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), ""Отбор. Элементы""); + + ТаблицаОтборЭлементы.Активизировать(); + + ОписаниеСтроки = Новый Соответствие(); + ОписаниеСтроки.Вставить(""Представление"", ""Регистратор""); + ТаблицаОтборЭлементы.ПерейтиКСтроке(ОписаниеСтроки); + + // Устанавливаем использование когда оно не установлено + + ПолеИспользование = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), ""Использование""); + Если ПолеИспользование.ПолучитьПредставлениеДанных() <> ""Да"" Тогда + ПолеИспользование.УстановитьОтметку(); + КонецЕсли; + + ПолеЗначение = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемоеПолеФормы""), ""Значение""); + ПолеЗначение.Активизировать(); + + ТаблицаВыбраныеПоля.ИзменитьСтроку(); + + ПолеЗначение.Выбрать(); + + ОкноПриложенияВыборТипаДанных = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ""Выбор типа данных"", , 30); + ОкноПриложенияВыборТипаДанныхФормаВыборТипаДанных = ОкноПриложенияВыборТипаДанных.НайтиОбъект(Тип(""ТестируемаяФорма""), ""Выбор типа данных""); + + ТаблицаТипов = ОкноПриложенияВыборТипаДанныхФормаВыборТипаДанных.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), , ""TypeTree""); + + ТаблицаТипов.Активизировать(); + + ОписаниеСтроки = Новый Соответствие(); + ОписаниеСтроки.Вставить("""", ПредставлениеТипаРегистратора); + ТаблицаТипов.ПерейтиКСтроке(ОписаниеСтроки); + + ТаблицаТипов.Выбрать(); + + ОкноПриложенияВыборРегистратора = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ЗаголовокСпискаРегистратора, , 30); + ОкноПриложенияРегистратораФормаВыборРегистратора = ОкноПриложенияВыборРегистратора.НайтиОбъект(Тип(""ТестируемаяФорма""), ЗаголовокСпискаРегистратора); + + ТаблицаДокументов= ОкноПриложенияРегистратораФормаВыборРегистратора.НайтиОбъект(Тип(""ТестируемаяТаблицаФормы""), , ""Список""); + + ТаблицаДокументов.ПерейтиКСтроке(ОписаниеСтрокиРегистратора); + + ТаблицаДокументов.Выбрать(); + + ТаблицаВыбраныеПоля.ЗакончитьРедактированиеСтроки(Ложь); + + КнопкаЗавершитьРедактирование = ОкноПриложенияНастройкаСпискаФормаНастройкаСписка.НайтиОбъект(Тип(""ТестируемаяКнопкаФормы""), ""Завершить редактирование""); + КнопкаЗавершитьРедактирование.Нажать(); + +КонецПроцедуры + + +&НаКлиенте +Процедура ВыполнитьАлгоритм(Команда) + Выполнить(ТекстАлгоритма); +КонецПроцедуры + + + + + +", +{4,3, +{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} +}, +{9, +{3},0,"Порт", +{1,1, +{"ru","Порт"} +}, +{"Pattern", +{"N",5,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} +},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..421eee79 --- /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, +{80308,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..f136b634 --- /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,"",9e2c9da5-457b-4219-821e-15b850ca80ab,"bc378f3d-a633-4358-9698-51a1f5512ba7",61e1e7bf-2a5e-4dc9-9361-31ccd49685f8,"copyinfo",29300970-feb9-4d49-bab9-b2712cdc3a77,"e6d114c2-c29a-44b2-b39f-f1af53593e3e",49e6c061-247e-4c0d-aa66-756c3fbe56b2,"e6d114c2-c29a-44b2-b39f-f1af53593e3e.0",50113184-ee89-47c3-913b-cbc0280899e6,"root",27ed52f7-b0ab-4a22-8c8e-df096c7b7693,"version",7f312c43-853a-4081-8213-0afe27246540,"versions",5e64d74b-9ffa-46ea-b2fd-14fb263f99fb} \ 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