diff --git "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML.epf" "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML.epf" index b8015328..5b00d379 100644 Binary files "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML.epf" and "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML.epf" differ diff --git "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf" "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf" index d2cc612c..1827c3e3 100644 Binary files "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf" and "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf" differ diff --git "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" index 3516fd98..65dfd7e1 100644 Binary files "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" and "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" differ diff --git "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.epf" "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.epf" index d21ca08c..791e22d7 100644 Binary files "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\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\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.epf" differ 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..ef931cce 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/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/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\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" index 6f1e463a..62cee9da 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/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\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -51,6 +51,15 @@ КонецПроцедуры // } Report generator interface +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Экспортировать(Отчет, ПолныйПутьФайла); + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + +КонецПроцедуры + + // { Helpers &НаСервере Функция ЭтотОбъектНаСервере() diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/maps.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/maps.txt" index 078d7809..b6539604 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/maps.txt" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/maps.txt" @@ -1,2 +1,2 @@ -Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 110) +Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 119) Макеты\СхемаAllure.txt-->2d3462c8-c871-442e-81a7-d457064fdf0b.0 diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" index 389d81bf..80f4d2ff 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" @@ -1,5 +1,5 @@ {3, -{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, +{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, @@ -47,7 +47,7 @@ {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}," +{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 &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -100,6 +100,15 @@ КонецПроцедуры // } Report generator interface +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Экспортировать(Отчет, ПолныйПутьФайла); + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + +КонецПроцедуры + + // { Helpers &НаСервере Функция ЭтотОбъектНаСервере() @@ -139,7 +148,8 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=} +L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ +YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} }, {0,0}, {0,0}, diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/version" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/version" index c23bfe28..421eee79 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/version" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/version" @@ -1,3 +1,5 @@ { -{216,0} +{216,0, +{80308,0} +} } \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/versions" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/versions" index 2abbd5c9..a7406f05 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/versions" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/versions" @@ -1 +1 @@ -{1,11,"",bdc3bba3-f8ac-4507-a33a-3cae0ba1f847,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",c7e94cf4-03a6-4922-8f31-169614867285,"2d3462c8-c871-442e-81a7-d457064fdf0b",a777db5b-8171-4f65-a213-81d183d088e9,"2d3462c8-c871-442e-81a7-d457064fdf0b.0",2cc75a03-ce85-4589-b2b1-abd5ceb7549e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",1f8bc025-a7ba-4519-bf4d-e9fe51d71fca,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",9ae37250-e9f2-4244-b941-32a82fc8d5d5,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",ff463e54-3ff7-45bb-bc47-7ebd2656146c,"copyinfo",894cad72-c7e4-496f-b22d-255e48e4f2e6,"root",9c5309e1-bc94-47a7-b94a-489997dcd9da,"version",9f0ad40e-eb00-4b64-965d-e3134043c4f2,"versions",0ab69ccb-5279-47fb-82d1-d02ca5f32824} \ No newline at end of file +{1,11,"",16837005-6a55-48fa-8753-d1010102e534,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",b9e7f5ab-c0e3-4a3f-a3ed-7f07c08548d1,"2d3462c8-c871-442e-81a7-d457064fdf0b",a777db5b-8171-4f65-a213-81d183d088e9,"2d3462c8-c871-442e-81a7-d457064fdf0b.0",2cc75a03-ce85-4589-b2b1-abd5ceb7549e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",f4d39e50-7912-429c-a80b-b2db45b1494f,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",24ca01a4-f995-4129-9cd4-2498bcd5037c,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",ff463e54-3ff7-45bb-bc47-7ebd2656146c,"copyinfo",26f4785c-5e79-4740-a5c8-319db7491084,"root",30ee5351-452d-4e82-af03-a3cbbd0ca6ac,"version",decba46b-aa9a-4c08-bd55-ca05f044d093,"versions",d072941b-e0ba-44aa-a019-c1be62b30326} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/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\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" index 9f00ea34..5de96054 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/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\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -35,6 +35,43 @@ КонецПроцедуры // } Report generator interface +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Если ТребуетсяАсинхроннаяЗаписьДокумента() Тогда + Отчет.НачатьЗапись(ОбработкаОповещения, ПолныйПутьФайла); + Иначе + Отчет.Записать(ПолныйПутьФайла); + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + +КонецПроцедуры + +// До 8.3.9 не контролируется метод Записать, а в 8.3.6 вообще нет метода НачатьЗапись +// +&НаКлиенте +Функция ТребуетсяАсинхроннаяЗаписьДокумента() + + СИ = Новый СистемнаяИнформация; + Версия = Сред(СИ.ВерсияПриложения,3); // сразу уберем 8. + Поз = Найти(Версия, "."); + Минор = Число(Лев(Версия, Поз-1)); + Если Минор > 3 Тогда + Возврат Истина; + КонецЕсли; + + Версия = Сред(Версия, Поз+1); + Релиз = Число(Лев(Версия, Найти(Версия, ".")-1)); + + Если Релиз > 8 Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + + // { Helpers &НаСервере Функция ЭтотОбъектНаСервере() diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl" index 8789e60a..f260126f 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl" @@ -102,6 +102,40 @@ КонецПроцедуры // } Report generator interface +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Если ТребуетсяАсинхроннаяЗаписьДокумента() Тогда + Отчет.НачатьЗапись(ОбработкаОповещения, ПолныйПутьФайла); + Иначе + Отчет.Записать(ПолныйПутьФайла); + КонецЕсли; + +КонецПроцедуры + +// До 8.3.9 не контролируется метод Записать, а в 8.3.6 вообще нет метода НачатьЗапись +// +Функция ТребуетсяАсинхроннаяЗаписьДокумента() + + СИ = Новый СистемнаяИнформация; + Версия = Сред(СИ.ВерсияПриложения,3); // сразу уберем 8. + Поз = Найти(Версия, "."); + Минор = Число(Лев(Версия, Поз-1)); + Если Минор > 3 Тогда + Возврат Истина; + КонецЕсли; + + Версия = Сред(Версия, Поз+1); + Релиз = Число(Лев(Версия, Найти(Версия, ".")-1)); + + Если Релиз > 8 Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + + // { Helpers Функция УдалитьНедопустимыеСимволыXML(Знач Результат) Позиция = НайтиНедопустимыеСимволыXML(Результат); diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt" index 8ed1072c..a7616f5f 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt" @@ -1,2 +1,2 @@ -Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 94) +Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 131) Макеты\СхемаJUnit4.txt-->00f1e100-3117-4bea-8be0-1a49b1eccdd9.0 diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" index d3c2cb60..4a8725e4 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" @@ -84,6 +84,43 @@ КонецПроцедуры // } Report generator interface +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Если ТребуетсяАсинхроннаяЗаписьДокумента() Тогда + Отчет.НачатьЗапись(ОбработкаОповещения, ПолныйПутьФайла); + Иначе + Отчет.Записать(ПолныйПутьФайла); + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + +КонецПроцедуры + +// До 8.3.9 не контролируется метод Записать, а в 8.3.6 вообще нет метода НачатьЗапись +// +&НаКлиенте +Функция ТребуетсяАсинхроннаяЗаписьДокумента() + + СИ = Новый СистемнаяИнформация; + Версия = Сред(СИ.ВерсияПриложения,3); // сразу уберем 8. + Поз = Найти(Версия, "".""); + Минор = Число(Лев(Версия, Поз-1)); + Если Минор > 3 Тогда + Возврат Истина; + КонецЕсли; + + Версия = Сред(Версия, Поз+1); + Релиз = Число(Лев(Версия, Найти(Версия, ""."")-1)); + + Если Релиз > 8 Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + + // { Helpers &НаСервере Функция ЭтотОбъектНаСервере() diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions" index 63a25993..167cd14c 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions" @@ -1 +1 @@ -{1,11,"",2e0e9d5f-b6ea-4de2-9c45-c832b42beec2,"00f1e100-3117-4bea-8be0-1a49b1eccdd9",48aa047c-ca85-44d8-8e5d-889d55fff3c9,"00f1e100-3117-4bea-8be0-1a49b1eccdd9.0",f2a83816-e7ce-489f-a797-3c122f23f602,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",34dfe043-5b35-4db2-aee0-83bc12415b0e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",fa39627e-bff3-4e1e-aeb3-d5e268d84d1a,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",e79fffdf-df29-41a2-861f-6cb38f2cc3ca,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",5d44d229-c123-4e4f-bc97-37e16127b888,"copyinfo",ba927ef7-ce67-47dc-90e3-e197c5d12150,"root",f59694fb-2573-47e2-945f-2cf40d85b803,"version",e6a3b139-28d1-40e4-9d6e-463fc9267cc5,"versions",bfb2d2c1-3015-4a00-bce4-c97b2ad11d31} \ No newline at end of file +{1,11,"",2f3429d4-6061-4b4c-9533-131a233fc3b8,"00f1e100-3117-4bea-8be0-1a49b1eccdd9",48aa047c-ca85-44d8-8e5d-889d55fff3c9,"00f1e100-3117-4bea-8be0-1a49b1eccdd9.0",f2a83816-e7ce-489f-a797-3c122f23f602,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",6b55bf4f-d4d0-4e0d-94d7-94fafe261860,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",e8fa9448-595b-469b-8371-f83d644eab2d,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",9321bdaa-2793-417f-85d7-69a0722d273e,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",5e06ff8c-5278-4684-b14f-d3604f2732d2,"copyinfo",077f2c62-2351-4544-88eb-f024c4b61098,"root",1f43fe70-91d2-4604-83d4-0abf5a9f0610,"version",fe1d9266-1e91-477c-8c69-2749cfaa977c,"versions",aa211b64-8391-4cae-99a0-fbdb36fcd86a} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/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\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" index 793020bf..cdae4a50 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/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\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -36,6 +36,12 @@ Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт ВызватьИсключение "Метод не реализован"; КонецПроцедуры + +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + ВызватьИсключение "Метод не реализован"; +КонецПроцедуры + // } Report generator interface // { Helpers diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt" index d4f72c18..6d219591 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt" @@ -1,2 +1,2 @@ -Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 75) +Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 102) Макеты\ОтчетТестирования.mxl-->e723b36e-7faa-4345-bf5b-763f60cd5663.0 diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" index 5e95c3f6..823da731 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" @@ -4,9 +4,9 @@ {1, {4,85629dd2-6be4-49c6-9a69-13411102aa57,3fdd55c8-e92e-4f99-8b28-3ba8957b50ab, {0, -{0, +{1, {0,0,908d0aaf-e4ec-4668-8d14-3e8075d222fd},"ГенераторОтчетаMXL", -{1,"ru","Генератор отчета MXL"},""} +{1,"ru","Генератор отчета MXL"},"",0,0} },4e8e1a4a-a947-419b-95c8-58a411e3ffa4,"",00000000-0000-0000-0000-000000000000},4, {2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, {3daea016-69b7-4ed4-9453-127911372fe6,1,e723b36e-7faa-4345-bf5b-763f60cd5663}, @@ -14,11 +14,11 @@ {ec6bb5e5-b7a8-4d75-bec9-658107a699cf,2, { {0, -{25, +{27, {2, -{0, +{1, {0,0,72263b85-e321-40b2-b5dc-368b036f7aaa},"ТипыУзловДереваТестов", -{1,"ru","Типы узлов дерева тестов"},""}, +{1,"ru","Типы узлов дерева тестов"},"",0,0}, {"Pattern"} },0, {0}, @@ -29,15 +29,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0} +{"S",""},0,0,0} },0}, { {0, -{25, +{27, {2, -{0, +{1, {0,0,edb4e982-95f6-4760-818c-4bcd498a85aa},"СостоянияТестов", -{1,"ru","Состояния тестов"},""}, +{1,"ru","Состояния тестов"},"",0,0}, {"Pattern"} },0, {0}, @@ -48,7 +48,7 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0} +{"S",""},0,0,0} },0} } } diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" index e9f6cd91..554d4f73 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" @@ -1,10 +1,15 @@ {1, {1, {0, -{9, -{0, +{12, +{1, {0,0,4e8e1a4a-a947-419b-95c8-58a411e3ffa4},"Форма", -{1,"ru","Форма"},""},0,1}, +{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\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" index 23d2bae6..e1fd8831 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.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,19 +14,40 @@ {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} -}," +{7,3,0,1,100}, +{0,0,0},0,0,1,0,1, +{10, +{0},0,0,0,0,"NavigatorРасширеннаяПодсказка", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0,1,0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0}," // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -64,6 +85,12 @@ Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт ВызватьИсключение ""Метод не реализован""; КонецПроцедуры + +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + ВызватьИсключение ""Метод не реализован""; +КонецПроцедуры + // } Report generator interface // { Helpers @@ -104,10 +131,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\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663" index 7dae7109..f357372e 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663" @@ -1,6 +1,6 @@ {1, {2,0, -{0, +{1, {0,0,e723b36e-7faa-4345-bf5b-763f60cd5663},"ОтчетТестирования", -{1,"ru","Отчет тестирования"},""} +{1,"ru","Отчет тестирования"},"",0,1,8eb4fad1-1fa6-403e-970f-2c12dbb43e23,3} },0} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663.0" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663.0" index 88892e35..b2f661b9 100644 Binary files "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663.0" and "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663.0" differ diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/version" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/version" index c23bfe28..421eee79 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/version" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/version" @@ -1,3 +1,5 @@ { -{216,0} +{216,0, +{80308,0} +} } \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions" index 2209dc20..4567fb3f 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions" @@ -1 +1 @@ -{1,11,"",ad4da44d-18db-4044-bcb6-26f2c8b7ceb5,"versions",3c865e0a-0b79-4972-8ced-503e27d4890c,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",fd7e0723-7b45-4de8-9d83-c3bb7f0cc5cf,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",b7fe60ea-1adf-41eb-9534-0bfa4b7bb079,"root",81927546-aaf0-4fc4-9d3e-4ce804696878,"e723b36e-7faa-4345-bf5b-763f60cd5663",7cc3d945-c911-47a6-87e8-258524a203f0,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",9df62da8-0951-4c81-a81f-483ae5a5386e,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",efd8d0f6-a0ad-4d35-91bf-8ad5cac4fc9d,"version",5634d453-9b18-462b-ab56-ee9bb15029a3,"e723b36e-7faa-4345-bf5b-763f60cd5663.0",2883c5af-b7b3-4298-81f7-72c9d2c99e57,"copyinfo",e0ca2c81-33e1-4fdc-a387-a461d9aae2b1} \ No newline at end of file +{1,11,"",744eb48d-ba7e-4641-addc-493cb2841e35,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",0e60a0d8-569e-4d53-a4d6-21172849e500,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",f2a18643-1987-48a6-8b72-0aa2ce3ffcff,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",125596df-8f41-403d-bd0a-3b7880048f5a,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",9df62da8-0951-4c81-a81f-483ae5a5386e,"copyinfo",36cbff93-938e-4e28-8556-5dac60442c7c,"e723b36e-7faa-4345-bf5b-763f60cd5663",899a8e9c-d77d-438f-b031-35b1e2af99d3,"e723b36e-7faa-4345-bf5b-763f60cd5663.0",6128ad17-8b1e-4e46-b299-bffc9c8f0f30,"root",c93f3689-889d-4045-bf56-da9ae043036d,"version",eb17c749-eabe-4e16-8732-b828069a45e7,"versions",10775454-6c00-4e0b-90a8-b10a9bdf0bf6} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.mxl" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.mxl" index 88892e35..b2f661b9 100644 Binary files "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.mxl" and "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.mxl" 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\232\320\260\321\202\320\260\320\273\320\276\320\263\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\232\320\260\321\202\320\260\320\273\320\276\320\263\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 5cc21483..d8a0ea3a 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\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\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -35,6 +35,114 @@ Возврат ДеревоТестов; КонецФункции +#Область АсинхронныйAPI + +&НаКлиенте +Функция НачатьЗагрузку(ОбработчикОповещения, КонтекстЯдра, Путь) Экспорт + + КаталогДляЗагрузки = Новый Файл(Путь); + НачатьЗагрузкуКаталога(ОбработчикОповещения, КаталогДляЗагрузки, КонтекстЯдра); + +КонецФункции + +&НаКлиенте +Процедура НачатьЗагрузкуКаталога(Знач ОбработчикОповещения, Знач КаталогДляЗагрузки, Знач КонтекстЯдра) Экспорт + + КонтейнерКаталога = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьКонтейнер(КаталогДляЗагрузки.Имя); + + ДопПараметры = Новый Структура; + ДопПараметры.Вставить("ОбработкаЗавершения", ОбработчикОповещения); + ДопПараметры.Вставить("КонтейнерКаталога", КонтейнерКаталога); + ДопПараметры.Вставить("КонтекстЯдра", КонтекстЯдра); + + Обработчик = Новый ОписаниеОповещения("ОбработкаПоискаВКорнеКаталога", ЭтаФорма, ДопПараметры); + НачатьПоискФайлов(Обработчик, КаталогДляЗагрузки.ПолноеИмя, "*", Ложь); + +КонецПроцедуры + + +&НаКлиенте +Процедура ОбработкаПоискаВКорнеКаталога(Знач НайденныеФайлы, Знач ДополнительныеПараметры) Экспорт + + Итератор = Новый Структура; + Итератор.Вставить("Коллекция", НайденныеФайлы); + Итератор.Вставить("Индекс", -1); + + Контекст = Новый Структура("Итератор, ДополнительныеПараметры", Итератор, ДополнительныеПараметры); + Контекст.Вставить("Результат", ДополнительныеПараметры.КонтейнерКаталога); + + ОбработатьОчереднойФайлНачало(Контекст); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗавершитьОбработкуНайденногоФайла(Знач ЭтоКаталог, Знач ВходящийКонтекст) Экспорт + + ОбработкаПрерыванияПользователя(); + ДополнительныеПараметры = ВходящийКонтекст.ДополнительныеПараметры; + Если ЭтоКаталог Тогда + + Сообщить( НСтр("ru = 'FIXME: Загрузка вложенных каталогов не поддерживается'") ); + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + + ИначеЕсли НРег(ДополнительныеПараметры.Файл.Расширение) = ".epf" + ИЛИ НРег(ДополнительныеПараметры.Файл.Расширение) = ".erf" Тогда + + Обработчик = Новый ОписаниеОповещения("ОбработчикЗавершенияЗагрузкиФайла", ЭтаФорма, ВходящийКонтекст); + КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; + ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); + ЗагрузчикФайла.НачатьЗагрузку(Обработчик, КонтекстЯдра, ДополнительныеПараметры.Файл.ПолноеИмя); + + Иначе + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьОчереднойФайлНачало(Знач ВходящийКонтекст) Экспорт + + Итератор = ВходящийКонтекст.Итератор; + ДополнительныеПараметры = ВходящийКонтекст.ДополнительныеПараметры; + + Итератор.Индекс = Итератор.Индекс+1; + + Если Итератор.Индекс < Итератор.Коллекция.Количество() Тогда + + ТекущийФайл = Итератор.Коллекция[Итератор.Индекс]; + ДополнительныеПараметры.Вставить("Файл", ТекущийФайл); + Обработчик = Новый ОписаниеОповещения("ЗавершитьОбработкуНайденногоФайла", ЭтаФорма, ВходящийКонтекст); + ТекущийФайл.НачатьПроверкуЭтоКаталог(Обработчик); + Иначе + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаЗавершения, ВходящийКонтекст.Результат); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикЗавершенияЗагрузкиКаталога(Знач ДеревоТестов, Знач ВходящийКонтекст) Экспорт + + // блабла + + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикЗавершенияЗагрузкиФайла(Знач ДеревоТестовФайла, Знач ВходящийКонтекст) Экспорт + + Перем Результат; + Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда + Результат = ДеревоТестовФайла.Строки[0]; + ВходящийКонтекст.ДополнительныеПараметры.КонтейнерКаталога.Строки.Добавить(Результат); + КонецЕсли; + + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + +КонецПроцедуры + +#КонецОбласти + &НаКлиенте Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); @@ -108,7 +216,13 @@ КонецЕсли; Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Результат); + Обр = Новый ОписаниеОповещения("ОкончаниеЗагрузкиТестов", ЭтаФорма); + КонтекстЯдра.НачатьЗагрузкуТестов(Обр, Описание.Идентификатор, Результат); КонецПроцедуры + +&НаКлиенте +Процедура ОкончаниеЗагрузкиТестов(Результат, Параметры) Экспорт +КонецПроцедуры + // } Вспомогательные методы \ 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\232\320\260\321\202\320\260\320\273\320\276\320\263\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\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt" index 55c1db7b..2abe29b6 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\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\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt" @@ -1 +1 @@ -Form\Форма\Форма.bsl-->b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0 (50, 163) +Form\Форма\Форма.bsl-->b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0 (50, 277) diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" index 429d8ee0..162f78ac 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" +++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" @@ -1,7 +1,7 @@ {3, -{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, +{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,0}, +{0,1,0}, {0},1, {21, {-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, @@ -36,7 +36,7 @@ {7,3,0,1,100}, {0,0,0},1, {5,0,0,3,0, -{0,0,0}, +{0,1,0}, {3,4, {0} }, @@ -47,7 +47,7 @@ {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}," +{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 &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -84,6 +84,114 @@ Возврат ДеревоТестов; КонецФункции +#Область АсинхронныйAPI + +&НаКлиенте +Функция НачатьЗагрузку(ОбработчикОповещения, КонтекстЯдра, Путь) Экспорт + + КаталогДляЗагрузки = Новый Файл(Путь); + НачатьЗагрузкуКаталога(ОбработчикОповещения, КаталогДляЗагрузки, КонтекстЯдра); + +КонецФункции + +&НаКлиенте +Процедура НачатьЗагрузкуКаталога(Знач ОбработчикОповещения, Знач КаталогДляЗагрузки, Знач КонтекстЯдра) Экспорт + + КонтейнерКаталога = КонтекстЯдра.Плагин(""ПостроительДереваТестов"").СоздатьКонтейнер(КаталогДляЗагрузки.Имя); + + ДопПараметры = Новый Структура; + ДопПараметры.Вставить(""ОбработкаЗавершения"", ОбработчикОповещения); + ДопПараметры.Вставить(""КонтейнерКаталога"", КонтейнерКаталога); + ДопПараметры.Вставить(""КонтекстЯдра"", КонтекстЯдра); + + Обработчик = Новый ОписаниеОповещения(""ОбработкаПоискаВКорнеКаталога"", ЭтаФорма, ДопПараметры); + НачатьПоискФайлов(Обработчик, КаталогДляЗагрузки.ПолноеИмя, ""*"", Ложь); + +КонецПроцедуры + + +&НаКлиенте +Процедура ОбработкаПоискаВКорнеКаталога(Знач НайденныеФайлы, Знач ДополнительныеПараметры) Экспорт + + Итератор = Новый Структура; + Итератор.Вставить(""Коллекция"", НайденныеФайлы); + Итератор.Вставить(""Индекс"", -1); + + Контекст = Новый Структура(""Итератор, ДополнительныеПараметры"", Итератор, ДополнительныеПараметры); + Контекст.Вставить(""Результат"", ДополнительныеПараметры.КонтейнерКаталога); + + ОбработатьОчереднойФайлНачало(Контекст); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗавершитьОбработкуНайденногоФайла(Знач ЭтоКаталог, Знач ВходящийКонтекст) Экспорт + + ОбработкаПрерыванияПользователя(); + ДополнительныеПараметры = ВходящийКонтекст.ДополнительныеПараметры; + Если ЭтоКаталог Тогда + + Сообщить( НСтр(""ru = 'FIXME: Загрузка вложенных каталогов не поддерживается'"") ); + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + + ИначеЕсли НРег(ДополнительныеПараметры.Файл.Расширение) = "".epf"" + ИЛИ НРег(ДополнительныеПараметры.Файл.Расширение) = "".erf"" Тогда + + Обработчик = Новый ОписаниеОповещения(""ОбработчикЗавершенияЗагрузкиФайла"", ЭтаФорма, ВходящийКонтекст); + КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; + ЗагрузчикФайла = КонтекстЯдра.Плагин(""ЗагрузчикФайла""); + ЗагрузчикФайла.НачатьЗагрузку(Обработчик, КонтекстЯдра, ДополнительныеПараметры.Файл.ПолноеИмя); + + Иначе + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьОчереднойФайлНачало(Знач ВходящийКонтекст) Экспорт + + Итератор = ВходящийКонтекст.Итератор; + ДополнительныеПараметры = ВходящийКонтекст.ДополнительныеПараметры; + + Итератор.Индекс = Итератор.Индекс+1; + + Если Итератор.Индекс < Итератор.Коллекция.Количество() Тогда + + ТекущийФайл = Итератор.Коллекция[Итератор.Индекс]; + ДополнительныеПараметры.Вставить(""Файл"", ТекущийФайл); + Обработчик = Новый ОписаниеОповещения(""ЗавершитьОбработкуНайденногоФайла"", ЭтаФорма, ВходящийКонтекст); + ТекущийФайл.НачатьПроверкуЭтоКаталог(Обработчик); + Иначе + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаЗавершения, ВходящийКонтекст.Результат); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикЗавершенияЗагрузкиКаталога(Знач ДеревоТестов, Знач ВходящийКонтекст) Экспорт + + // блабла + + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикЗавершенияЗагрузкиФайла(Знач ДеревоТестовФайла, Знач ВходящийКонтекст) Экспорт + + Перем Результат; + Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда + Результат = ДеревоТестовФайла.Строки[0]; + ВходящийКонтекст.ДополнительныеПараметры.КонтейнерКаталога.Строки.Добавить(Результат); + КонецЕсли; + + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + +КонецПроцедуры + +#КонецОбласти + &НаКлиенте Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт ЗагрузчикФайла = КонтекстЯдра.Плагин(""ЗагрузчикФайла""); @@ -157,9 +265,15 @@ КонецЕсли; Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Результат); + Обр = Новый ОписаниеОповещения(""ОкончаниеЗагрузкиТестов"", ЭтаФорма); + КонтекстЯдра.НачатьЗагрузкуТестов(Обр, Описание.Идентификатор, Результат); КонецПроцедуры + +&НаКлиенте +Процедура ОкончаниеЗагрузкиТестов(Результат, Параметры) Экспорт +КонецПроцедуры + // } Вспомогательные методы", {4,1, {9, @@ -192,7 +306,8 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=} +L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ +YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} }, {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\232\320\260\321\202\320\260\320\273\320\276\320\263\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\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/version" index c23bfe28..421eee79 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\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\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/version" @@ -1,3 +1,5 @@ { -{216,0} +{216,0, +{80308,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\232\320\260\321\202\320\260\320\273\320\276\320\263\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\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions" index 3c03adb6..e3e3efbb 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\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\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions" @@ -1 +1 @@ -{1,9,"",e4ffcf1d-bf2c-42b5-80c8-e5c0b41a618e,"47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0",0d6b4738-4f50-4922-b033-bc63f2bca2e0,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4",807bfdcf-165f-4351-bc57-33787ff37ee1,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0",242bec23-3eb3-4427-9e6c-d232f1a19ab0,"copyinfo",1d621b95-91da-4f72-978f-c90fd592064c,"d8b3f25c-4b0c-4bad-8a2e-f7cf4018a448",3389934a-7ca4-47a8-8075-84c55bc1ddec,"root",f9e7b43d-eb51-4d0c-8c1d-872a828f9ea0,"version",69156a4b-7f9c-4bcb-9d19-028d29621911,"versions",b0ec16f9-dab0-4d6d-a357-e9a4a58cb927} \ No newline at end of file +{1,9,"",c00a6a60-0b62-45e1-a9c2-fab7ac80a13d,"47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0",0d6b4738-4f50-4922-b033-bc63f2bca2e0,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4",43bc278c-2c88-4d16-998b-6117948b238f,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0",3879501c-3db3-426d-9cdd-3e7be8c98917,"copyinfo",f1e4c933-455b-44cd-9be8-4c1448196ff3,"d8b3f25c-4b0c-4bad-8a2e-f7cf4018a448",df69dbc2-c657-46e3-bee9-4cd20658dae2,"root",05f12450-d6ae-4291-866c-aa1122bd6956,"version",f71e63e5-1f09-4a41-ac6c-2894c0f2dbad,"versions",6f7a38ce-ab93-4986-9102-bc946016dc73} \ 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/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..8df3f461 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" @@ -8,6 +8,9 @@ &НаКлиенте Перем ТекущаяГруппа; +&НаКлиенте +Перем ВырубитьКЧертямСинхронныеПроверки; + // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -40,6 +43,59 @@ КонецФункции +#Область АсинхронныйAPI + +&НаКлиенте +Процедура НачатьЗагрузку(Знач ОбработчикОповещения, Знач КонтекстЯдра, Знач Путь) Экспорт + + ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; + + ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); + ДеревоТестов = Неопределено; + + // TODO: Поддержать цикл по нескольким файлам в Пути + ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, 1)); + + Если ДеревоТестов = Неопределено Тогда + ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь); + КонецЕсли; + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить("ФайлОбработки", ФайлОбработки); + ПараметрыОповещения.Вставить("ПостроительДереваТестов", ПостроительДереваТестов); + ПараметрыОповещения.Вставить("ДеревоТестов", ДеревоТестов); + ПараметрыОповещения.Вставить("ОбработчикОповещения", ОбработчикОповещения); + ПараметрыОповещения.Вставить("КонтекстЯдра", КонтекстЯдра); + + Обработчик = Новый ОписаниеОповещения("ЗагрузкаВнешнейОбработкиЗавершение", ЭтаФорма, ПараметрыОповещения); + КонтекстЯдра.НачатьПодключениеВнешнейбработки(Обработчик, ФайлОбработки); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаВнешнейОбработкиЗавершение(Знач Результат, Знач ДополнительныеПараметры) Экспорт + + ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; + ПостроительДереваТестов = ДополнительныеПараметры.ПостроительДереваТестов; + ДеревоТестов = ДополнительныеПараметры.ДеревоТестов; + КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; + + КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя); + КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки, КонтекстЯдра); + Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда + КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); + КонецЕсли; + Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда + ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки); + КонецЕсли; + + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработчикОповещения, ДеревоТестов); + +КонецПроцедуры + + +#КонецОбласти + &НаКлиенте Функция Загрузить(КонтекстЯдра, Путь) Экспорт @@ -109,6 +165,11 @@ &НаКлиенте Процедура ПроверитьКорректностьФайла(Файл) + + Если ВыключитьСинхронныеПроверки() Тогда + Возврат; + КонецЕсли; + Если Не Файл.Существует() Тогда ВызватьИсключение "Переданный файл не существует файл <" + Файл.ПолноеИмя + ">"; КонецЕсли; @@ -117,6 +178,29 @@ КонецЕсли; КонецПроцедуры +&НаКлиенте +Функция ВыключитьСинхронныеПроверки() + + Если ВырубитьКЧертямСинхронныеПроверки = Неопределено Тогда + + ВырубитьКЧертямСинхронныеПроверки = ЗапрещеныСинхронныеВызовы(); + + КонецЕсли; + + Возврат ВырубитьКЧертямСинхронныеПроверки; + +КонецФункции + +&НаСервереБезКонтекста +Функция ЗапрещеныСинхронныеВызовы() + Если Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.НеИспользовать Тогда + Возврат Истина; + Иначе + Возврат Ложь; + КонецЕсли; +КонецФункции + + &НаСервере Функция ЗагрузитьФайлНаСервере(ПолныйПутьКОбработкеНаКлиенте) 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..676623d6 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-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (50, 560) 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/d75f146d-5027-4604-80fd-3b704ddd86a8.0" index 6f15732c..daeb857c 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/d75f146d-5027-4604-80fd-3b704ddd86a8.0" @@ -57,6 +57,9 @@ &НаКлиенте Перем ТекущаяГруппа; +&НаКлиенте +Перем ВырубитьКЧертямСинхронныеПроверки; + // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -89,6 +92,59 @@ КонецФункции +#Область АсинхронныйAPI + +&НаКлиенте +Процедура НачатьЗагрузку(Знач ОбработчикОповещения, Знач КонтекстЯдра, Знач Путь) Экспорт + + ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; + + ПостроительДереваТестов = КонтекстЯдра.Плагин(""ПостроительДереваТестов""); + ДеревоТестов = Неопределено; + + // TODO: Поддержать цикл по нескольким файлам в Пути + ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, 1)); + + Если ДеревоТестов = Неопределено Тогда + ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь); + КонецЕсли; + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить(""ФайлОбработки"", ФайлОбработки); + ПараметрыОповещения.Вставить(""ПостроительДереваТестов"", ПостроительДереваТестов); + ПараметрыОповещения.Вставить(""ДеревоТестов"", ДеревоТестов); + ПараметрыОповещения.Вставить(""ОбработчикОповещения"", ОбработчикОповещения); + ПараметрыОповещения.Вставить(""КонтекстЯдра"", КонтекстЯдра); + + Обработчик = Новый ОписаниеОповещения(""ЗагрузкаВнешнейОбработкиЗавершение"", ЭтаФорма, ПараметрыОповещения); + КонтекстЯдра.НачатьПодключениеВнешнейбработки(Обработчик, ФайлОбработки); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаВнешнейОбработкиЗавершение(Знач Результат, Знач ДополнительныеПараметры) Экспорт + + ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; + ПостроительДереваТестов = ДополнительныеПараметры.ПостроительДереваТестов; + ДеревоТестов = ДополнительныеПараметры.ДеревоТестов; + КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; + + КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя); + КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки, КонтекстЯдра); + Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда + КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); + КонецЕсли; + Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда + ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки); + КонецЕсли; + + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработчикОповещения, ДеревоТестов); + +КонецПроцедуры + + +#КонецОбласти + &НаКлиенте Функция Загрузить(КонтекстЯдра, Путь) Экспорт @@ -158,6 +214,11 @@ &НаКлиенте Процедура ПроверитьКорректностьФайла(Файл) + + Если ВыключитьСинхронныеПроверки() Тогда + Возврат; + КонецЕсли; + Если Не Файл.Существует() Тогда ВызватьИсключение ""Переданный файл не существует файл <"" + Файл.ПолноеИмя + "">""; КонецЕсли; @@ -166,6 +227,29 @@ КонецЕсли; КонецПроцедуры +&НаКлиенте +Функция ВыключитьСинхронныеПроверки() + + Если ВырубитьКЧертямСинхронныеПроверки = Неопределено Тогда + + ВырубитьКЧертямСинхронныеПроверки = ЗапрещеныСинхронныеВызовы(); + + КонецЕсли; + + Возврат ВырубитьКЧертямСинхронныеПроверки; + +КонецФункции + +&НаСервереБезКонтекста +Функция ЗапрещеныСинхронныеВызовы() + Если Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.НеИспользовать Тогда + Возврат Истина; + Иначе + Возврат Ложь; + КонецЕсли; +КонецФункции + + &НаСервере Функция ЗагрузитьФайлНаСервере(ПолныйПутьКОбработкеНаКлиенте) 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..3a260779 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,"",11da5058-994b-4803-a033-9dd5f01b492c,"51efd65a-ed36-4be7-a563-89b34ebfa851",7465e2c6-6f39-4d7c-a36c-1ae67fcf047b,"copyinfo",90af3dde-86cc-4eb1-b62f-e5c6055c88ef,"d75f146d-5027-4604-80fd-3b704ddd86a8",76b69016-57d5-4d94-aff0-7f9dc1aa5d34,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",85b5a2ee-bd67-469e-bedc-edbb7524a010,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",25fb5d31-d05b-4d6e-a186-e2c266de36c8,"root",974eeeda-449b-4134-893f-07fdacbfc00e,"version",47a4cec7-0deb-4976-9f7f-e3c4b64f0e4e,"versions",3d269ad0-d78c-4fa1-83b8-44e1a2169482} \ 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 cf04116e..6e502e23 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" @@ -3,6 +3,10 @@ &НаКлиенте Перем ПодключенныеВнешниеОбработки; +&НаКлиенте +Перем мСинхронныйРежимРазрешен; + + // { События формы &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -20,7 +24,13 @@ &НаКлиенте Процедура ПриОткрытии() + ЗагрузитьПлагины(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаПлагиновЗавершение() Экспорт КэшироватьПеречисленияПлагинов(); СброситьПодключенныеВнешниеОбработки(); @@ -32,6 +42,23 @@ КонецЕсли; КонецПроцедуры +&НаКлиенте +Функция СинхронныйРежимРазрешен() + Если мСинхронныйРежимРазрешен = Неопределено Тогда + мСинхронныйРежимРазрешен = ОпределитьВозможностьСинхронныхВызовов(); + КонецЕсли; + + Возврат мСинхронныйРежимРазрешен; +КонецФункции + +&НаСервереБезКонтекста +Функция ОпределитьВозможностьСинхронныхВызовов() + + Запрет = Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.НеИспользовать; + Возврат Не Запрет; + +КонецФункции + &НаКлиенте Процедура ПриЗакрытии() @@ -189,40 +216,69 @@ Для Каждого Плагин Из Объект.Плагины Цикл КэшФормПлагинов.Вставить(Плагин.Ключ, Истина); КонецЦикла; + + ДобавитьКомандыЗагрузчиковНаФорме(); + ЗагрузкаПлагиновЗавершение(); + Иначе КаталогПлагинов = ПолучитьПутьКПлагинам(); - НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь); - ПомещаемыеФайлы = Новый Массив; - ИдентификаторыПлагинов = Новый Соответствие; - Для каждого ФайлОбработки Из НайденныеФайлы Цикл - - ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); - ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - - ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - - КонецЦикла; + ОбработчикПоискаКлиентскихПлагинов = Новый ОписаниеОповещения("ОбработчикПоискаКлиентскихПлагинов", ЭтаФорма); + НачатьПоискФайлов(ОбработчикПоискаКлиентскихПлагинов, КаталогПлагинов, "*.epf", Ложь); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикПоискаКлиентскихПлагинов(Знач НайденныеФайлы, Знач ДополнительныеПараметры) Экспорт + + ПомещаемыеФайлы = Новый Массив; + ИдентификаторыПлагинов = Новый Соответствие; + Для каждого ФайлОбработки Из НайденныеФайлы Цикл - ЗагруженныеФайлы = Новый Массив; - Если ПомещаемыеФайлы.Количество() Тогда - ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор); - КонецЕсли; + ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); + ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); + ИмяПлагина = ФайлОбработки.ИмяБезРасширения; + ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл - ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - - ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; - Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); - КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); - - КонецЦикла; + КонецЦикла; + + Если ПомещаемыеФайлы.Количество() Тогда + ПараметрыЗавершения = Новый Структура("ИдентификаторыПлагинов", ИдентификаторыПлагинов); + НачатьПомещениеФайлов(Новый ОписаниеОповещения("ОбработчикПоискаКлиентскихПлагиновЗавершение", ЭтаФорма, ПараметрыЗавершения), + ПомещаемыеФайлы,,Ложь,ЭтаФорма.УникальныйИдентификатор); + Иначе + ПодключитьНайденныеКлиентскиеПлагиныНаСервере(Новый Массив, ИдентификаторыПлагинов); КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикПоискаКлиентскихПлагиновЗавершение(Знач ПомещенныеФайлы, Знач ДополнительныеПараметры) Экспорт + + ПодключитьНайденныеКлиентскиеПлагиныНаСервере(ПомещенныеФайлы, ДополнительныеПараметры.ИдентификаторыПлагинов); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодключитьНайденныеКлиентскиеПлагиныНаСервере(Знач ЗагруженныеФайлы, Знач ИдентификаторыПлагинов) + + Перем ЗагруженныйФайл, ИмяПлагина, ОписаниеПлагина, ОписанияПлагинов; + + ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); + + Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл + ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - ДобавитьКомандыЗагрузчиковНаФорме(); + ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; + Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); + КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); + + КонецЦикла; + ДобавитьКомандыЗагрузчиковНаФорме(); + ЗагрузкаПлагиновЗавершение(); + КонецПроцедуры &НаСервере @@ -851,7 +907,6 @@ // { Пакетный запуск &НаКлиенте Процедура ВыполнитьПакетныйЗапуск(Знач ПараметрЗапуска) - Перем РезультатыТестирования; ПарсерКоманднойСтроки = ЭтаФорма.Плагин("ПарсерКоманднойСтроки"); ПараметрыЗапуска = ПарсерКоманднойСтроки.Разобрать(ПараметрЗапуска); @@ -863,26 +918,196 @@ Объект.ПутьФайлаНастроек = Параметры_xddConfig[0]; КонецЕсли; - Параметры_xddRun = Неопределено; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddRun, Параметры_xddRun) Тогда - РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun); + НастройкиШагов = Новый Структура; + НастройкиШагов.Вставить("Параметры_xddRun"); + НастройкиШагов.Вставить("Параметры_xddReport"); + НастройкиШагов.Вставить("xddShutdown"); + + ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, НастройкиШагов.Параметры_xddRun); + ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, НастройкиШагов.Параметры_xddReport); + НастройкиШагов.xddShutdown = ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown); + + Если СинхронныйРежимРазрешен() Тогда + ВыполнитьПакетныйЗапускСинхронно(НастройкиШагов); + Иначе + ВыполнитьПакетныйЗапускАсинхронно(НастройкиШагов) КонецЕсли; - Параметры_xddReport = Неопределено; - Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда - СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования); +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПакетныйЗапускСинхронно(Знач ПараметрыЗапуска) + + Перем РезультатыТестирования; + + Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда + РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(ПараметрЗапуска.Параметры_xddRun); КонецЕсли; - Параметры_xddExitCodePath = Неопределено; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddExitCodePath, Параметры_xddExitCodePath) Тогда - СформироватьФайлКодаВозврата(Параметры_xddExitCodePath, РезультатыТестирования); + Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрЗапуска.Параметры_xddReport <> Неопределено Тогда + СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(ПараметрЗапуска.Параметры_xddReport, РезультатыТестирования); КонецЕсли; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда + Если ПараметрЗапуска.xddShutdown = Истина Тогда + //Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда ЗавершитьРаботуСистемы(Ложь); КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПакетныйЗапускАсинхронно(Знач ПараметрыЗапуска) + + Состояние = Новый Структура; + Состояние.Вставить("НастройкиШагов", ПараметрыЗапуска); + Состояние.Вставить("СледующийШаг"); + Состояние.Вставить("ТекущийШаг"); + + Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда + Состояние.СледующийШаг = "ЗагрузитьТесты"; + ИначеЕсли ПараметрЗапуска.xddShutdown = Истина Тогда + Состояние.СледующийШаг = "ЗавершитьРаботу"; + Иначе + ВызватьИсключение НСтр("ru = 'xUnit: Я не знаю что мне делать. Нет приказа на выполнение тестов или закрытие.'"); + КонецЕсли; + + ВыполнитьШагПакетногоЗапуска(, Состояние); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьШагПакетногоЗапуска(Знач РезультатПредыдущегоШага, Знач Состояние) Экспорт + + ОбработкаОповещения = Новый ОписаниеОповещения("ВыполнитьШагПакетногоЗапуска", ЭтаФорма, Состояние, "ВыполнитьШагПакетногоЗапускаИсключение", ЭтаФорма); + + Состояние.ТекущийШаг = Состояние.СледующийШаг; + Если Состояние.СледующийШаг = "ЗагрузитьТесты" Тогда + НачатьЗагрузкуТестовПакетныйРежим(ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = "ЗапуститьТесты" Тогда + НачатьВыполнениеТестов(РезультатПредыдущегоШага, ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = "СоставитьОтчет" Тогда + СоставитьОтчетОТестировании(РезультатПредыдущегоШага, ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = "ЗавершитьРаботу" Тогда + ЗавершитьРаботуСистемы(Ложь); + КонецЕсли; + +КонецПроцедуры // ВыполнитьШагПакетногоЗапуска() + +&НаКлиенте +Процедура ВыполнитьШагПакетногоЗапускаИсключение(Знач ИнформацияОбОшибке, СтандартнаяОбработка, Знач Состояние) Экспорт + + СтандартнаяОбработка = Ложь; + + ТекстОшибки = "Ошибка при асинхронном режиме пакетного запуска: + |Состояние: + | Текущий шаг: %1 + | Следующий шаг:%2 + | Исключение: %3"; + + // для унылых ретроградов, применяющих < 8.3.6 - придется без СтрШаблон + ТекстОшибки = СтрЗаменить(ТекстОшибки, "%1", Состояние.ТекущийШаг); + ТекстОшибки = СтрЗаменить(ТекстОшибки, "%2", Состояние.СледующийШаг); + ТекстОшибки = СтрЗаменить(ТекстОшибки, "%3", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + + ЗафиксироватьОшибкуВЖурналеРегистрации("xUnitFor1C.АсинхронныйПакетныйЗапуск", ТекстОшибки); + Сообщить(ТекстОшибки, СтатусСообщения.ОченьВажное); +КонецПроцедуры + +&НаКлиенте +Процедура НачатьЗагрузкуТестовПакетныйРежим(Знач ОбработкаОповещения); + Параметры_xddRun = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddRun; + ИдентификаторЗагрузчика = Параметры_xddRun[0]; + Загрузчик = ЭтаФорма.Плагин(ИдентификаторЗагрузчика); + + ПутьКТестам = Параметры_xddRun[1]; + + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗапуститьТесты"; + ОбработкаОповещения.ДополнительныеПараметры.Вставить("Загрузчик", Загрузчик); + Загрузчик.НачатьЗагрузку(ОбработкаОповещения, ЭтаФорма, ПутьКТестам); +КонецПроцедуры + +&НаКлиенте +Процедура НачатьВыполнениеТестов(ДеревоТестовОтЗагрузчика, ОбработкаОповещения) + + Загрузчик = ОбработкаОповещения.ДополнительныеПараметры.Загрузчик; + РезультатыТестирования = ЭтаФорма.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика); + + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "СоставитьОтчет"; + ВыполнитьОбработкуОповещения(ОбработкаОповещения, РезультатыТестирования); + +КонецПроцедуры + +&НаКлиенте +Процедура СоставитьОтчетОТестировании(РезультатыТестирования, ОбработкаОповещения) + + Параметры_xddReport = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddReport; + Если Не ЗначениеЗаполнено(РезультатыТестирования) или Параметры_xddReport = Неопределено Тогда + // Отчет не нужен + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗавершитьРаботу"; + ВыполнитьОбработкуОповещения(ОбработкаОповещения, Неопределено); + Возврат; + КонецЕсли; + + Если Параметры_xddReport.Количество() > 0 И ТипЗнч(Параметры_xddReport[0]) <> Тип("ФиксированныйМассив") Тогда + НовыйМассивПараметров = Новый Массив; + НовыйМассивПараметров.Добавить(Параметры_xddReport); + Параметры_xddReport = НовыйМассивПараметров; + КонецЕсли; + + ЭкспортируемыеОтчеты = Новый Массив; + + Для Каждого ОчередныеПараметры Из Параметры_xddReport Цикл + + ИдентификаторГенератораОтчета = ОчередныеПараметры[0]; + ГенераторОтчета = ЭтаФорма.Плагин(ИдентификаторГенератораОтчета); + Отчет = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования); + ПутьКОтчету = ОчередныеПараметры[1]; + + СтрокаЭкспорта = СтрокаЭкспортируемыхОтчетов(); + СтрокаЭкспорта.Отчет = Отчет; + СтрокаЭкспорта.Путь = ПутьКОтчету; + СтрокаЭкспорта.ГенераторОтчета = ГенераторОтчета; + + ЭкспортируемыеОтчеты.Добавить(СтрокаЭкспорта); + + КонецЦикла; + + ПараметрыДиспетчера = Новый Структура; + ПараметрыДиспетчера.Вставить("ИндексОтчета", 0); + ПараметрыДиспетчера.Вставить("СписокОтчетов", ЭкспортируемыеОтчеты); + ПараметрыДиспетчера.Вставить("Финализация", ОбработкаОповещения); + + ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(, ПараметрыДиспетчера); + +КонецПроцедуры + +&НаКлиенте +Функция СтрокаЭкспортируемыхОтчетов() + Возврат Новый Структура("Отчет,Путь,ГенераторОтчета"); +КонецФункции + + +&НаКлиенте +Процедура ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(Знач РезультатЭкспорта, Знач ПараметрыДиспетчера) Экспорт + + СписокОтчетов = ПараметрыДиспетчера.СписокОтчетов; + Если СписокОтчетов.Количество() > ПараметрыДиспетчера.ИндексОтчета Тогда + СтрокаЭкспорта = СписокОтчетов[ПараметрыДиспетчера.ИндексОтчета]; + ГенераторОтчета = СтрокаЭкспорта.генераторОтчета; + + ПараметрыДиспетчера.ИндексОтчета = ПараметрыДиспетчера.ИндексОтчета + 1; + ОбработчикЭкспорта = Новый ОписаниеОповещения("ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим", ЭтаФорма, ПараметрыДиспетчера, + "ВыполнитьШагПакетногоЗапускаИсключение", ЭтаФорма); + ГенераторОтчета.НачатьЭкспорт(ОбработчикЭкспорта, СтрокаЭкспорта.Отчет, СтрокаЭкспорта.Путь); + Иначе + ОбработкаОповещения = ПараметрыДиспетчера.Финализация; + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗавершитьРаботу"; + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + КонецПроцедуры + &НаКлиенте Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun) Попытка @@ -1005,7 +1230,7 @@ // { Внешние интерфейсные инструменты &НаКлиенте -Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = "", Знач ИмяФормы = "Форма") +Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = "", Знач ИмяФормыИнструмента = "Форма") Перем АдресХранилища; // Для встроенного в состав конфигурации браузера тестов @@ -1016,7 +1241,7 @@ ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя"; КонецЕсли; ИмяИнструмента = ДополнитьИдентификаторПрефиксомПодсистемы(ИмяИнструмента, Объект.ИспользуемыйПрефиксПодсистемы); - ФормаИнструмента = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы); + ФормаИнструмента = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормыИнструмента); ФормаИнструмента.Открыть(); ФормаИнструмента = Неопределено; @@ -1028,17 +1253,30 @@ КонецЕсли; ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf"; ФайлИнструмента = Новый Файл(ПутьИнструмента); - Если Не ФайлИнструмента.Существует() Тогда - Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); - Возврат; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормыИнструмента", ИмяИнструмента, ИмяФормы)); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + ФайлИнструмента.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ОткрытьИнструментЗавершение1", ЭтаФорма, Новый Структура("АдресХранилища, ИмяИнструмента, ИмяФормыИнструмента, ФайлИнструмента", АдресХранилища, ИмяИнструмента, ИмяФормыИнструмента, ФайлИнструмента))); КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ОткрытьИнструментЗавершение1(Существует, ДополнительныеПараметры) Экспорт + + АдресХранилища = ДополнительныеПараметры.АдресХранилища; + ИмяИнструмента = ДополнительныеПараметры.ИмяИнструмента; + ИмяФормыИнструмента = ДополнительныеПараметры.ИмяФормыИнструмента; + ФайлИнструмента = ДополнительныеПараметры.ФайлИнструмента; + + + Если Не Существует Тогда + Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); + Возврат; + КонецЕсли; + + Оповещение = Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормыИнструмента", ИмяИнструмента, ИмяФормыИнструмента)); + НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + +КонецПроцедуры + &НаКлиенте Функция ПолучитьПутьКПлагинам() // Для встроенного в состав конфигурации браузера тестов @@ -1072,6 +1310,66 @@ КонецЕсли; КонецПроцедуры +#Область АсинхронныйAPI + +&НаКлиенте +Процедура НачатьПодключениеВнешнейбработки(Знач ОбработкаОповещения, Знач ФайлОбработки) Экспорт + + Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда + ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf"); + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить("ФайлОбработки", ФайлОбработки); + ПараметрыОповещения.Вставить("ЭтоОтчет", ЭтоОтчет); + ПараметрыОповещения.Вставить("ОбработкаЗавершения", ОбработкаОповещения); + + АдресХранилища = ""; + Оп = Новый ОписаниеОповещения("ПодключитьВнешнююОбработкуЗавершение", ЭтаФорма, ПараметрыОповещения); + НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + Иначе + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НачатьЗагрузкуТестов(Знач ОбработкаОповещения, Знач ИдентификаторВыбранногоЗагрузчика, Знач Путь) Экспорт + + ИнициализироватьИндикаторВыполнения(); + + ЭтаФорма.ИдентификаторЗагрузчика = ИдентификаторВыбранногоЗагрузчика; + ФормаЗагрузчика = Плагин(ИдентификаторВыбранногоЗагрузчика); + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ОбработкаОповещения", ОбработкаОповещения); + ДополнительныеПараметры.Вставить("ИдентификаторВыбранногоЗагрузчика", ИдентификаторВыбранногоЗагрузчика); + ДополнительныеПараметры.Вставить("Путь", Путь); + Обработчик = Новый ОписаниеОповещения("ЗагрузкаТестовЗавершение", ЭтаФорма, ДополнительныеПараметры); + ФормаЗагрузчика.НачатьЗагрузку(Обработчик, ЭтаФорма, Путь); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаТестовЗавершение(Знач ДеревоОтЗагрузчика, Знач ДополнительныеПараметры) Экспорт + + ЭтаФорма.ДеревоОтЗагрузчика = ДеревоОтЗагрузчика; + ЭлементыДереваТестов = ЭтаФорма.ДеревоТестов.ПолучитьЭлементы(); + ЭлементыДереваТестов.Очистить(); + ЗаполнитьДеревоТестов(ЭтаФорма.ДеревоТестов, ДеревоОтЗагрузчика); + + КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ЭтаФорма.ДеревоТестов); + РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30); + + СохранитьВИсториюЗагрузкиТестовНаСервере(ДополнительныеПараметры.ИдентификаторВыбранногоЗагрузчика, ДополнительныеПараметры.Путь); + ОбновитьКомандыИсторииЗагрузкиТестов(); + + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаОповещения); + +КонецПроцедуры + + +#КонецОбласти + &НаСервереБезКонтекста Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки, ЭтоОтчет = Ложь) Если ЭтоОтчет = Истина Тогда @@ -1273,13 +1571,16 @@ &НаКлиенте Процедура ПодключитьВнешнююОбработкуЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; ЭтоОтчет = ДополнительныеПараметры.ЭтоОтчет; ПодключитьФайлОбработкиНаСервере(Адрес, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет); ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина); + + Если ДополнительныеПараметры.Свойство("ОбработкаЗавершения") Тогда + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаЗавершения, Результат); + КонецЕсли; КонецПроцедуры 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 eacaf804..2a3ed898 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,3a830f71-6cbe-4cb9-a5dc-fea266ac5eb5,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,01fbe074-0c9e-447e-a31e-661f89953d3e,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,3a830f71-6cbe-4cb9-a5dc-fea266ac5eb5, +{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,01fbe074-0c9e-447e-a31e-661f89953d3e, {8,"ВыполнитьТест",0,4, {1,2, {"#","Выполнить тест"}, @@ -1182,7 +1182,9 @@ RU5ErkJggg==} },0,""}, {0,0,0},0,2, {5,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1,3, -{6,229033c0-f167-4705-b82c-43ce74ed624e,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,f394e80b-8c36-4c32-a813-c661d768104c,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26},0}, +{6,a2fb8359-cad6-4d66-8eab-b66005dc8828,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаЗагрузитьТестыЗагрузитьНастройкиИзФайла", {1,"КнопкаЗагрузитьТестыЗагрузитьНастройкиИзФайла", {1,1, @@ -1199,19 +1201,17 @@ RU5ErkJggg==} {0,0,0} } },0}, -{6,c815a5fa-14aa-46f3-a604-53aa5dc55389,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, -{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0}, -{6,5884fbe1-8142-41f1-aa6b-60d2c3f4c256,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, -{1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26},0},2, -{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,229033c0-f167-4705-b82c-43ce74ed624e, +{6,407e1772-c7ad-4101-b4fd-efdd6002af4d,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},2, +{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,a2fb8359-cad6-4d66-8eab-b66005dc8828, {8,"ЗагрузитьНастройкиИзФайла",0,1, {1,1, {"ru","Загрузить настройки из файла ..."} -},1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,28,1e2,0,0,1,0,0,0,0},c815a5fa-14aa-46f3-a604-53aa5dc55389, +},1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,28,1e2,0,0,1,0,0,0,0},407e1772-c7ad-4101-b4fd-efdd6002af4d, {8,"Разделитель",0,1, {1,1, {"ru","Действие"} -},0,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1e2,2,0,1,0,0,0,0},5884fbe1-8142-41f1-aa6b-60d2c3f4c256, +},0,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1e2,2,0,1,0,0,0,0},f394e80b-8c36-4c32-a813-c661d768104c, {8,"ИсторияЗагрузкиТестов",0,1, {1,1, {"ru","История загрузки тестов"} @@ -1344,7 +1344,24 @@ AAAASUVORK5CYII=} },0,""}, {0,0,0},0,2, {5,41c23139-b710-4b93-a93e-1a3fe9843cfe,5,1,3, -{6,fb76ded0-0d8a-4b24-bcf9-c2aebc637f35,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,5a232729-5c34-4019-bb67-0ea24f01b07c,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,46bc80c6-f261-49a4-8c79-7402cc652c8b,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"ПерезагрузитьПоследниеТестыПоИстории", {1,"ПерезагрузитьПоследниеТестыПоИстории", {1,1, @@ -1400,34 +1417,17 @@ fpcIxAUgkUoIHsoxHlpxsReNeI9EIrDkX2QLIpCML+Wkf5z+LcAAUD/gDNueXkgA AAAASUVORK5CYII=} },0,""} }, -{6,babed47b-c2f1-4d8a-bd1b-dc745f46fc93,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,be6c4843-aaa6-49c1-b95f-a399d6d37521,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{6,c8f3cdd2-4129-4b38-b226-b264083cabc5,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, {1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1, -{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,fb76ded0-0d8a-4b24-bcf9-c2aebc637f35, +{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,46bc80c6-f261-49a4-8c79-7402cc652c8b, {8,"ПерезагрузитьТесты",0,1, {1,1, {"ru","Перезагрузить тесты"} -},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},be6c4843-aaa6-49c1-b95f-a399d6d37521, +},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},c8f3cdd2-4129-4b38-b226-b264083cabc5, {8,"Разделитель",0,1, {1,1, {"ru","Действие"} -},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},babed47b-c2f1-4d8a-bd1b-dc745f46fc93, +},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},5a232729-5c34-4019-bb67-0ea24f01b07c, {8,"ПерезагрузитьБраузерТестирования",0,1, {1,1, {"#","Перезагрузить браузер тестирования"} @@ -2054,7 +2054,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {0},"",-1,-1,1,0,""}, {0,0,0},0,2, {5,28c47454-3a17-4ec8-b47f-d5008bf3ea41,5,1,3, -{6,802f542d-86af-4c7f-aeea-32a1116c4257,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,92f9eb84-942a-4a63-8311-0b33445628c2,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаИнструментыГенераторМакетовДанных", {1,"КнопкаИнструментыГенераторМакетовДанных", {1,1, @@ -2080,7 +2080,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {4,1, {0,01ec9d9a-7497-4d88-b93f-066c633a4866},"",-1,-1,1,0,""} }, -{6,91c7826e-383b-486c-a5ff-54bc2eb6f8f5,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,bb24726a-5a49-4c0b-a1d8-f8fa31d4df75,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаИнструментыПоказатьГУИД", {1,"КнопкаИнструментыПоказатьГУИД", {1,1, @@ -2097,7 +2097,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {0,0,0} } },0}, -{6,e0b852b7-c5c3-400b-be28-ce464569c002,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,b0c6e437-9fc1-468d-b096-d08fdb51b09f,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,802f542d-86af-4c7f-aeea-32a1116c4257, +{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,92f9eb84-942a-4a63-8311-0b33445628c2, {8,"ГенераторМакетовДанных",0,1, {1,1, {"#","Генератор макетов данных"} -},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},91c7826e-383b-486c-a5ff-54bc2eb6f8f5, +},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},bb24726a-5a49-4c0b-a1d8-f8fa31d4df75, {8,"ПоказатьГУИД",0,1, {1,1, {"#","Показать ГУИД"} -},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},e0b852b7-c5c3-400b-be28-ce464569c002, +},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},b0c6e437-9fc1-468d-b096-d08fdb51b09f, {8,"КонвертерТестов",0,1, {1,1, {"ru","Конвертер тестов в формат 4-й версии"} @@ -2252,7 +2252,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {0} } } -},859,552,1,0,1,4,4,1380,859,552,96}, +},859,552,1,0,1,4,4,1383,859,552,96}, { {1},27, {4, diff --git "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" index fa5ef934..0d210887 100644 --- "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" +++ "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" @@ -412,6 +412,7 @@ ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя"; КонецЕсли; НоваяФорма = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы); + ОткрытьИнструментФрагмент(НоваяФорма); Иначе Если Не ПустаяСтрока(ПутьИнструмента) Тогда ПутьКВнешнимИнструментам = ПутьИнструмента + "\"; @@ -420,19 +421,39 @@ КонецЕсли; ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf"; ФайлИнструмента = Новый Файл(ПутьИнструмента); - Если Не ФайлИнструмента.Существует() Тогда - Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); - Возврат; - КонецЕсли; - Обработка = ВнешниеОбработки.Создать(ФайлИнструмента.ПолноеИмя, Ложь); - НоваяФорма = Обработка.ПолучитьФорму(ИмяФормы); - Если НоваяФорма = Неопределено Тогда - Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!"); - Возврат; - КонецЕсли; + ФайлИнструмента.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормы, ФайлИнструмента", ИмяИнструмента, ИмяФормы, ФайлИнструмента))); + КонецЕсли; +КонецПроцедуры + +Процедура ОткрытьИнструментЗавершение(Существует, ДополнительныеПараметры) Экспорт + + ИмяИнструмента = ДополнительныеПараметры.ИмяИнструмента; + ИмяФормы = ДополнительныеПараметры.ИмяФормы; + ФайлИнструмента = ДополнительныеПараметры.ФайлИнструмента; + + + Если Не Существует Тогда + Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); + Возврат; КонецЕсли; + Обработка = ВнешниеОбработки.Создать(ФайлИнструмента.ПолноеИмя, Ложь); + НоваяФорма = Обработка.ПолучитьФорму(ИмяФормы); + Если НоваяФорма = Неопределено Тогда + Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!"); + Возврат; + КонецЕсли; + + ОткрытьИнструментФрагмент(НоваяФорма); + +КонецПроцедуры + +Процедура ОткрытьИнструментФрагмент(НоваяФорма) + + //Перем НоваяФорма; + НоваяФорма.Открыть(); НоваяФорма = Неопределено; + КонецПроцедуры Функция ПолучитьПутьКПлагинам() diff --git a/src/xddTestRunner/ObjectModule.bsl b/src/xddTestRunner/ObjectModule.bsl index 8e47b167..f7e8c3d8 100644 --- a/src/xddTestRunner/ObjectModule.bsl +++ b/src/xddTestRunner/ObjectModule.bsl @@ -26,7 +26,7 @@ КонецПроцедуры Функция Версия() Экспорт - Версия = "4.2.0.0"; + Версия = "4.2.1.0"; Возврат Версия; КонецФункции diff --git a/src/xddTestRunner/maps.txt b/src/xddTestRunner/maps.txt index 39d75160..5d337947 100644 --- a/src/xddTestRunner/maps.txt +++ b/src/xddTestRunner/maps.txt @@ -1 +1 @@ -Form\УправляемаяФорма\Форма.bsl-->ed07b230-8bf7-4423-b861-a31f23c7471f.0 (2 251, 3 581) +Form\УправляемаяФорма\Форма.bsl-->ed07b230-8bf7-4423-b861-a31f23c7471f.0 (2 251, 3 882) diff --git a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 index 8377a9c4..9391df98 100644 --- a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 +++ b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 @@ -1959,6 +1959,10 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs &НаКлиенте Перем ПодключенныеВнешниеОбработки; +&НаКлиенте +Перем мСинхронныйРежимРазрешен; + + // { События формы &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -1976,7 +1980,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs &НаКлиенте Процедура ПриОткрытии() + ЗагрузитьПлагины(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаПлагиновЗавершение() Экспорт КэшироватьПеречисленияПлагинов(); СброситьПодключенныеВнешниеОбработки(); @@ -1988,6 +1998,23 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs КонецЕсли; КонецПроцедуры +&НаКлиенте +Функция СинхронныйРежимРазрешен() + Если мСинхронныйРежимРазрешен = Неопределено Тогда + мСинхронныйРежимРазрешен = ОпределитьВозможностьСинхронныхВызовов(); + КонецЕсли; + + Возврат мСинхронныйРежимРазрешен; +КонецФункции + +&НаСервереБезКонтекста +Функция ОпределитьВозможностьСинхронныхВызовов() + + Запрет = Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.НеИспользовать; + Возврат Не Запрет; + +КонецФункции + &НаКлиенте Процедура ПриЗакрытии() @@ -2145,40 +2172,69 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs Для Каждого Плагин Из Объект.Плагины Цикл КэшФормПлагинов.Вставить(Плагин.Ключ, Истина); КонецЦикла; + + ДобавитьКомандыЗагрузчиковНаФорме(); + ЗагрузкаПлагиновЗавершение(); + Иначе КаталогПлагинов = ПолучитьПутьКПлагинам(); - НайденныеФайлы = НайтиФайлы(КаталогПлагинов, ""*.epf"", Ложь); - ПомещаемыеФайлы = Новый Массив; - ИдентификаторыПлагинов = Новый Соответствие; - Для каждого ФайлОбработки Из НайденныеФайлы Цикл - - ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); - ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - - ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - - КонецЦикла; + ОбработчикПоискаКлиентскихПлагинов = Новый ОписаниеОповещения(""ОбработчикПоискаКлиентскихПлагинов"", ЭтаФорма); + НачатьПоискФайлов(ОбработчикПоискаКлиентскихПлагинов, КаталогПлагинов, ""*.epf"", Ложь); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикПоискаКлиентскихПлагинов(Знач НайденныеФайлы, Знач ДополнительныеПараметры) Экспорт + + ПомещаемыеФайлы = Новый Массив; + ИдентификаторыПлагинов = Новый Соответствие; + Для каждого ФайлОбработки Из НайденныеФайлы Цикл - ЗагруженныеФайлы = Новый Массив; - Если ПомещаемыеФайлы.Количество() Тогда - ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор); - КонецЕсли; + ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); + ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); + ИмяПлагина = ФайлОбработки.ИмяБезРасширения; + ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл - ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - - ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; - Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); - КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); - - КонецЦикла; + КонецЦикла; + + Если ПомещаемыеФайлы.Количество() Тогда + ПараметрыЗавершения = Новый Структура(""ИдентификаторыПлагинов"", ИдентификаторыПлагинов); + НачатьПомещениеФайлов(Новый ОписаниеОповещения(""ОбработчикПоискаКлиентскихПлагиновЗавершение"", ЭтаФорма, ПараметрыЗавершения), + ПомещаемыеФайлы,,Ложь,ЭтаФорма.УникальныйИдентификатор); + Иначе + ПодключитьНайденныеКлиентскиеПлагиныНаСервере(Новый Массив, ИдентификаторыПлагинов); КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикПоискаКлиентскихПлагиновЗавершение(Знач ПомещенныеФайлы, Знач ДополнительныеПараметры) Экспорт + + ПодключитьНайденныеКлиентскиеПлагиныНаСервере(ПомещенныеФайлы, ДополнительныеПараметры.ИдентификаторыПлагинов); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодключитьНайденныеКлиентскиеПлагиныНаСервере(Знач ЗагруженныеФайлы, Знач ИдентификаторыПлагинов) + + Перем ЗагруженныйФайл, ИмяПлагина, ОписаниеПлагина, ОписанияПлагинов; + + ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); + + Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл + ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - ДобавитьКомандыЗагрузчиковНаФорме(); + ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; + Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); + КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); + + КонецЦикла; + ДобавитьКомандыЗагрузчиковНаФорме(); + ЗагрузкаПлагиновЗавершение(); + КонецПроцедуры &НаСервере @@ -2807,7 +2863,6 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs // { Пакетный запуск &НаКлиенте Процедура ВыполнитьПакетныйЗапуск(Знач ПараметрЗапуска) - Перем РезультатыТестирования; ПарсерКоманднойСтроки = ЭтаФорма.Плагин(""ПарсерКоманднойСтроки""); ПараметрыЗапуска = ПарсерКоманднойСтроки.Разобрать(ПараметрЗапуска); @@ -2819,26 +2874,196 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs Объект.ПутьФайлаНастроек = Параметры_xddConfig[0]; КонецЕсли; - Параметры_xddRun = Неопределено; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddRun, Параметры_xddRun) Тогда - РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun); + НастройкиШагов = Новый Структура; + НастройкиШагов.Вставить(""Параметры_xddRun""); + НастройкиШагов.Вставить(""Параметры_xddReport""); + НастройкиШагов.Вставить(""xddShutdown""); + + ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, НастройкиШагов.Параметры_xddRun); + ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, НастройкиШагов.Параметры_xddReport); + НастройкиШагов.xddShutdown = ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown); + + Если СинхронныйРежимРазрешен() Тогда + ВыполнитьПакетныйЗапускСинхронно(НастройкиШагов); + Иначе + ВыполнитьПакетныйЗапускАсинхронно(НастройкиШагов) КонецЕсли; - Параметры_xddReport = Неопределено; - Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда - СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования); +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПакетныйЗапускСинхронно(Знач ПараметрыЗапуска) + + Перем РезультатыТестирования; + + Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда + РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(ПараметрЗапуска.Параметры_xddRun); КонецЕсли; - Параметры_xddExitCodePath = Неопределено; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddExitCodePath, Параметры_xddExitCodePath) Тогда - СформироватьФайлКодаВозврата(Параметры_xddExitCodePath, РезультатыТестирования); + Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрЗапуска.Параметры_xddReport <> Неопределено Тогда + СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(ПараметрЗапуска.Параметры_xddReport, РезультатыТестирования); КонецЕсли; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда + Если ПараметрЗапуска.xddShutdown = Истина Тогда + //Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда ЗавершитьРаботуСистемы(Ложь); КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПакетныйЗапускАсинхронно(Знач ПараметрыЗапуска) + + Состояние = Новый Структура; + Состояние.Вставить(""НастройкиШагов"", ПараметрыЗапуска); + Состояние.Вставить(""СледующийШаг""); + Состояние.Вставить(""ТекущийШаг""); + + Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда + Состояние.СледующийШаг = ""ЗагрузитьТесты""; + ИначеЕсли ПараметрЗапуска.xddShutdown = Истина Тогда + Состояние.СледующийШаг = ""ЗавершитьРаботу""; + Иначе + ВызватьИсключение НСтр(""ru = 'xUnit: Я не знаю что мне делать. Нет приказа на выполнение тестов или закрытие.'""); + КонецЕсли; + + ВыполнитьШагПакетногоЗапуска(, Состояние); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьШагПакетногоЗапуска(Знач РезультатПредыдущегоШага, Знач Состояние) Экспорт + + ОбработкаОповещения = Новый ОписаниеОповещения(""ВыполнитьШагПакетногоЗапуска"", ЭтаФорма, Состояние, ""ВыполнитьШагПакетногоЗапускаИсключение"", ЭтаФорма); + + Состояние.ТекущийШаг = Состояние.СледующийШаг; + Если Состояние.СледующийШаг = ""ЗагрузитьТесты"" Тогда + НачатьЗагрузкуТестовПакетныйРежим(ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = ""ЗапуститьТесты"" Тогда + НачатьВыполнениеТестов(РезультатПредыдущегоШага, ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = ""СоставитьОтчет"" Тогда + СоставитьОтчетОТестировании(РезультатПредыдущегоШага, ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = ""ЗавершитьРаботу"" Тогда + ЗавершитьРаботуСистемы(Ложь); + КонецЕсли; + +КонецПроцедуры // ВыполнитьШагПакетногоЗапуска() + +&НаКлиенте +Процедура ВыполнитьШагПакетногоЗапускаИсключение(Знач ИнформацияОбОшибке, СтандартнаяОбработка, Знач Состояние) Экспорт + + СтандартнаяОбработка = Ложь; + + ТекстОшибки = ""Ошибка при асинхронном режиме пакетного запуска: + |Состояние: + | Текущий шаг: %1 + | Следующий шаг:%2 + | Исключение: %3""; + + // для унылых ретроградов, применяющих < 8.3.6 - придется без СтрШаблон + ТекстОшибки = СтрЗаменить(ТекстОшибки, ""%1"", Состояние.ТекущийШаг); + ТекстОшибки = СтрЗаменить(ТекстОшибки, ""%2"", Состояние.СледующийШаг); + ТекстОшибки = СтрЗаменить(ТекстОшибки, ""%3"", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + + ЗафиксироватьОшибкуВЖурналеРегистрации(""xUnitFor1C.АсинхронныйПакетныйЗапуск"", ТекстОшибки); + Сообщить(ТекстОшибки, СтатусСообщения.ОченьВажное); +КонецПроцедуры + +&НаКлиенте +Процедура НачатьЗагрузкуТестовПакетныйРежим(Знач ОбработкаОповещения); + Параметры_xddRun = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddRun; + ИдентификаторЗагрузчика = Параметры_xddRun[0]; + Загрузчик = ЭтаФорма.Плагин(ИдентификаторЗагрузчика); + + ПутьКТестам = Параметры_xddRun[1]; + + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = ""ЗапуститьТесты""; + ОбработкаОповещения.ДополнительныеПараметры.Вставить(""Загрузчик"", Загрузчик); + Загрузчик.НачатьЗагрузку(ОбработкаОповещения, ЭтаФорма, ПутьКТестам); +КонецПроцедуры + +&НаКлиенте +Процедура НачатьВыполнениеТестов(ДеревоТестовОтЗагрузчика, ОбработкаОповещения) + + Загрузчик = ОбработкаОповещения.ДополнительныеПараметры.Загрузчик; + РезультатыТестирования = ЭтаФорма.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика); + + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = ""СоставитьОтчет""; + ВыполнитьОбработкуОповещения(ОбработкаОповещения, РезультатыТестирования); + +КонецПроцедуры + +&НаКлиенте +Процедура СоставитьОтчетОТестировании(РезультатыТестирования, ОбработкаОповещения) + + Параметры_xddReport = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddReport; + Если Не ЗначениеЗаполнено(РезультатыТестирования) или Параметры_xddReport = Неопределено Тогда + // Отчет не нужен + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = ""ЗавершитьРаботу""; + ВыполнитьОбработкуОповещения(ОбработкаОповещения, Неопределено); + Возврат; + КонецЕсли; + + Если Параметры_xddReport.Количество() > 0 И ТипЗнч(Параметры_xddReport[0]) <> Тип(""ФиксированныйМассив"") Тогда + НовыйМассивПараметров = Новый Массив; + НовыйМассивПараметров.Добавить(Параметры_xddReport); + Параметры_xddReport = НовыйМассивПараметров; + КонецЕсли; + + ЭкспортируемыеОтчеты = Новый Массив; + + Для Каждого ОчередныеПараметры Из Параметры_xddReport Цикл + + ИдентификаторГенератораОтчета = ОчередныеПараметры[0]; + ГенераторОтчета = ЭтаФорма.Плагин(ИдентификаторГенератораОтчета); + Отчет = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования); + ПутьКОтчету = ОчередныеПараметры[1]; + + СтрокаЭкспорта = СтрокаЭкспортируемыхОтчетов(); + СтрокаЭкспорта.Отчет = Отчет; + СтрокаЭкспорта.Путь = ПутьКОтчету; + СтрокаЭкспорта.ГенераторОтчета = ГенераторОтчета; + + ЭкспортируемыеОтчеты.Добавить(СтрокаЭкспорта); + + КонецЦикла; + + ПараметрыДиспетчера = Новый Структура; + ПараметрыДиспетчера.Вставить(""ИндексОтчета"", 0); + ПараметрыДиспетчера.Вставить(""СписокОтчетов"", ЭкспортируемыеОтчеты); + ПараметрыДиспетчера.Вставить(""Финализация"", ОбработкаОповещения); + + ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(, ПараметрыДиспетчера); + +КонецПроцедуры + +&НаКлиенте +Функция СтрокаЭкспортируемыхОтчетов() + Возврат Новый Структура(""Отчет,Путь,ГенераторОтчета""); +КонецФункции + + +&НаКлиенте +Процедура ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(Знач РезультатЭкспорта, Знач ПараметрыДиспетчера) Экспорт + + СписокОтчетов = ПараметрыДиспетчера.СписокОтчетов; + Если СписокОтчетов.Количество() > ПараметрыДиспетчера.ИндексОтчета Тогда + СтрокаЭкспорта = СписокОтчетов[ПараметрыДиспетчера.ИндексОтчета]; + ГенераторОтчета = СтрокаЭкспорта.генераторОтчета; + + ПараметрыДиспетчера.ИндексОтчета = ПараметрыДиспетчера.ИндексОтчета + 1; + ОбработчикЭкспорта = Новый ОписаниеОповещения(""ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим"", ЭтаФорма, ПараметрыДиспетчера, + ""ВыполнитьШагПакетногоЗапускаИсключение"", ЭтаФорма); + ГенераторОтчета.НачатьЭкспорт(ОбработчикЭкспорта, СтрокаЭкспорта.Отчет, СтрокаЭкспорта.Путь); + Иначе + ОбработкаОповещения = ПараметрыДиспетчера.Финализация; + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = ""ЗавершитьРаботу""; + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + КонецПроцедуры + &НаКлиенте Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun) Попытка @@ -2961,7 +3186,7 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs // { Внешние интерфейсные инструменты &НаКлиенте -Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = """", Знач ИмяФормы = ""Форма"") +Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = """", Знач ИмяФормыИнструмента = ""Форма"") Перем АдресХранилища; // Для встроенного в состав конфигурации браузера тестов @@ -2972,7 +3197,7 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs ИмяИнструмента = ""ПреобразованиеЖурналаДействийПользователя""; КонецЕсли; ИмяИнструмента = ДополнитьИдентификаторПрефиксомПодсистемы(ИмяИнструмента, Объект.ИспользуемыйПрефиксПодсистемы); - ФормаИнструмента = ПолучитьФорму(""Обработка."" + ИмяИнструмента + ""."" + ИмяФормы); + ФормаИнструмента = ПолучитьФорму(""Обработка."" + ИмяИнструмента + ""."" + ИмяФормыИнструмента); ФормаИнструмента.Открыть(); ФормаИнструмента = Неопределено; @@ -2984,17 +3209,30 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs КонецЕсли; ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + "".epf""; ФайлИнструмента = Новый Файл(ПутьИнструмента); - Если Не ФайлИнструмента.Существует() Тогда - Сообщить(""Инструмент <"" + ИмяИнструмента + ""> не найден в каталоге <"" + ФайлИнструмента.Путь + "">""); - Возврат; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения(""ОткрытьИнструментЗавершение"", ЭтаФорма, Новый Структура(""ИмяИнструмента, ИмяФормыИнструмента"", ИмяИнструмента, ИмяФормы)); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + ФайлИнструмента.НачатьПроверкуСуществования(Новый ОписаниеОповещения(""ОткрытьИнструментЗавершение1"", ЭтаФорма, Новый Структура(""АдресХранилища, ИмяИнструмента, ИмяФормыИнструмента, ФайлИнструмента"", АдресХранилища, ИмяИнструмента, ИмяФормыИнструмента, ФайлИнструмента))); КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ОткрытьИнструментЗавершение1(Существует, ДополнительныеПараметры) Экспорт + + АдресХранилища = ДополнительныеПараметры.АдресХранилища; + ИмяИнструмента = ДополнительныеПараметры.ИмяИнструмента; + ИмяФормыИнструмента = ДополнительныеПараметры.ИмяФормыИнструмента; + ФайлИнструмента = ДополнительныеПараметры.ФайлИнструмента; + + + Если Не Существует Тогда + Сообщить(""Инструмент <"" + ИмяИнструмента + ""> не найден в каталоге <"" + ФайлИнструмента.Путь + "">""); + Возврат; + КонецЕсли; + + Оповещение = Новый ОписаниеОповещения(""ОткрытьИнструментЗавершение"", ЭтаФорма, Новый Структура(""ИмяИнструмента, ИмяФормыИнструмента"", ИмяИнструмента, ИмяФормыИнструмента)); + НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + +КонецПроцедуры + &НаКлиенте Функция ПолучитьПутьКПлагинам() // Для встроенного в состав конфигурации браузера тестов @@ -3028,6 +3266,66 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs КонецЕсли; КонецПроцедуры +#Область АсинхронныйAPI + +&НаКлиенте +Процедура НачатьПодключениеВнешнейбработки(Знач ОбработкаОповещения, Знач ФайлОбработки) Экспорт + + Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда + ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = "".erf""); + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить(""ФайлОбработки"", ФайлОбработки); + ПараметрыОповещения.Вставить(""ЭтоОтчет"", ЭтоОтчет); + ПараметрыОповещения.Вставить(""ОбработкаЗавершения"", ОбработкаОповещения); + + АдресХранилища = """"; + Оп = Новый ОписаниеОповещения(""ПодключитьВнешнююОбработкуЗавершение"", ЭтаФорма, ПараметрыОповещения); + НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + Иначе + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НачатьЗагрузкуТестов(Знач ОбработкаОповещения, Знач ИдентификаторВыбранногоЗагрузчика, Знач Путь) Экспорт + + ИнициализироватьИндикаторВыполнения(); + + ЭтаФорма.ИдентификаторЗагрузчика = ИдентификаторВыбранногоЗагрузчика; + ФормаЗагрузчика = Плагин(ИдентификаторВыбранногоЗагрузчика); + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить(""ОбработкаОповещения"", ОбработкаОповещения); + ДополнительныеПараметры.Вставить(""ИдентификаторВыбранногоЗагрузчика"", ИдентификаторВыбранногоЗагрузчика); + ДополнительныеПараметры.Вставить(""Путь"", Путь); + Обработчик = Новый ОписаниеОповещения(""ЗагрузкаТестовЗавершение"", ЭтаФорма, ДополнительныеПараметры); + ФормаЗагрузчика.НачатьЗагрузку(Обработчик, ЭтаФорма, Путь); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаТестовЗавершение(Знач ДеревоОтЗагрузчика, Знач ДополнительныеПараметры) Экспорт + + ЭтаФорма.ДеревоОтЗагрузчика = ДеревоОтЗагрузчика; + ЭлементыДереваТестов = ЭтаФорма.ДеревоТестов.ПолучитьЭлементы(); + ЭлементыДереваТестов.Очистить(); + ЗаполнитьДеревоТестов(ЭтаФорма.ДеревоТестов, ДеревоОтЗагрузчика); + + КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ЭтаФорма.ДеревоТестов); + РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30); + + СохранитьВИсториюЗагрузкиТестовНаСервере(ДополнительныеПараметры.ИдентификаторВыбранногоЗагрузчика, ДополнительныеПараметры.Путь); + ОбновитьКомандыИсторииЗагрузкиТестов(); + + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаОповещения); + +КонецПроцедуры + + +#КонецОбласти + &НаСервереБезКонтекста Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки, ЭтоОтчет = Ложь) Если ЭтоОтчет = Истина Тогда @@ -3229,13 +3527,16 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs &НаКлиенте Процедура ПодключитьВнешнююОбработкуЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; ЭтоОтчет = ДополнительныеПараметры.ЭтоОтчет; ПодключитьФайлОбработкиНаСервере(Адрес, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет); ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина); + + Если ДополнительныеПараметры.Свойство(""ОбработкаЗавершения"") Тогда + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаЗавершения, Результат); + КонецЕсли; КонецПроцедуры diff --git a/src/xddTestRunner/und/versions b/src/xddTestRunner/und/versions index 2f0e8650..3dfa2e4e 100644 --- a/src/xddTestRunner/und/versions +++ b/src/xddTestRunner/und/versions @@ -1 +1 @@ -{1,13,"",b54a58da-bd31-409f-9bfa-d501666fd6ce,"11ad5c96-c434-4088-bf66-ddff06c57ed8.0",0a489650-d574-4b8d-beb1-52c84729ac98,"11ad5c96-c434-4088-bf66-ddff06c57ed8.1",ec0f25e8-a99e-4343-8cf3-fec9abf4e1e2,"5070e3c3-f74b-4ecd-9756-1136a230eca2",28f9ef85-fdf5-4fc5-b436-bb39dcd9d948,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf",6d6f4dea-3ac8-4e2b-9352-bd2700a73edc,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0",51bb908f-7ab3-40a1-883d-be95a0de3e8f,"copyinfo",8b7ce9c2-30d4-4fa0-ae39-91ce61cd7ba8,"ed07b230-8bf7-4423-b861-a31f23c7471f",bb710489-69d2-4c46-a871-cab02804efec,"ed07b230-8bf7-4423-b861-a31f23c7471f.0",a2c12ed7-5c3c-4e39-a751-1a807805302e,"ed07b230-8bf7-4423-b861-a31f23c7471f.1",d2376067-c9d3-4379-9abc-b96f699d83ed,"root",32a70759-e6a2-48e0-a2af-06def88feafc,"version",4aa519ee-31d1-4a55-b041-3d3b201fa3e1,"versions",ce7042b0-56e9-46bf-878f-00da109af25a} \ No newline at end of file +{1,13,"",4ee92d48-3465-4190-a6b2-89c8046120a5,"11ad5c96-c434-4088-bf66-ddff06c57ed8.0",97d33b2a-1ced-4fe7-adaa-458525870b8f,"11ad5c96-c434-4088-bf66-ddff06c57ed8.1",a42f0aa8-d4f1-4347-81f0-86a375c51151,"5070e3c3-f74b-4ecd-9756-1136a230eca2",5d09e199-a840-4282-bf27-c8d230c0707f,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf",c5d41f51-3bd7-46c8-9b3b-02b8769708c1,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0",a09cb0db-6160-4204-944a-869e9eb12a6e,"copyinfo",7bfad022-4550-462b-9f5b-1e9a9f92d96f,"ed07b230-8bf7-4423-b861-a31f23c7471f",b9fd82ce-df2b-4442-b2f9-fffbe95b2ba6,"ed07b230-8bf7-4423-b861-a31f23c7471f.0",a41ac106-1946-481e-9106-23a1fcd49ffc,"ed07b230-8bf7-4423-b861-a31f23c7471f.1",d2376067-c9d3-4379-9abc-b96f699d83ed,"root",83fa5f71-7a3b-4d18-9689-57dadc8be12c,"version",bf85a2ee-b3e3-42ff-87dd-097b36a0b8b4,"versions",e393ba46-22d3-491a-b343-944f92f31973} \ No newline at end of file diff --git a/xddTestRunner.epf b/xddTestRunner.epf index 5935879d..6a86b83a 100644 Binary files a/xddTestRunner.epf and b/xddTestRunner.epf differ